피드로 돌아가기
How I Built a DDoS Detection Engine for Nextcloud
Dev.toDev.to
Security

Z-score 기반 실시간 DDoS 탐지 및 iptables 자동 차단 엔진 구축

How I Built a DDoS Detection Engine for Nextcloud

Abosede2026년 4월 29일4intermediate

Context

Nextcloud 기반 클라우드 스토리지 플랫폼의 대규모 트래픽 유입 및 DDoS 공격 대응 필요성 대두. 기존 Rate-limiting 라이브러리에 의존하지 않고 트래픽 패턴을 학습하여 자동으로 공격자를 식별하고 차단하는 맞춤형 엔진 설계 요구.

Technical Solution

  • collections.deque를 활용한 60초 단위 Sliding Window 설계로 개별 IP 및 Global 트래픽의 실시간 요청 수 추적
  • 시간대별(Hourly) 통계를 유지하는 Rolling Baseline 구축을 통해 낮과 밤의 트래픽 변동성을 반영한 동적 임계치 설정
  • Z-score(3.0 σ) 및 Rate Multiplier(5x Mean) 기반의 이중 검증 로직을 적용하여 정상 범위를 벗어난 이상 징후 탐지
  • 4xx/5xx 에러 응답 비율이 3배 증가 시 Z-score 임계치를 2.0으로 하향 조정하여 공격 탐지 민감도를 높이는 가변 임계치 전략 채택
  • iptables DROP 규칙을 통한 커널 레벨의 패킷 차단 및 위반 횟수에 따른 단계적 Ban 시간(10분 → 30분 → 2시간 → 영구) 적용
  • 백그라운드 스레드를 통한 만료된 차단 규칙의 주기적(30초) 삭제 및 Slack 알림 연동을 통한 가시성 확보

- 트래픽 변동성이 큰 서비스의 경우 고정 임계치 대신 시간대별 평균과 표준편차를 활용한 동적 Baseline 도입 검토 - 단순 요청 수뿐만 아니라 HTTP 상태 코드 패턴을 탐지 조건에 결합하여 탐지 정확도 향상 - 어플리케이션 레벨의 차단보다 iptables와 같은 커널 레벨 차단을 통해 시스템 리소스 소모 최소화 - O(1) 복잡도를 가진 자료구조(Deque)를 사용하여 실시간 트래픽 분석의 오버헤드 방지

원문 읽기