피드로 돌아가기
Dev.toSecurity
원문 읽기
Sliding Window와 Baseline 통계 기반의 실시간 DDoS 탐지 엔진 구현
How I Built a Real-Time DDoS Detection Engine From Scratch (And What I Learned)
AI 요약
Context
고정 임계값 기반 차단 방식의 시간대별 트래픽 변동성 대응 한계 및 오탐 가능성 인지. 단순 요청 수 기반 차단이 아닌 동적 Baseline을 통한 이상 징후 탐지 필요성 대두.
Technical Solution
- Nginx JSON 로그를
seek(0, 2)및readline()기반의 실시간 Tailing 구조로 처리하여 지연 시간 최소화 collections.deque를 활용한 Sliding Window 설계로 60초 주기 내의 정밀한 요청 빈도 측정 및 O(1) 시간 복잡도의 데이터 제거 구현- 30분 단위 Rolling Window와 시간대별(0-23시) 슬롯을 조합한 Baseline 구축으로 트래픽의 정상 범위 동적 정의
- 단순 수치 비교가 아닌 통계적 편차를 분석하여 정상 범위를 벗어난 IP를 식별하는 이상 탐지 로직 적용
- Docker 컨테이너 네트워크 제약을 해결하기 위해 호스트 레벨의
DOCKER-USER체인을 통한iptables차단 정책 실행 - 백그라운드 스레드를 통한 Ban 만료 시간 체크 및 자동 규칙 삭제 프로세스 구축
실천 포인트
- 고정 임계값 대신 트래픽 패턴을 학습하는 Dynamic Baseline 도입 검토 - 실시간 윈도우 데이터 처리 시 삽입/삭제 효율이 높은 Deque 자료구조 활용 - 컨테이너 환경의 패킷 차단 시 네트워크 네임스페이스 위치와 iptables 체인 우선순위 확인 - 탐지 엔진의 신뢰성 확보를 위해 표준편차 기반의 통계적 판단 기준 수립