공부/정보보안

DDoS 공격 유형

bae_g0 2020. 6. 11. 21:35

(1) UDP/ICMP Flooding
: 공격자는 다량의 UDP/ICMP 패킷을 서버로 전송, 서버가 보유한 네트워크 대역폭을 가득 채워 다른 정상적인 클라이언트의 접속을 원활하지 못하도록 유발

(2) DNS Query Flooding
: 공격자는 UDP 프로토콜 기반의 서비스를 제공하는 DNS에 대해 DNS 쿼리 데이터를 다량으로 서버에 전송하여 DNS의 정상적인 서비스를 방해

(3) TCP SYN Flooding ⭐️
- 공격자는 다량의 SYN 패킷을 서버로 전달하여 서버의 대기큐(backlog queue)를 가득 채워 새로운 클라이언트의 연결요청을 무시하도록 함
* netstat 명령어로 공격대상측 소켓 상태 확인 시, SYN_RECV 상태의 tcp 소켓을 다수 확인 가능
(3-1) TCP SYN Flooding 대응책
- syn cookies 설정(완전한 3-Way Handshaking이 이루어지지 않는다면 backlog queue가 소비되지 않도록 설정)
=> [Linux]#sysctl -w net.ipv4.tcp_syncookies=1
- (방화벽/DDoS 대응장비) 동일 client(IP)의 SYN 요청에 대한 임계치 설정
=> iptables -A INPUT -p TCP —dport 80 —syn -m connlimit —conlimit-above 5 -j DROP
- First SYN Drop 설정
- backlog queue 크기를 늘림(임시적 조치)
- SYN+ACK에 대한 대기시간 줄임(과도하게 줄일 시 정상요청에 문제 생길 수 있음)

(4) TCP Flag Flooding
: TCP의 Flag값(control bit)를 임의로 조작하여 여러 형태의 패킷을 생성(SYN, ACK, FIN, RST), 서버는 이러한 패킷을 수신하는 경우 패킷 검증으로 서버 자원을 소모

(5) TCP Session Flooding
: TCP 3-Way Handshake 과정을 과도하게 유발하여 서비스 과부하를 유발

(6) HTTP Continuation
: 서버로 전달되는 패킷에 HTTP Header 없이 Data만 채워 웹서버가 지속적으로 데이터 수신을 위해 TCP자원을 사용하도록 함

(7) HTTP GET Flooding
: 공격자는 동일한 URL을 반복 요청하여 웹서버가 URL에 해당되는 데이터를 클라이언트에게 회신하기 위해 서버 자원을 사용하도록 함

(8) HTTP GET Flooding with Cache-Control(CC Attack)
: 공격자는 HTTP메시지의 캐시 옵션(Cache-control:no-store, must-revalidated)을 조작하여 캐싱 서버가 아닌 웹서버가 직접 처리하도록 유도 -> 캐싱 서버의 기능 무력화, 웹서버의 자원 소모

(9) Slow HTTP POST DoS(rudy)
: HTTP POST 메소드를 이용해 서버로 전달한 대량의 데이터를 장시간에 걸쳐 분할 전송 -> 서버는 POST 데이터가 모두 수신되지 않았다고 판단해 연결 유지
* 공격자는 content-length를 비정상적으로 크게 설정한 후 매우 소량의 데이터를 지속적으로 전송

(10) Slow HTTP Header DoS(Slowloris) ⭐️
: HTTP 메시지의 헤더부분을 비정상적으로 조작해 웹서버가 헤더정보를 구분할 수 없도록 함 -> 서버는 HTTP 헤더정보가 모두 전달되지 않은 것으로 판단해 연결 유지
* 빈 라인(개행(0x0d0a))을전달하지 않고 지속적으로 천천히 불필요한 헤더 필드 정보 전달

(11) Slow HTTP Read Dos
: TCP 윈도우 크기 및 데이터 처리율을 감소시킨 후 HTTP 데이터를 서버에게 송신(Zero Window Packet 전달) -> 웹서버 정상적 응답 x

(12) 해시도스(HashDoS) 공격
- 웹서버는 클라이언트로 전달받은 HTTP 메시지의 매개정보(parameter)관리를 위해 해시 테이블 사용
- 조작된 매개정보를 포함한 다량의 메시지 -> 해시값(해시테이블 검색을 위한 인덱스)에 충돌 발생 -> 정확한 값 찾기 위해 모든 해시테이블 검사 -> CPU자원 소진

(13) 헐크도스(HulkDoS) 공격
: GET Flooding 공격 유형으로 동일 URL을 지속적으로 요청 시 차단 -> 이를 우회하기 위해 URL을 지속적으로 변경하면서 공격

# Slow HTTP Header/POST 공격 대응책 #
1. 동시 연결에 대한 임계치 설정 : 동일한 출발지 IP에서 동시에 연결할 수 있는 연결개수에 대한 임계치 설정
=> iptables -A INPUT -p tcp —dport 80 -m connlimit —connlimit-above 30 -j DROP
2. 연결 타임아웃 설정을 통한 차단(apache httpd.conf 설정)
=> Timeout 120
3. 읽기 타임아웃 설정(apache httpd.conf 설정)
=> <IfModule reqtimeout_module> RequestReadTimeout header=5 body=10 </IfModule>

'공부 > 정보보안' 카테고리의 다른 글

서비스 거부(DoS) 공격  (0) 2020.06.09
포트 스캐닝  (0) 2020.06.08
ARP spoofing / IP spoofing / ICMP redirect / TCP session hijacking  (0) 2020.06.04
TCP/IP 프로토콜  (0) 2020.06.04
유닉스/리눅스 주요 로그 파일  (0) 2020.06.02