[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 패치로 해결 가능
'IT' 카테고리의 다른 글
[Elastic Search] Ubuntu에 엘라스틱서치 최신 버전 설치 방법 (0) | 2024.11.28 |
---|---|
[SOLVED] Logstash 설치 시 오류 해결법 - E: Conflicting values set for option Signed-By regarding source (3) | 2024.10.25 |
[Elastic Search] 엘라스틱서치 비밀번호 변경(초기화) (3) | 2024.10.22 |
[SOLVED] 엘라스틱 서치 접속 불가 문제 - The connection was reset (0) | 2024.10.16 |
[Elastic Search] 엘라스틱 스택 설치 on Ubuntu 시스템 (0) | 2024.10.14 |