Ⅰ. HTTP Flood 공격이란?
과도한 HTTP 요청(GET 또는 POST) 을 웹 서버에 보내 서버의 자원(CPU, 메모리, DB 등) 을 고갈시켜 서비스 거부(DoS)를 유도하는 7계층(애플리케이션 계층) DDoS 공격입니다.
Ⅱ. HTTP Flood 공격 특징
항목 | 내용 |
OSI 계층 | 7계층 (Application Layer) |
프로토콜 | HTTP 1.0 / 1.1 / 2.0 |
목표 | 웹 서버, API 서버, CMS (WordPress 등) |
패킷 크기 | 작고 정상처럼 보이지만 빈번하게 발생 |
세션 | 보통 TCP 세션을 정상적으로 수립한 후 공격 진행 |
우회성 | 패킷 필터링 어렵고, CAPTCHA, JS Challenge로 대응 필요 |
Ⅲ. HTTP Flood 공격 방식
ⅰ. HTTP GET Flood
1) 정적 자원 타겟팅: 대용량 이미지(예: /large-image.jpg)를 반복 요청하여 웹 서버의 I/O 및 네트워크 자원 고갈
2) 재귀적 요청 변종: 링크를 따라 추가 요청을 생성하는 재귀적 구조(예: /page?redirect=/another-page)
ⅱ. HTTP POST Flood
1) 동적 처리 유도 : 로그인, 검색 등 서버 내 로직 처리나 DB 쿼리 유발 요청을 반복을 통한 서버 CPU, 메모리, DB 연결 등 부하
2) 해시 충돌 공격: 다수의 중복 파라미터를 전송해 웹 서버의 해시 테이블 성능을 저하시키는 변종(Hash DoS)
ⅲ. 복합 변종 공격
1) Slowloris: 불완전한 HTTP 헤더를 지속적으로 전송해 연결 세션을 장기간 유지.
2) R.U.D.Y(R-U-Dead-Yet): Content-Length를 과도하게 설정하고 데이터를 10초 간격으로 조금씩 전송
Ⅳ. HTTP Flood 탐지 기법
기법 | 설명 |
Request Rate 분석 | IP당 초당 요청 수가 일정 임계값 초과 시 탐지 |
행동 패턴 분석 | 비정상 URL 순서, User-Agent/Referrer 조합 추적 |
머신러닝 기반 이상탐지 | LSTM, SVM 등을 통한 트래픽 이상 탐지 |
Web 서버 로그 분석 | Apache/Nginx 로그 기반으로 비정상 요청 패턴 파악 |
Ⅴ. HTTP Flood 대응 전략
ⅰ. WAF(Web Application Firewall) 적용
■ OWASP 룰셋 적용 (ModSecurity 등)
■ 비정상 User-Agent, Referer, URL 패턴 필터링
ⅱ. CAPTCHA / JS Challenge
■ 봇이 통과 못하는 인증 절차 추가 (Cloudflare, AWS WAF 등에서 제공)
ⅲ. Rate Limiting & Throttling
■ IP당 요청 수 제한 (limit_req, limit_conn in Nginx)
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=1r/s; |
ⅳ. CDN/Reverse Proxy 사용
■ Cloudflare, Akamai, AWS CloudFront 등 사용하여 공격 트래픽 우회
Ⅵ. 애플리케이션 최적화
■ DB 쿼리 최적화, 캐시 사용, 비동기 처리 등으로 서버 자원 방어력 강화
Ⅶ. HTTP Flood 공격 사례
사례 | 내용 |
2022년 GitHub 공격 | Botnet으로 구성된 HTTP Flood → 페이지 뷰 요청이 초당 1억 회 이상 도달 |
2023년 WordPress 기반 쇼핑몰 | XML-RPC POST 요청 남용 → 로그인 인증 서버 다운 |
Ⅷ. HTTP Flood 요약 정리
항목 | 설명 |
공격명 | HTTP Flood |
계층 | OSI 7계층 (Application Layer) |
공격 대상 | 웹 서버, API 서버 |
공격 기법 | GET/POST 요청을 대량 전송하여 자원 고갈 유도 |
대응 방법 | WAF, CAPTCHA, Rate Limit, CDN, 트래픽 분석 |
'어플리케이션' 카테고리의 다른 글
이메일(e-mail) 전송 흐름에 대해 알아보겠습니다. (0) | 2025.06.13 |
---|---|
쿠키, 캐시, 세션이 무엇이고, 왜 중요한지 알아보겠습니다. (1) | 2025.06.12 |
JDBC(Java Database Connectivity)에 대해 알아보겠습니다. (2) | 2025.06.10 |
미디어위키(MediaWiki)에 대해 알아보겠습니다. (1) | 2025.06.09 |
YARA(Yet Another Recursive Acronym)에 대해 알아보겠습니다. (0) | 2025.06.03 |