diff --git a/README.md b/README.md index 35d4862..ab3e0a4 100644 --- a/README.md +++ b/README.md @@ -124,8 +124,15 @@ xdp-defense ddos config set window 1 # 윈도우 (초) ```bash xdp-defense ai status # AI 모델 상태 xdp-defense ai retrain # 모델 재학습 요청 (SIGUSR1) +xdp-defense ai traffic # 시간대별 트래픽 요약 (최근 24시간) +xdp-defense ai log [N] # 최근 N개 트래픽 로그 (기본 20) ``` +- **시간대별 모델**: night(0-6시), morning(6-12시), afternoon(12-18시), evening(18-24시) 4개 IsolationForest +- **자동 재학습**: `retrain_interval`(기본 24시간) 마다 최근 `retrain_window`(기본 7일) 데이터로 백그라운드 재학습 +- **트래픽 로깅**: 5초 간격으로 17개 피처를 SQLite에 기록 (`/var/lib/xdp-defense/traffic_log.db`) +- **공격 샘플 필터링**: 재학습 시 이상치(score < -0.5) 자동 제외 + ### 데몬 ```bash @@ -190,6 +197,10 @@ ai: model_type: IsolationForest learning_duration: 86400 # 학습 기간 (초) anomaly_threshold: -0.16 + traffic_log_db: /var/lib/xdp-defense/traffic_log.db + traffic_log_retention_days: 7 + retrain_interval: 86400 # 자동 재학습 주기 (초) + retrain_window: 604800 # 학습 데이터 범위 (최근 7일) ``` ## 디렉토리 구조 @@ -244,3 +255,9 @@ systemctl stop xdp-defense # 서비스 중지 systemctl stop xdp-defense systemctl start xdp-blocker # 기존 blocker 복원 ``` + +## 로드맵 + +- [ ] **웹훅 알림**: 공격 탐지/자동 차단 시 외부 알림 발송 (Slack, Discord, 일반 webhook) + - 설정 예시: `notifications: { webhook_url: "https://...", events: [attack_detected, ip_blocked] }` + - AI 이상 탐지, EWMA 위반, 자동 차단 이벤트에 대해 HTTP POST 알림