피드로 돌아가기
How I Built a Real Time DDoS Detection Engine from Scratch
Dev.toDev.to
Security

Deque 기반 Sliding Window와 Z-score를 활용한 실시간 DDoS 탐지 엔진 구축

How I Built a Real Time DDoS Detection Engine from Scratch

marlinekhavele2026년 4월 29일12intermediate

Context

로그 기반의 단순 차단 도구인 Fail2Ban의 한계를 극복하기 위해 정적 임계값이 아닌 동적 베이스라인 기반의 탐지 체계 필요성 대두. I/O 병목과 시간 윈도우 측정 오차를 해결하는 실시간 Anomaly Detection 구조 설계 요구.

Technical Solution

  • LogMonitor와 Detector를 Queue로 분리하여 I/O와 CPU 연산의 독립성을 확보한 Producer-Consumer 구조 설계
  • Python collections.deque를 활용한 Sliding Window 구현으로 시간 복잡도 O(1)의 효율적인 요청 수 측정 달성
  • 30분 분량의 Rolling Baseline을 구축하여 서버별 정상 트래픽 패턴을 학습하는 동적 임계값 체계 도입
  • Z-score 통계 분석과 5배수 배수 규칙을 병행 적용하여 다양한 형태의 공격 패턴을 탐지하는 하이브리드 로직 구현
  • iptables 커널 레벨 차단과 단계적 Ban 해제(Backoff Release)를 통한 시스템 자원 보호 및 오탐 대응
  • Docker 환경 내 NET_ADMIN 권한 부여를 통한 호스트 레벨 네트워크 제어 구조 확보

- 실시간 스트림 데이터 처리 시 리스트 대신 Deque를 사용하여 윈도우 기반 데이터 삭제 성능 최적화 - 정적 임계값 설정 대신 일정 기간의 데이터를 기반으로 한 Z-score 등 통계적 베이스라인 도입 검토 - 로그 수집(I/O)과 분석(CPU) 로직을 큐로 분리하여 처리량 급증 시의 데이터 유실 방지 - 인프라 제어 도구 도입 시 컨테이너 권한(Capabilities)과 호스트 네트워크 전파 범위 확인

원문 읽기