1. HTTP READ DDoS 공격 정의
HTTP READ DDoS 공격은 웹 서버가 제공하는 문서나 데이터를 요청한 후, 정상적인 요청인 것처럼 보이지만 대량의 요청을 지속적으로 보내 웹 서버의 리소스를 과부하시키는 분산 서비스 거부(DDoS) 공격입니다. 공격자는 여러 대의 봇넷(Botnet)을 활용하여 다량의 HTTP GET
또는 HTTP POST
요청을 보내 서버가 응답을 지속적으로 처리하도록 만들고, 결국 서비스 지연 또는 다운을 유발합니다.
2. HTTP READ DDoS 공격 방식
- 공격자는 여러 IP 주소(좀비 PC, 봇넷 등)를 사용하여 표면적으로 정상적인 HTTP 요청을 다량 생성합니다.
- 주로
GET
요청을 사용하여 서버에서 문서, 이미지, HTML 파일 등의 리소스를 지속적으로 읽도록 유도합니다. - 웹 서버가 요청을 처리하고 응답을 보내야 하므로, 높은 트래픽을 유발하여 서버의 자원을 고갈시키고 응답 속도를 늦추거나 서비스 불능 상태로 만듭니다.
- 일부 공격은 요청을 받은 후 응답을 천천히 읽도록 설계하여 연결을 장시간 유지하게 만듦으로써 서버의 동시 연결 제한을 초과하게 만듭니다.
3. HTTP READ DDoS의 특징
- 애플리케이션 계층(7계층) 공격: HTTP 프로토콜을 이용하여 웹 애플리케이션을 직접 타겟으로 하는 공격 유형입니다.
- 정상적인 HTTP 트래픽과 유사: 공격 요청이 합법적인 HTTP 요청과 유사하기 때문에 탐지와 차단이 어렵습니다.
- 자원 고갈: 서버의 CPU, 메모리, 네트워크 대역폭을 소모시켜 서비스 장애를 유발합니다.
- Slowloris와 유사한 방식 사용 가능: 일부 공격자는 서버가 요청을 처리하고 응답을 지속적으로 유지하도록 속여 연결을 장시간 점유하게 만듭니다.
비슷한 공격 유형들
☞ 보통 웹서버의 web.xml나 세션 설정을 보면 HTTP 요청에 대해 60초 타임아웃이 걸려있는 경우가 많습니다. 이때 59초 되면 1Kb 보내고, 59초 되면 1Kb 보내는식으로 세션을 계속 유지하여 세션풀을 고갈시키는 방식으로 공격할 수도 있습니다.
1. Slowloris 공격
- 클라이언트가 HTTP 요청을 매우 느리게 보내면서 서버가 연결을 장시간 유지하도록 유도하는 공격입니다.
- 서버가 새로운 연결을 처리할 리소스를 소진하게 만듭니다.
- 주로 Apache, Nginx 등의 웹 서버를 목표로 합니다.
2. HTTP Flood 공격
- HTTP 요청을 대량으로 보내 웹 서버를 과부하 상태로 만드는 DDoS 공격 방식입니다.
- 봇넷을 활용하여 다수의 요청을 발생시켜 서버가 과부하로 인해 정상적인 요청을 처리하지 못하게 합니다.
GET
또는POST
요청을 이용할 수 있으며, CAPTCHA나 웹 애플리케이션 방화벽(WAF) 등으로 대응할 수 있습니다.
3. RUDY (R-U-Dead-Yet) 공격
POST
요청을 이용하여 서버가 클라이언트로부터의 요청 데이터를 천천히 수신하도록 만들어 연결을 장시간 점유하는 방식입니다.- 매우 적은 트래픽만으로도 서버의 연결 리소스를 소진시키는 것이 특징입니다.
- 공격자는 데이터 패킷을 천천히 보내면서 서버가 응답을 완료할 수 없도록 합니다.
4. LOIC (Low Orbit Ion Cannon) & HOIC (High Orbit Ion Cannon) 공격
- LOIC: 공격자가 다수의 HTTP 요청을 생성하여 서버를 다운시키는 도구로, DDoS 공격에 자주 사용됩니다.
- HOIC: LOIC보다 더 강력한 공격 도구로, HTTP 트래픽을 증가시키는 기능을 추가하여 탐지가 더욱 어렵습니다.
5. Cache Bypass DDoS
- 공격자가 정적 리소스를 요청할 때 캐시를 우회하여 서버의 처리 부담을 증가시키는 공격입니다.
- 예를 들어,
example.com/image.jpg?random=1234
와 같이 쿼리 스트링을 변경하여 CDN이나 프록시 서버가 캐싱을 하지 못하도록 유도합니다.
HTTP READ DDoS 공격 방어 방법
- Rate Limiting (속도 제한)
- 특정 IP 또는 세션별 요청 수를 제한하여 과도한 트래픽을 차단합니다.
- 웹 애플리케이션 방화벽(WAF) 사용
- Cloudflare, AWS WAF, Imperva 등의 WAF를 이용하여 비정상적인 HTTP 요청을 필터링합니다.
- CAPTCHA 도입
- CAPTCHA를 적용하여 봇이 자동화된 HTTP 요청을 보내는 것을 방지합니다.
- HTTP Keep-Alive 제한
- 클라이언트가 서버에 연결을 유지하는 시간을 제한하여 장기적인 연결 점유를 방지합니다.
- CDN(Content Delivery Network) 활용
- Cloudflare, Akamai 등의 CDN 서비스를 활용하여 트래픽을 분산시킵니다.
- IP 블랙리스트 및 Rate Limiting 설정
- 의심스러운 IP 주소를 차단하거나 특정 IP의 요청 빈도를 제한하여 공격을 완화할 수 있습니다.
- 로그 분석 및 이상 탐지 시스템 도입
- 서버 로그를 지속적으로 분석하고 비정상적인 트래픽 패턴을 탐지하는 IDS/IPS(침입 탐지 및 방지 시스템)를 활용합니다.
결론
HTTP READ DDoS 공격은 웹 서버의 리소스를 과부하시키는 대표적인 애플리케이션 계층 DDoS 공격입니다. Slowloris, HTTP Flood, RUDY 등의 유사한 공격 기법도 존재하며, 방어를 위해 WAF, 속도 제한, CAPTCHA, CDN 등의 보안 솔루션을 도입하는 것이 중요합니다. 최신 보안 시스템을 적용하고 지속적으로 네트워크 트래픽을 모니터링하여 공격을 사전에 예방하는 것이 필요합니다.
추가정보!
Slowloris 공격과 SYN Flood 공격은 서로 다른 방식일까?
Slowloris 공격과 SYN Flood 공격은 서로 다른 방식의 DDoS(서비스 거부 공격) 기법입니다. 두 공격 모두 서버의 리소스를 소모하여 정상적인 서비스 제공을 방해하지만, 공격 방식과 대상이 다릅니다.
1. Slowloris 공격
Slowloris는 애플리케이션 계층(7계층) 공격으로, 웹 서버의 연결 리소스를 소진시키는 방식입니다.
🛠 공격 방식
- 공격자는 다수의 HTTP 요청을 보낸 후, 요청의 헤더를 매우 천천히 전송하여 웹 서버가 응답을 완료하지 못하도록 합니다.
- 서버는 클라이언트의 요청이 끝날 때까지 연결을 유지하려 하므로, 많은 연결이 활성화된 상태로 유지됩니다.
- 연결이 계속 유지되면서 새로운 요청을 받을 수 있는 가용 리소스가 줄어들고, 결국 서버가 다운되거나 응답 속도가 느려집니다.
🎯 주요 특징
✅ HTTP 기반 공격 (TCP 연결 후 발생)
✅ 적은 트래픽으로도 공격 가능 (저대역폭 공격)
✅ 서버의 동시 연결 제한을 초과시키는 방식
✅ 주로 웹 서버(Apache, Nginx 등)에 사용됨
🛡 Slowloris 방어 방법
- HTTP 요청당 제한 시간 설정 (Timeout)
- 웹 애플리케이션 방화벽(WAF) 사용
- 연결 유지 시간(Keep-Alive) 제한
- 특정한 User-Agent 또는 비정상적인 요청 패턴 탐지
2. SYN Flood 공격
SYN Flood는 네트워크 계층(3계층) 공격으로, TCP 프로토콜의 3-way handshake 과정에서 서버의 연결 큐를 고갈시키는 방식입니다.
🛠 공격 방식
- 공격자는 다량의 TCP SYN 패킷을 서버에 보내지만, 정상적인 ACK 응답을 보내지 않음으로써 세션을 미완성 상태로 둡니다.
- 서버는 클라이언트의 ACK를 기다리며 반개방(Half-open) 연결 상태를 유지합니다.
- 일정 시간이 지나도 ACK가 오지 않으면, 서버는 새로운 연결을 처리할 수 없게 되고 과부하가 발생하여 정상적인 요청을 거부하게 됩니다.
🎯 주요 특징
✅ 네트워크 계층(TCP/IP 3계층) 공격
✅ 대량의 패킷을 이용한 대역폭 기반 공격
✅ 서버의 연결 처리 큐를 초과시키는 방식
✅ 주로 방화벽, TCP 기반 서비스(예: SSH, FTP, 웹 서버 등)에 사용됨
🛡 SYN Flood 방어 방법
- SYN Cookies 사용 (서버가 쿠키 값을 클라이언트에게 보내고, 올바른 응답이 올 경우에만 연결 유지)
- TCP Half-Open Connection 제한
- 방화벽에서 비정상적인 TCP 트래픽 차단
- IP 블랙리스트 및 속도 제한 적용
3. Slowloris vs. SYN Flood 비교
특징 | Slowloris 공격 | SYN Flood 공격 |
---|---|---|
계층 | 애플리케이션 계층 (7계층) | 네트워크 계층 (3계층) |
대상 | 웹 서버 (Apache, Nginx 등) | TCP 서비스 (모든 TCP 기반 서버) |
공격 방식 | HTTP 요청을 느리게 전송하여 연결 유지 | 대량의 SYN 패킷을 보내고 응답을 받지 않음 |
리소스 소진 방식 | 웹 서버의 동시 연결 수 제한 초과 | 서버의 TCP 연결 큐를 초과 |
대역폭 사용 | 낮음 (적은 트래픽으로도 효과적) | 높음 (대량의 패킷 필요) |
방어 방법 | Keep-Alive 제한, WAF | SYN Cookies, 방화벽, Rate Limiting |
📌 결론
- Slowloris: 웹 서버의 HTTP 연결을 지속적으로 유지하여 서버의 자원을 소모시키는 애플리케이션 계층 공격
- SYN Flood: TCP 3-way handshake를 악용하여 서버의 연결 큐를 초과시키는 네트워크 계층 공격
두 공격 모두 서비스 거부(DoS)를 유발하지만, Slowloris는 웹 서버의 연결을 점유하는 방식, SYN Flood는 네트워크 트래픽을 과부하시키는 방식으로 동작합니다. 💡