반응형

[DDoS 공격유형]

● 대역폭 소진공격 (3~4 계층 공격)

<공격종류>

1) UDP/ICMP Traffic Flooding

 UDP Flooding /  ICMP Flooding /  DNS Query Flooding

2) TCP Traffic Flooding

○ SYN Flooding / ○ SYN+ACK Flooding

3) IP Traffic Flooding

○ Land Attack / ○ Tear Drop / ○ Smurf Attack /○ HTTP Continuation

<공격대상>

 네트워크 인프라

<공격목적>

 대역폭 소진

 동일 네트워크에 있는 모든 서비스 접속장애 유발



 서비스 마비 공격 (7 계층 공격)

<공격종류>

1) HTTP Traffic Flooding

○ GET Flooding /  CC Attack

2) HTTP Header/Option Spoofing

○ Slow HTTP Header DoS(Slowloris) / ○ Slow HTTP POST DoS(RUDY)

3) TCP Traffic Flooding

○ TCP Session / ○ TCP SYN Flooding / ○ Slow HTTP Read

4) Other L7 Service Flooding

○ Hash DoS / ○ Hulk Dos / ○ FTP Attack / ○ SMTP Attack

<공격대상>

 WEB 서버

 정보보호 장비

<공격목적>

 HTTP 서버 과다 접속으로 인한 장애 발생

 공격 대상 시스템 피해




[DDoS 공격 대응책]

 TCP SYN Flooding 대응

○ First SYN Drop : 모든 클라이언트로부터 처음 들어오는 SYN 패킷은 차단한다.

○ SYN Cookie 이용 : SYN Cookie를 이용하여 3-Way Handshaking이 이루어 지지 않으면 Backlog Queue가 소비되지 않도록 설정    

- SYN cookie 활성화 : [Linux] # sysctl -w net.ipv4.tcp_syncookies=1

○ 방화벽 또는 DDoS 장비를 이용하여 동일 Client IP의 연결요청(SYN) 패킷은 임계치를 설정하여 과도한 연결요청 발생 차단

- iptables를 이용 예시 : iptables -A INPUT -p TCP --dport 80 --syn -m connlimit --connlimit-above 5 -j DROP

#설명# : TCP포트 80 연결 요청 패킷(SYN)에 대해 동일 출발지 IP로 동시 연결 개수가 5개 초과 시 차단

○ SYN+ACK에 대한 대기 시간 줄이기 : 3-Way Handshaking을 할때 서버가 클라이언트에게 SYN+ACK를 주고나서 대기하는 시간을 줄인다

- 주의사항 : 정상통신도 차단 될 위험이 있음

○ Backlog Queue 크기 늘리기(임시방편) : 임시적인 조치로 대규모 공격이 발생하면 무용지물이 됨

Backlog Queue 크기 늘리기 : [Linux] # sysctl -w net.ipv4.tcp_max_syn_backlog=1024 (#Backlog Queue 크기를 1024로)

[Unix] # ndd -set /dev/tcp tcp_conn_req_max_q0 1024 (#Backlog Queue 크기를 1024로)

 Smurf Attack 대응

○ 다량의 ICMP Echo Relay 패킷 발생 -> IPS/IDS 차단 진행

○ Directed Broadcast 패킷 방지 (라우터 설정 변경) : (config-if) # no ip directed-broadcast

○ Directed Broadcast 요청 무응답 (시스템 설정 변경)

 Slow HTTP Header DoS(Slowloris) / Slow HTTP POST DoS(RUDY) 대응

○ 동시 연결에 대한 임계치 설정 : 출발지 IP에서 동시에 연결할 수 있는 연결개수에 대한 임계치 설정

- iptables를 이용 예시 : iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 30 -j DROP

#설명# : TCP포트 80에 대해 동일 출발지 IP로 동시 연결 개수가 30개 초과 시 차단

○ 연결 타임아웃 설정 : 클라이언트와 WEB 서버간 아무런 데이터 통신이 없이 세션을 유지하는 시간에 대한 타임아웃 설정

- Apache 설정 예시 : 

<Apache httpd.conf 중 일부>

Timeout 5

#설명# : 5초 동안 아무런 통신이 없으면 연결 종료 (단, 너무 짧게 시간을 설정하면 정상 사용자도 차단 가능성 있음)

○ 읽기 타임아웃 설정 : 클라이언트와 WEB 서버간에 읽기 타임아웃 설정

- Apache 설정 예시 : 

<Apache httpd.conf 중 일부>

<IfModule reqtimeout_module>

RequestReadTimeout header=5 body=10

</IfModule>

#설명# : 헤더 요청 정보가 5초 이내에 수신되지 않거나, 바디 요청 정보가 10초 이내에 모두 수신되지 않으면 연결 종료

 Land Attack 대응

OS 패치로 해결 가능

 Tear Drop

○ OS 패치로 해결 가능


반응형

+ Recent posts