duranruizsantiago-lang/ai-threat-detection

GitHub: duranruizsantiago-lang/ai-threat-detection

基于 ML 三模型集成与规则引擎的实时 Web 威胁检测系统,以 sidecar 模式分析 nginx 日志并提供动态评分与告警。

Stars: 0 | Forks: 0

``` █████╗ ███╗ ██╗ ██████╗ ███████╗██╗ ██╗ ██╗███████╗ ██╔══██╗████╗ ██║██╔════╝ ██╔════╝██║ ██║ ██║██╔════╝ ███████║██╔██╗ ██║██║ ███╗█████╗ ██║ ██║ ██║███████╗ ██╔══██║██║╚██╗██║██║ ██║██╔══╝ ██║ ██║ ██║╚════██║ ██║ ██║██║ ╚████║╚██████╔╝███████╗███████╗╚██████╔╝███████║ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝╚══════╝ ╚═════╝ ╚══════╝ ██╗ ██╗██╗ ██████╗ ██╗██╗ ██║ ██║██║██╔════╝ ██║██║ ██║ ██║██║██║ ███╗██║██║ ╚██╗ ██╔╝██║██║ ██║██║██║ ╚████╔╝ ██║╚██████╔╝██║███████╗ ╚═══╝ ╚═╝ ╚═════╝ ╚═╝╚══════╝ ``` [![Python](https://img.shields.io/badge/Python-3.14+-3776AB?style=flat&logo=python&logoColor=white)](https://www.python.org) [![React](https://img.shields.io/badge/React-19-61DAFB?style=flat&logo=react&logoColor=black)](https://react.dev) [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org) [![License: AGPLv3](https://img.shields.io/badge/License-AGPL_v3-purple.svg)](https://www.gnu.org/licenses/agpl-3.0) [![Docker](https://img.shields.io/badge/Docker-ready-2496ED?style=flat&logo=docker)](https://www.docker.com) [![PyTorch](https://img.shields.io/badge/PyTorch-EE4C2C?style=flat&logo=pytorch&logoColor=white)](https://pytorch.org)

Watch on YouTube

Video Demo

*学习资源:[学习模块](#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, 凭据扫描, 威胁检测, 搜索引擎查询, 机器学习, 测试用例, 请求拦截, 逆向工具, 集成学习