duranruizsantiago-lang/ai-threat-detection
GitHub: duranruizsantiago-lang/ai-threat-detection
基于 ML 三模型集成与规则引擎的实时 Web 威胁检测系统,以 sidecar 模式分析 nginx 日志并提供动态评分与告警。
Stars: 0 | Forks: 0
```
█████╗ ███╗ ██╗ ██████╗ ███████╗██╗ ██╗ ██╗███████╗
██╔══██╗████╗ ██║██╔════╝ ██╔════╝██║ ██║ ██║██╔════╝
███████║██╔██╗ ██║██║ ███╗█████╗ ██║ ██║ ██║███████╗
██╔══██║██║╚██╗██║██║ ██║██╔══╝ ██║ ██║ ██║╚════██║
██║ ██║██║ ╚████║╚██████╔╝███████╗███████╗╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝╚══════╝ ╚═════╝ ╚══════╝
██╗ ██╗██╗ ██████╗ ██╗██╗
██║ ██║██║██╔════╝ ██║██║
██║ ██║██║██║ ███╗██║██║
╚██╗ ██╔╝██║██║ ██║██║██║
╚████╔╝ ██║╚██████╔╝██║███████╗
╚═══╝ ╚═╝ ╚═════╝ ╚═╝╚══════╝
```
[](https://www.python.org)
[](https://react.dev)
[](https://www.typescriptlang.org)
[](https://www.gnu.org/licenses/agpl-3.0)
[](https://www.docker.com)
[](https://pytorch.org)
*学习资源:[学习模块](#learn)。*
## 功能简介
- 3模型 ML ensemble (Autoencoder + Random Forest + Isolation Forest) 导出为 ONNX,实现极速 CPU 推理
- 4阶段异步 pipeline:解析原始日志,提取 35 维特征向量,结合规则与 ML 进行评分,分发告警
- 规则引擎采用受 ModSecurity CRS 启发的模式 (SQLi、XSS、路径遍历、命令注入、Log4Shell、SSRF)
- 实时 WebSocket 告警推送,提供动态严重性评分与威胁分类
- 首次部署时使用合成数据自动训练,可通过 dashboard 根据实际存储的事件重新训练
- 以 Docker sidecar 方式部署,可与任何基于 nginx 的基础设施无缝集成,无需修改任何代码
## 快速开始
```
git clone https://github.com/duranruizsantiago-lang/ai-threat-detection.git
cd ai-threat-detection
cp .env.example .env
docker compose -f dev.compose.yml up -d
```
首次启动大约需要 2 分钟进行模型训练。此后,模型将持久化存储到 volume 中,后续启动瞬间即可完成。
状态正常后,访问 `http://localhost:46969` 即可进入 dashboard。
## 模拟攻击
内置的 dev-log 应用程序可生成逼真的 nginx 流量以供测试:
```
docker compose -f dev-log/compose.yml up -d
python dev-log/simulate.py mixed -n 100
```
攻击模式:`normal`、`sqli`、`xss`、`traversal`、`cmdi`、`log4shell`、`ssrf`、`scanner`、`flood`、`mixed`
## 技术栈
**后端:** FastAPI (异步)、PostgreSQL 18、Redis 7.4、ONNX Runtime、PyTorch、scikit-learn、MLflow
**前端:** React 19、TypeScript、Vite、Sass、TanStack Query、Zustand
**基础设施:** Docker Compose、多阶段构建、自动训练 entrypoint、共享 volume 日志追踪
## 架构
```
┌─────────────────────────────────────────────────────────────┐
│ nginx logs │
│ (shared volume) │
└──────────────────────────┬──────────────────────────────────┘
│
PollingObserver
│
┌───────▼───────┐
│ Raw Queue │
└───────┬───────┘
│
┌────────────▼────────────┐
│ Stage 1: Parse │
│ nginx combined format │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ Stage 2: Features │
│ 35-dim vector + GeoIP │
│ + windowed aggregates │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ Stage 3: Detection │
│ Rules + ML Ensemble │
│ AE(40%) RF(40%) IF(20%)│
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ Stage 4: Dispatch │
│ PostgreSQL + Redis │
│ pub/sub → WebSocket │
└─────────────────────────┘
```
威胁评分范围从 0.0 到 1.0:
- **HIGH** (0.7+):存储记录,通过 WebSocket 告警,建议拦截
- **MEDIUM** (0.5-0.7):存储记录,持续监控
- **LOW** (<0.5):记录日志用于模式分析
## ML Pipeline
模型在首次启动容器时使用合成攻击模式 (SQLi、XSS、路径遍历、scanner 等) 自动训练,并导出为 ONNX 格式。验证门槛要求在部署前 F1 >= 0.80 且 PR-AUC >= 0.85。
重新训练的 endpoint (`POST /models/retrain`) 会从数据库中拉取真实事件:
- **已审核事件** 使用人工验证的标签作为真实标注 (ground truth)
- **未审核事件** 使用基于评分的启发式规则 (高分 = 可能是攻击,低分 = 可能是正常)
- 如果真实数据不足,则使用合成样本填补空缺
## API
| Endpoint | 描述 |
|----------|-------------|
| `GET /health` | 健康检查 |
| `GET /stats` | 威胁统计与严重性细分 |
| `GET /threats` | 分页显示威胁事件及过滤器 |
| `GET /models/status` | 当前激活模型、检测模式和指标 |
| `POST /models/retrain` | 根据存储的事件触发重新训练 |
| `POST /ingest/batch` | 手动注入日志行 |
| `WS /ws/alerts` | 实时威胁告警流 |
所有 endpoint (健康检查和 WebSocket 除外) 均需要 `X-API-Key` header。
## 状态
本项目功能完备,正在积极打磨中。核心系统 (pipeline、ML ensemble、dashboard、实时告警、自动训练、攻击模拟) 已全部完成并实现端到端运行。
学习模块即将推出,内容将涵盖:
- 异常检测与基于 ML 的 WAF 背后的安全理论
- 针对异步 pipeline 与 ensemble 评分的架构深度解析
- 逐行代码实现演示
- 扩展挑战 (GeoIP 拦截、自定义规则编写、主动学习)
## 关于本项目
本项目是我的网络安全作品集的一部分。旨在展示:
- **安全领域的机器学习:** 3模型 ensemble (Autoencoder、Random Forest、Isolation Forest),ONNX 导出,MLflow 跟踪
- **Python 后端工程:** FastAPI 异步服务,实时 WebSocket 告警,PostgreSQL + Redis
- **检测工程:** 受 ModSecurity CRS 启发的规则引擎,35维特征提取,多阶段 pipeline
- **MLOps:** 自动训练 pipeline,验证门槛 (F1 >= 0.80,PR-AUC >= 0.85),模型持久化
- **全栈整合:** 具备实时威胁监控和攻击模拟工具的 React 19 dashboard
## 许可证
AGPL 3.0 — 详见 [LICENSE](LICENSE)
标签:AI安全, AMSI绕过, Apex, Chat Copilot, ModSecurity, ONNX, WAF, 凭据扫描, 威胁检测, 搜索引擎查询, 机器学习, 测试用例, 请求拦截, 逆向工具, 集成学习