소스에서 서비스 거부 대응하기
서비스 거부(DoS) 공격은 특별한 유형의 사이버 보안 위협입니다. 공격자는 시스템을 해킹하거나 보안 태세의 허점을 찾을 필요가 없습니다. 한 달에 30달러만 지불하면 봇넷을 대여하여 중소기업 네트워크를 인터넷에서 일정 기간 동안 효과적으로 차단할 수 있기 때문에 공격자는 상당한 지식이나 자원이 없어도 효과적인 DoS 공격을 수행할 수 있습니다.
DoS 공격(아니, 오래된 운영 체제인 MS-DOS가 아닙니다)은 크게 두 가지 범주에 속합니다. 합법적인 트래픽이 시스템에 도달하는 것을 효과적으로 차단하는 압도적인 네트워크 트래픽과 응답을 위해 상당한 양의 리소스를 묶어두고 합법적인 요청이 시스템에서 서비스되는 것을 차단하는 압도적인 요청이 있습니다. 서버나 통신 회선을 물리적으로 손상시키는 등 광범위한 서비스 거부에 해당하는 다른 엣지 시나리오도 있지만, 이는 일반적인 경우라기보다는 드문 경우입니다.
또한 한 개인과 단일 소스 시스템 또는 적은 수의 소스 시스템에서 시작된 서비스 거부 공격과 수십만 대의 시스템이 동시에 대상 시스템 또는 네트워크에 대해 시작된 서비스 거부 공격(분산 서비스 거부 공격 또는 DDoS)도 구분할 수 있습니다.
2020년, Amazon은 당시 공개적으로 알려진 최대 규모의 DDoS 공격을 성공적으로 방어했다고 발표했습니다: 2.3Tbps의 트래픽 의 트래픽이 AWS 네트워크를 공격하여 호스팅된 서비스의 일부 하위 집합을 표적으로 삼았습니다. 이는 초당 2.3테라비트의 트래픽이 일정 기간 동안 매초마다 발생한 것입니다. 이는 초당 300기가바이트에 육박하는 용량으로, 옛날 방식으로 계산하면 초당 67개의 DVD에 해당하는 데이터를 매초 전송하는 것입니다(잘 모르시는 분들을 위해 설명하자면, DVD는 넷플릭스와 비슷하지만 '넷' 부분이 없고 영화 한 편만 들어 있는 것입니다).
하지만 그것은 2020년이었습니다. 2018년에 github은 거의 비슷한 규모의 또 다른 대규모 공격(1.3Tbps)으로부터 스스로를 방어했습니다. 여전히 엄청난 양의 데이터이지만, 오늘날의 관점에서 보면 모나리자에 비하면 동굴 벽화에 불과합니다.
2023년으로 넘어가면 CloudFlare는 방금 초당 7,100만 건에 달하는 초당 7,100만 건의 요청을 발생시키는 DDoS 공격. AWS는 네트워크 트래픽으로, CloudFlare는 초당 요청 수로 결과를 보고했기 때문에(또는 AWS 공격은 네트워크 폭주 유형이고 CloudFlare는 리소스 고갈 유형) 수치를 정확히 비교할 수는 없지만 여전히 엄청나게 높은 수치입니다.
어떻게 이런 규모의 공격이 가능했을까요?
DoS의 규모가 눈에 띄게 증가한 데에는 몇 가지 원인이 있습니다. 첫째, 가장 중요한 것은 하이퍼스케일 클라우드 제공업체가 인터넷에서 가장 큰 네트워크 연결을 보유하고 있기 때문에 이 정도 규모의 트래픽이 네트워크와 호스팅된 서비스에 도달할 수 있다는 사실입니다. 둘째, DoS 공격을 시작하는 것은 공격자 자신의 리소스에만 의존하지 않습니다.
성공적인 DoS 공격을 시작한다는 것은 일반적으로 원치 않는 여러 시스템의 취약점을 이용하는 것을 의미합니다. 일반적인 전술은 요청에 전송된 데이터보다 더 많은 데이터로 응답하는 서비스 유형을 찾는 것입니다. 예를 들어 google.com에 대한 DNS 쿼리는 처음 요청에 전송된 것보다 훨씬 더 많은 문자로 응답합니다. DNS 서버를 속여 대상에게 응답을 보내도록 하는 방법도 찾을 수 있다면 DoS를 수행하는 데 필요한 폰을 찾은 것입니다. 이를 "증폭 DoS".
다음과 같이 증폭에 취약한, 즉 공격자가 공격 대상을 플러딩하는 데 악용할 수 있는 것으로 밝혀진 서비스가 여러 개 있습니다. BIND DNS 서버 또는 LDAP 서버 인터넷에 노출되어 있습니다. 따라서 집에서 커피를 마시는 한 명의 공격자가 DNS 서버 목록(수천 개가 있음)을 컴파일하고 간단한 스크립트를 작성하면 짜잔! - 디도스 공격이 준비된 것입니다.
공격자가 이러한 DNS 서버에 대해 간단한 쇼단 검색을 수행하는 번거로움을 감수하고 싶지 않다면, 30달러를 지불하고 서비스형 DoS 제품을 구독할 수도 있습니다. 네, 맞습니다. 한 달에 30달러만 지불하면 이러한 공격에 참여할 준비가 된 봇넷을 '대여'할 수 있습니다. 더 많은 봇을 사용하거나 공격에 사용할 수 있는 기간을 늘리려면 더 많은 비용을 지불하세요.
봇넷이란 무엇인가요? 봇넷은 일반적으로 악의적인 행위자나 위협 그룹이 원격으로 제어하여 무기화할 수 있는 숨겨진 소프트웨어가 있는 기업용 워크스테이션 또는 서버 그룹을 말합니다.
DoS 공격의 목적은 무엇일까요?
일반적으로 금전적 이득 또는 금전적 피해가 동기가 됩니다. "비트코인을 X만큼 지불하지 않으면 시스템을 오프라인으로 전환하겠다"는 협박으로 조직을 인질로 잡거나, 기업의 비즈니스 또는 영업을 지원하는 시스템을 탈취하여 직접적인 금전적 피해를 입히는 방식으로 이루어집니다.
공격자가 무엇을 선택하든 피해자는 잃게 됩니다.
어떻게 대처할 수 있을까요?
ISP에 의존하여 트래픽을 필터링하거나 Cloudflare와 같은 보호 서비스에 계약하는 것 외에는 할 수 있는 일이 많지 않습니다. 그렇다고 해도 문제를 '해결'하는 것이 아니라 네트워크와 공격자 사이에 충분히 큰 버퍼를 추가하는 것일 뿐입니다. 경계 또는 애플리케이션 방화벽이 DoS 트래픽을 차단하는 순간 이미 너무 늦은 것입니다. 이미 파이프가 막힌 상태이므로 싱크대를 막든 안 막든 상관없습니다. 또한, 네트워크 내부에 도달하는 트래픽을 어떻게든 피한다고 해도 그 규모가 너무 커서 ISP의 네트워크에 트래픽이 넘쳐나면 결국 사용자의 노력과 상관없이 가용성에 영향을 미칠 수 있습니다.
DoS 공격은 랜섬웨어나 해커가 시스템에 침입하는 것과 같은 다른 일반적인 사이버 보안 위협과 다른 점이 바로 여기에 있습니다. 공격자는 시스템에 대한 내부 지식이 필요하지 않고, 해킹 기술 자체가 필요하지 않으며, 규정 준수 요구 사항을 충족하기 위해 제때 패치를 적용했더라도 별다른 차이를 만들지 못합니다.
서비스 거부 공격에 효과적으로 대응하려면 표적 수준에서 공격하는 것이 아니라 봇넷과 직접 싸우고 증폭 서비스를 패치하는 데 더 많은 노력을 기울여야 합니다. 어떻게 보면 공격 대상을 보호하는 것이 아니라 공격 무기를 제거하는 것과 같습니다.
봇넷은 시스템이 감염될 때 생성되며, 이는 피싱, 패치되지 않은 취약점, 잘못된 구성과 같은 전통적인 접근 방식이며 실제로 효과적으로 패치할 수 있습니다. 증폭 서비스는 일반적으로 이러한 서비스의 설계 또는 구현 과정에서 발생하는 버그의 결과이며, 이 역시 패치할 수 있습니다. 이는 모든 시스템에 대한 적절한 패치의 필요성을 다시 한 번 강조합니다. 내가 DoS의 피해자가 아니라 내 시스템이 다른 사람의 시스템을 겨냥한 무기가 될 수 있기 때문입니다.
이 문제를 해결하는 가장 좋은 방법은 소스에서 해결하는 것이며, "소스"는 감염되었거나 패치가 적용되지 않은 모든 시스템입니다. 어떤 서비스가 이러한 공격의 증폭기로 사용될 수 있는 취약한 것으로 밝혀질지 추측할 수 없으므로, 가장 좋은 방법은 가능한 모든 것을, 가능한 모든 곳에서, 항상 패치를 적용하는 것입니다. 업무에 지장을 주기 때문에 이 작업이 부담스럽다면 다음과 같은 비운영 중단 옵션을 찾아보세요. 라이브 패치.
자신의 시스템을 안전하게 보호하는 것은 다른 모든 사람의 시스템도 안전하게 보호하는 데 도움이 됩니다.