📌 본 게시물은 자기 학습 목적으로 작성되어 일부 내용이 부정확하거나 최신 정보와는 다를 수 있습니다.
💬 잘못된 부분이나 보완할 점이 있다면 댓글로 공유하여 주시면 감사하겠습니다!
특정 시스템, 네트워크 또는 서비스의 자원을 과도하게 사용하거나 고갈 시켜 정상적인 사용자들이 해당 서비스를 이용할 수 없도록 만드는 공격
일반적으로 네트워크 트래픽이나 시스템의 처리 능력을 초과하는 방식으로 서비스를 마비시킴
DoS 공격은 단일 공격원에서 발생하는 서비스 거부 공격이며 DDoS(Distributed Denial of Service)이란 여러 분산된 공격원(봇넷 등)을 통해 대뮤모 트래픽을 발생시키는 공격으로 다수의 공격원이 동시에 공격을 수행하여 방어와 대응이 훨씬어려움
| 공격 도구 | 주요 특징 | 지원 공격 유형 |
|---|---|---|
| Trinoo | UDP Flooding에 특화된 DDoS 도구 / UDP 기반의 트래픽을 대량으로 전송하여 네트워크를 마비시킴 / 암호화 기능 X | UDP Flooding |
| TFN (Tribe Flood Network) | 다양한 공격 유형을 지원하며 UDP, ICMP, TCP Flooding과 Smurf 공격도 수행 가능 / 암호화 기능 X | UDP, ICMP, SYN Flooding, Smurf 공격 |
| Stacheldraht | TFN과 유사한 기능을 제공하며 TCP, UDP, ICMP 기반 공격을 지원 / 암호화 가능 | UDP, ICMP, SYN Flooding, Smurf 공격 |
| TFN2K | TFN의 확장 버전으로 SYN, UDP, ICMP Flooding을 포함하여 여러 프로토콜로 복잡한 공격을 수행 가능. | UDP, ICMP, SYN Flooding, Smurf 공격 |
- SYN : 클라이언트가 서버에 연결 요청을 보냄
- SYN-ACK : 서버가 요청을 받아들였음을 응답
- ACK : 클라이언트가 응답을 확인하고 연결 설정 완료
- 공격자는 서버에 연결 요청을 위한 SYN 패킷을 대량으로 전송
- 서버는 요청을 처리하기 위해 SYN-ACK 응답을 보낸 후 클라이언트의 ACK를 기다리며 연결 상태 유지
- 공격자는 의도적으로 ACK 패킷을 보내지 않거나 가짜 IP 주소를 사용하여 응답이 도달하지 않게 함
- 서버는 연결 요청에 대해 일정 시간 동안 리소스를 점유하여 새로운 연결 요청을 처리할 수 없게 됨
tcp_max_syn_backlog 파라미터 조정ICMP(Internet Control Message Protocol) 패킷을 대량으로 전송하여 타깃 네트워크, 장치 또는 서버를 과부화 상태로 만들어 서비스 거부 상태를 초래하는 공격
Smurfing Attack이라고도 함
ICMP 프로토콜 : 네트워크 상태를 모니터링하거나 오류 메시지를 전달하기 위해 사용되는 프로토콜
ICMP Flooding 공격의 원리
- 공격자는 ICMP Echo Request(Ping 요청) 메시지의 출발지 IP를 타깃 시스템의 IP 주소로 위조
- 위조된 ICMP Echo Request 메시지를 특정 네트워크의 IP 브로드캐스트 주소로 전송
- 브로드캐스트 패킷을 받은 네트워크 내의 모든 장치는 ICMP Echo Reply 패킷을 위조된 타깃 IP로 전송
- 타깃 시스템으로 대량의 트래픽 유입
1. 리눅스
sudo sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
2. 유닉스
ndd -set /dev/ip ip_respond_to_echo_broadcast 0
| 종류 | 설명 |
|---|---|
| Tiny Fragment | 작은 크기의 Fragment를 만들어 네트워크 침입 탐지 시스템이나 패킷 필터링 장치를 우회하도록 설계된 공격 방식. |
| Fragment Overlap | Tiny Fragment 공격보다 더 복잡한 기법으로 IDS의 Fragment 처리 과정과 패킷 재조합 방식의 허점을 악용 |
| IP Fragmentation 기반 공격 | - Ping of Death: Ping을 이용하여 ICMP 패킷 길이를 비정상적으로 증가 수신 시스템에서 처리 불가 상태를 유발하여 시스템 마비 - Tear Drop: 단편화된 패킷의 재조합 과정에서 발생하는 취약점을 악용해 시스템 중단 또는 비정상 작동을 유발하는 공격으로 Offset이 중복된 패킷을 전송 |
IP 패킷 단편화(Fragmentation)
Tear Drop 공격
네트워크 프로토콜의 취약점을 악용하여 출발지 IP 주소(Source IP)와 목적지 IP 주소(Destination IP)를 동일하게 설정하여 트래픽을 전송하는 공격
송신자와 수신자의 IP주소와 Port 번호가 동일하여 네트워크 장비에 부하를 유발
Land Attack 대응책
웹 서버와 TCP 연결 시에 TCP 윈도우 크기와 데이터 처리율을 감소시킨 후 HTTP 데이터를 송신하여 웹 서버가 정상적으로 응답하지 못하도록 하는 공격
TCP 윈도우 크기 및 데이터 처리율을 감소시키면 서버는 정상상태로 회복될 때까지 대기 상태에 빠져 부하를 유발
Slow HTTP Read DoS 공격의 원리
| SLOW HTTP | POST | HEADER | Read |
|---|---|---|---|
| 동작 | 분할 전송 | 헤더 조작 | Window Size |
웹 서버의 가용량(최대 클라이언트 수)을 모두 소모시켜 정상적인 서비스 제공을 불가능하게 만드는 Get Flooding 공격 유형
공격 대상 URL에 지속적으로 임의의 파라미터를 추가하여 URL을 변경하고 임계치 기반의 DDoS 방어 정책을 우회
HULK DoS대응책
# 동시 연결이 30개 초과 시에 차단
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 30 -j DROP
```
https://www.imperva.com/learn/ddos/syn-flood/
https://www.imperva.com/learn/ddos/smurf-attack-ddos/
https://indusface.com/learning/land-attacks/
https://www.cloudflare.com/ko-kr/learning/ddos/http-flood-ddos-attack/
https://webstone.tistory.com/162