네트워크 공격 방법 중 DoS 공격의 발전된 형태의 DoS 공격 형태인 DDoS(Distributed Denial of Service)에 대해 정리하고자 함
Distributed Denial of Service
의 줄임말로Distributed
는 분산된 이라는 뜻으로
분산된 다수의 좀비 PC/디바이스(악성 봇)에 의해 공격 대상 시스템의 서비스를 마비 시키는 공격 형태
공격자
C&C (명령제어 서버)
좀비 PC/디바이스
공격 대상
공격의 대상이 되는 시스템
악성 봇에 감염된 PC가 해커의 명령을 받기 위해 C&C 서버로 연결을 시도할 때 C&C 서버 대신 싱크홀로 우회시켜 더 이상 해커로부터 조종 명령을 받지 않도록 해주는 시스템/서비스
한국인터넷진흥원(KISA)에서 국내 ISP 업체 및 가입기관과의 협력을 통해 DNS 싱크홀을 운영하고 있음
공격자는 각 봇을 관리하고 명령을 내리는 C&C 서버를 구축
스팸 메일, 악의적인 웹사이트 등을 통해 불특정 다수의 PC에 봇을 배포해 감염시도
봇이 C&C 서버에 접속함으로써 감염 PC는 봇넷의 일원으로 추가됨
공격자가 C&C 서버에 명령을 내리면 C&C 서버는 봇에 명령을 전달
봇이 명령에 따라 다양한 공격을 수행하고 스스로 다른 PC로 봇의 전파를 시도
대량의 UDP 패킷을 특정 포트로 전송해 대상 서버의 네트워크 대역폭을 소진시키는 공격. UDP는 연결 지향적이지 않아서, 서버는 들어오는 패킷에 대한 응답을 보내기 위해 자원을 소모하게 됨. 결과적으로 네트워크 대역폭이 가득 차게 되고, 정상적인 트래픽이 처리되지 못해 서비스 거부(DoS) 상태에 빠질 수 있음.
대량의 ICMP 요청(예: ping 요청)을 전송하여 대상 서버의 대역폭을 소모하는 공격. 서버는 각 요청에 대해 응답을 생성해야 하므로 CPU와 네트워크 대역폭을 소모하게 됨. 이로 인해 서버의 자원이 고갈되고, 서비스 중단이나 응답 지연이 발생할 수 있음. 특히 ICMP는 상태 정보를 제공하지 않기 때문에 공격자가 방어를 우회하기 용이함.
TCP 연결 설정 과정에서 SYN 패킷을 대량으로 보내서 서버의 세션 테이블을 가득 채우는 공격. 서버는 각 SYN 요청에 대해 SYN-ACK 패킷을 응답하고, 연결 요청에 대한 응답을 기다림. 그러나 공격자가 많은 SYN 패킷을 보내면, 서버의 리소스가 소모되고 정상적인 연결을 처리할 수 없게 됨. 이로 인해 서비스가 중단될 수 있음.
대량의 HTTP GET 요청을 특정 웹 서버에 보내서 과부하를 유도하는 공격. 서버는 각 요청을 처리하는 데 필요한 자원을 소모하게 되고, 정상 사용자에게 서비스를 제공하는 데 어려움이 발생할 수 있음. 대량의 요청이 들어오면 서버의 CPU와 메모리 리소스가 고갈되고, 페이지 로딩 속도가 느려지거나 서버가 응답하지 않게 될 수 있음.
특정 웹 페이지를 반복적으로 요청하여 웹 서버에 과부하를 주는 공격. 공격자는 다양한 User-Agent와 Referer 값을 사용하여 방어 시스템을 우회할 수 있음. 지속적인 요청으로 인해 서버의 CPU와 메모리 자원이 소모되고, 일반 사용자에게 웹 페이지 접근이 불가능하게 만듦. 이 공격은 특히 웹 서버의 리소스를 빠르게 고갈시킬 수 있음.
해시 테이블을 사용하는 애플리케이션에서 대량의 요청을 보내 해시 충돌을 유도하는 공격. 공격자는 특정 입력 값으로 해시 충돌을 발생시켜, 서버가 모든 요청을 처리하는 데 많은 시간을 소모하게 만듦. 이로 인해 서비스가 느려지거나 완전히 중단될 수 있음. 해시 충돌은 특정 패턴으로 입력을 조작하여 발생시키며, 서버의 성능을 저하시키는 효과가 있음.
HTTP 요청을 느리게 보내 서버의 자원을 소진시키는 다양한 공격 방식.
Slow HTTP POST DoS: HTTP POST 요청을 느리게 전송하여 서버가 요청을 처리하는 동안 대기하게 만듦. 이로 인해 서버의 연결을 점유하고, 다른 클라이언트의 요청을 처리하지 못하도록 유도. 정상적인 사용자에게 서비스가 제공되지 않게 되는 상황을 초래함.
Slow HTTP Header DoS (Slowloris): HTTP 헤더를 느리게 전송하여 서버가 요청을 완전히 처리하지 못하도록 하는 공격. 서버는 연결을 유지하면서 클라이언트의 요청을 기다리기 때문에 자원이 소모됨. 이 공격은 연결이 완료되지 않은 상태로 서버의 자원을 점유하게 만듦.
Slow HTTP Read DoS: HTTP 요청의 본문을 느리게 읽어 서버의 자원을 소모시키는 공격. 클라이언트가 데이터를 천천히 보내기 때문에 서버는 클라이언트의 응답을 기다리며 자원이 고갈됨. 이로 인해 정상적인 요청 처리가 어렵게 되고, 서버의 응답 속도가 느려질 수 있음.