DDoS 공격 종류와 방어 방법 완전정복

"디도스 공격을 당했다"는 뉴스, 정확히 무슨 일이 벌어진 것인지 정리했습니다.

🆚

DoS와 DDoS는 무엇이 다른가

DoS는 한 공격자가 단일 지점에서 공격하는 것이고, DDoS는 여러 대(때로는 수십만 대)의 좀비 PC로 이루어진 봇넷이 동시에 공격하는 것입니다.

DoS(Denial of Service, 서비스 거부 공격)는 하나의 공격 지점에서 대상 서버에 과도한 요청을 보내 정상적인 서비스를 방해하는 공격입니다. DDoS(Distributed Denial of Service, 분산 서비스 거부 공격)는 여기에 "분산"이 붙은 것으로, 악성코드에 감염되어 공격자가 원격으로 제어할 수 있게 된 다수의 기기(봇넷)가 동시에 같은 대상을 공격합니다. 공격 발신지가 수많은 서로 다른 IP로 분산되어 있어 단순히 특정 IP를 차단하는 방식으로는 막기 어렵다는 점이 DDoS를 훨씬 까다롭게 만듭니다.

🌊

볼류메트릭(Volumetric) 공격: 대역폭 자체를 소진

엄청난 양의 트래픽을 쏟아부어 대상 서버로 향하는 회선의 대역폭 자체를 가득 채워버리는 공격으로, UDP 플러드와 증폭 공격이 대표적입니다.

볼류메트릭 공격은 공격의 정교함보다는 순수한 트래픽 양으로 승부하는 방식입니다. 무의미한 UDP 패킷을 대량으로 퍼붓는 UDP 플러드가 대표적이며, DNS나 NTP처럼 작은 요청에 훨씬 큰 응답을 돌려주는 서버(반사체)에 피해자의 IP로 위장한 요청을 보내 응답을 피해자에게 쏟아지게 만드는 증폭(Amplification) 공격도 널리 쓰입니다. 초당 기가비트(Gbps) 단위로 측정되며, 대상 서버로 가는 회선 자체를 포화시켜 정상 트래픽이 아예 들어갈 자리가 없게 만듭니다.

🔧

프로토콜 공격: 연결 상태 자원을 소진

방화벽이나 로드밸런서, 서버가 연결 정보를 관리하는 방식의 허점을 노려 자원을 소진시키는 공격으로, SYN 플러드가 대표적입니다.

TCP 연결은 SYN-SYN/ACK-ACK로 이어지는 3단계 핸드셰이크로 시작되는데, SYN 플러드는 SYN 요청만 대량으로 보내고 마지막 ACK 응답은 절대 보내지 않아, 대상 서버가 미완성 연결을 계속 대기 상태로 쌓아두게 만들어 연결 테이블 자원을 소진시킵니다. 이 밖에도 조작된 패킷으로 방화벽이나 로드밸런서를 혼란시키는 공격들이 이 범주에 속합니다. 초당 패킷 수(pps)로 측정되며, 회선 대역폭보다는 중간 네트워크 장비의 처리 능력 자체를 노린다는 점이 볼류메트릭 공격과 다릅니다.

🎯

애플리케이션 계층 공격: 정상 트래픽처럼 위장

실제 사용자의 요청과 거의 구분되지 않는 형태로 웹 서버나 특정 기능에 부담을 주는 공격으로, HTTP 플러드와 슬로로리스가 대표적입니다.

HTTP 플러드는 겉보기엔 정상적인 웹 요청(GET·POST)을 매우 빠른 속도로 대량 전송해 서버나 데이터베이스에 부담을 주는 방식이고, 슬로로리스(Slowloris)는 반대로 HTTP 요청을 아주 천천히 조금씩만 보내 연결을 오래 붙잡아 서버의 동시 접속 한도를 소진시키는 방식입니다. 요청 자체는 트래픽 양이 적고 정상 사용자의 행동과 비슷해 앞선 두 유형보다 탐지와 차단이 더 어렵습니다. 초당 요청 수(rps)로 측정되며, 회선이 아니라 웹 애플리케이션이나 서버 소프트웨어 자체를 표적으로 삼습니다.

