피드로 돌아가기
Dev.toSecurity
원문 읽기
Z-score 및 Sliding Window 기반 실시간 DDoS 탐지 및 자동 차단 시스템 구축
How I Built a Real-Time DDoS Detection System with Python, Docker, and Nginx (Beginner-Friendly Guide)
AI 요약
Context
서버 가용성을 위협하는 DDoS 공격으로 인한 서비스 중단 및 응답 속도 저하 문제 해결 필요. 정적인 임계값 설정 방식의 한계를 극복하기 위해 동적 트래픽 분석 기반의 자동화된 대응 체계 설계.
Technical Solution
- Nginx Log 실시간 파싱을 통한 IP 및 타임스탬프 기반 트래픽 데이터 추출
- Python deque를 활용한 Sliding Window 구조 설계로 최근 60초간의 요청 수 실시간 추적
- 30분간의 트래픽 Mean 및 Standard Deviation을 계산하여 개별 환경에 최적화된 Baseline 수립
- Z-score > 3 또는 평균 대비 5배 이상의 트래픽 급증 시 공격으로 판정하는 Anomaly Detection 로직 적용
- iptables 기반의 IP 차단 및 단계별 Backoff Unban 시스템을 통한 동적 Access Control 구현
- Docker Compose 기반의 서비스 컨테이너화를 통한 인프라 재현성 확보
실천 포인트
1. 고정 임계값 대신 Z-score 기반의 동적 Baseline을 적용하여 오탐률을 낮추었는가?
2. 메모리 효율을 위해 deque와 같은 적절한 Sliding Window 자료구조를 선택했는가?
3. 서비스 가용성 보장을 위해 차단된 IP의 단계적 복구(Backoff Unban) 전략을 수립했는가?
4. Webhook 등 민감 정보의 유출 방지를 위해 Environment Variable 관리 체계를 갖췄는가?