DDoS 공격은 DoS 공격의 또 다른 형태로 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법이다.
해커들은 취약한 인터넷 시스템에 대한 액세스가 이뤄지면, 침입한 시스템(좀비 PC)에 소프트웨어를 설치하고 이를 실행시켜 원격에서 공격을 개시한다.
UCP/ICMP Traffic Flooding
- UDP/ICMP Flooding: 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지(ICMP Destination Unreachable)를 생성하게 하여 지속해서 자원을 고갈시키는 UDP Flooding 공격 방식을 여러대로 분산해 실행하는 방식이다.
- DNS Query Flooding: DNS 질의는 DNS 질의량에 비하여 DNS 서버의 응답량이 훨씬 크다는 점을 이용하여 출발지 IP를 대상자 IP로 위조한 DNS 질의를 중간자에게 다수 요청하는 방식이다.
TCP Traffic Flooding
- SYN Flooding: TCP 프로토콜의 구조적인 문제를 이용한 공격으로 서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 하는 SYN Flooding 공격 방식을 여러대로 분산해 실행하는 방식이다.
- SYN+ACK Flooding: SYN Flooding과 달리, 공격 대상의 세션에 들어있지 않은 SYN과 ACK를 대량으로 보내 대상의 자원을 소진시키는 공격이다.
IP Flooding
- LAND Attack: 출발지와 목적지의 IP를 같은 주소로 보내 서버가 계속 자신에게 응답을 보내게 만들어 자원을 소진시키는 Land Attack 공격 방식을 여러대로 분산해 실행하는 방식이다.
- Teardrop
HTTP Traffic Flooding
- GET Flooding: HTTP GET 요청을 대량으로 보내 자원 소진 시키는 공격 방법
- GET with Cache-Control: GET Flooding에 Cache-Control이라는 HTTP 헤더 옵션을 사용하는 방법
HTTP Header/Option Spoofing:
- Slowris: HTTP POST 지시자를 이용하여 서버로 전달할 대량의 데이터를 장시간에 걸쳐 분할 전송하면 서버는 POST 데이터가 모두 수신하지 않았다고 판단하여 연결을 장시간 유지하게 된다.
- Slowloris: 웹서버는 HTTP 메시지의 헤더 부분을 먼저 수신하여 이후 수신할 데이터의 종류를 판단하게 되는데, 헤더 부분을 비정상적으로 조작하여 웹서버가 헤더 정보를 구분할 수 없도록 하면, 웹서버는 아직 HTTP 헤더 정보가 모두 전달되지 않은 것으로 판단하여 연결을 장시간 유지하게 된다.
- Slow Read Attack: 공격자는 웹서버와 TCP 연결 시, TCP 윈도우 크기 및 데이터 처리율을 감소시킨 후 HTTP 데이터를 송신하여 웹서버가 정상적으로 응답하지 못하게 된다.
Other L7 Service Flooding
- Hash DoS: 웹 서버가 클라이언트로부터 전달받은 HTTP 메시지의 파라미터 관리를 위해 해시테이블을 사용하는데, 조작된 매개 정보를 포함한 다량의 메시지를 보내면 해시테이블 검색을 위한 인덱스로 사용되는 해시값에 충돌을 발생시켜 정확한 값을 찾기 위해 모든 해시 테이블을 검사하며 웹 서버의 CPU 자원을 소진하게 된다.
- Hulk DoS: 공격 대상 웹 사이트 주소(URL)를 지속적으로 변경하여 일반적인 GET Flooding 공격을 우회하여 공격하는 방법
- FTP/SMTP Attack