🤖

봇넷과 증폭 공격은 어떻게 작동하나

악성코드에 감염된 기기들의 네트워크(봇넷)가 공격 병력이 되고, 증폭 공격은 반사체 서버를 속여 작은 요청을 훨씬 큰 응답으로 부풀립니다.

봇넷은 사용자도 모르게 악성코드에 감염되어 공격자의 명령을 받는 다수의 기기(PC, IoT 기기 등)로 이루어진 네트워크입니다. 증폭 공격에서는 공격자가 반사체 역할을 하는 공개 DNS·NTP 서버 등에 피해자의 IP 주소를 발신지로 위장한 작은 질의를 보내면, 서버는 훨씬 큰 응답을 그 위장된 IP, 즉 실제 피해자에게 돌려보내게 됩니다. 이렇게 하면 공격자가 실제로 쓴 대역폭보다 몇 배에서 수십 배 더 큰 트래픽을 피해자에게 쏟아부을 수 있습니다.

🛡️

기업과 개인이 할 수 있는 방어 방법

기업은 CDN·WAF·애니캐스트 분산과 통신사 차원의 블랙홀 라우팅을 활용하고, 일반 가정에서는 공유기 방화벽과 펌웨어 업데이트 정도가 현실적인 대비책입니다.

서비스를 운영하는 기업 입장에서는 CDN으로 트래픽을 지리적으로 분산시키고, WAF(웹 애플리케이션 방화벽)로 비정상 요청 패턴을 걸러내며, 요청 빈도를 제한하는 레이트 리미팅을 적용하는 것이 기본적인 대응입니다. 공격 규모가 매우 크면 인터넷 서비스 제공업체(ISP) 차원에서 해당 트래픽을 아예 폐기하는 블랙홀 라우팅을 쓰기도 합니다. 일반 가정 사용자는 직접 DDoS의 표적이 되는 경우는 드물지만, 자신의 IoT 기기나 공유기가 모르는 새 봇넷의 일원이 되지 않도록 기본 비밀번호를 바꾸고 펌웨어를 최신 상태로 유지하는 것이 실질적인 예방입니다.

다른 해킹·보안 위협도 함께 알아두면 좋아요

해커의 목적과 유형이 궁금하다면 해커의 종류 완전정복을, 사회공학적 공격 수법이 궁금하다면 소셜 엔지니어링 공격 관련 글도 확인해보세요.

내 홈 네트워크 보안도 점검해보세요

내 공유기나 IoT 기기가 봇넷에 이용되지 않도록 기본 보안 설정을 점검하고 싶다면홈 네트워크 보안 설정하는 방법을 참고해보세요.

자주 묻는 질문

DDoS 공격은 왜 완전히 막기 어렵나요?

공격 트래픽이 수많은 서로 다른 IP 주소(감염된 좀비 기기들)에서 동시에 발생하기 때문에, 특정 IP 몇 개만 차단하는 방식으로는 대응이 안 됩니다. 게다가 애플리케이션 계층 공격은 정상 사용자의 요청과 매우 비슷해 보여, 실제 사용자를 차단하지 않으면서 공격만 걸러내기가 쉽지 않습니다.

내 컴퓨터가 봇넷의 일부가 됐는지 어떻게 알 수 있나요?

평소보다 인터넷 사용량이 눈에 띄게 늘거나 컴퓨터가 이유 없이 느려지는 경우 의심해볼 수 있지만, 정교한 악성코드는 눈에 띄는 증상 없이 조용히 작동하기도 합니다. 신뢰할 수 있는 백신 프로그램으로 정기적인 검사를 하고, 운영체제와 공유기 펌웨어를 최신 상태로 유지하는 것이 가장 기본적인 예방입니다.