Areej-zeb/Aegis-Enterprise-Threat-Detection-and-Security-Advisory
GitHub: Areej-zeb/Aegis-Enterprise-Threat-Detection-and-Security-Advisory
基于 XGBoost 机器学习的企业级实时入侵检测系统,集成可解释性分析与双仪表板的安全监控平台。
Stars: 1 | Forks: 0
# 🛡️ Aegis IDS
### 企业级威胁检测与安全顾问系统
*基于实时 ML 的入侵检测与现代 Web 仪表板*
[](https://python.org)
[](https://fastapi.tiangolo.com)
[](https://reactjs.org)
[](LICENSE)
## ✨ 功能特性
| ### 🎯 **核心能力** - **实时威胁检测**,采用 ML 分类 - **多种攻击支持**:DDoS、端口扫描、暴力破解、SQL 注入 - **XGBoost 模型**,具有 79% 的 F1-score 准确率 - **SHAP 可解释性**,实现模型透明化 - **WebSocket 流式传输**,支持亚秒级告警 | ### 🖥️ **双仪表板系统** - **React 仪表板** - 现代、响应式 UI - **Streamlit 仪表板** - ML 监控与分析 - **5 个交互视图**:概览、实时告警、分析、可解释性、威胁情报 - **自动刷新**开关,适用于 SOC 运维 |
| 🐍 Python | 3.9+(已在 3.10、3.11、3.12、3.13 上测试) |
| 🌐 Node.js | 16+(用于 React 仪表板) |
| 💻 OS | Windows、Linux、macOS、WSL |
🚀 统一后端设置
``` # 1️⃣ 导航至 unified backend cd backend/unified # 2️⃣ 安装 Node.js 依赖 npm install # 3️⃣ 配置环境 (.env) # MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/ # JWT_SECRET=your_secret_key # PORT=5000 # 4️⃣ 启动后端服务器 npm start ``` 统一后端: - 在端口 5000 上运行 Express - 从端口 8000 代理 Python 服务(IDS、Pentest) - 处理身份验证和路由 - 管理 WebSocket 连接⚛️ React 前端设置
``` # 1️⃣ 导航至 React 应用 cd frontend_react # 2️⃣ 安装 Node.js 依赖 npm install # 3️⃣ 启动开发服务器 npm run dev ```🐍 Python 后端设置(可选)
``` # 1️⃣ 创建虚拟环境 python -m venv venv # 2️⃣ 激活虚拟环境 # Windows: venv\Scripts\activate # Linux/macOS: source venv/bin/activate # 3️⃣ 安装依赖 pip install -r requirements.txt # 4️⃣ 设置环境变量 # Windows: set PYTHONPATH=%cd% set MODE=demo # Linux/macOS: export PYTHONPATH=$(pwd) export MODE=demo # 5️⃣ 启动后端服务器 (运行在端口 8000) python -m uvicorn backend.ids.serve.app:app --reload --host 0.0.0.0 --port 8000 ```常见问题与解决方案
| 问题 | 解决方案 | |-------|----------| | **端口已被占用** | `pkill -f uvicorn && pkill -f streamlit` | | **找不到模块** | `pip install -r requirements.txt --force-reinstall` | | **权限被拒绝** | `chmod +x start-aegis.sh` | | **找不到 Python** | 在 Windows 上使用 `py` 代替 `python` | | **虚拟环境问题** | 删除 `venv` 文件夹并重新创建 |Port 8000] B --> C[🧠 XGBoost ML Models] B --> D[📊 React Dashboard
Port 5173] B --> E[📈 Streamlit Dashboard
Port 8501] B --> F[🔌 WebSocket Stream] C --> G[🎯 Threat Detection] C --> H[📋 SHAP Explainability] D --> I[👤 Modern Web UI] E --> J[📊 ML Analytics] style B fill:#e1f5fe style C fill:#f3e5f5 style D fill:#e8f5e8 style E fill:#fff3e0 ``` ### 🔧 技术栈
| **🔙 后端** - FastAPI + Uvicorn - XGBoost ML 模型 - WebSocket 流式传输 - SHAP 可解释性 | **🎨 前端** - React + TypeScript - Streamlit 分析 - 实时更新 - 响应式设计 | **🤖 ML 管道** - XGBoost 分类器 - 79% F1-Score - 多攻击检测 - 特征工程 |
### 📊 模型对比
| 模型 | Macro-F1 | Precision | Recall | ROC-AUC | 状态 |
|-------|----------|-----------|--------|---------|--------|
| Logistic Regression | 0.62 | 0.63 | 0.61 | 0.70 | ⚪ 基线 |
| Random Forest | 0.75 | 0.76 | 0.74 | 0.81 | 🟡 良好 |
| **XGBoost** | **0.79** | **0.80** | **0.79** | **0.85** | 🟢 **生产** |
### 🎯 主要特征(SHAP 分析)
| **🔥 最重要的特征** 1. `pkt_rate` - 每秒数据包数 (0.42) 2. `syn_ratio` - SYN 数据包比率 (0.31) 3. `byte_rate` - 每秒字节数 (0.25) 4. `flow_duration` - 连接持续时间 (0.18) 5. `avg_pkt_size` - 平均数据包大小 (0.14) | **🎭 检测到的攻击类型** - 🔥 **SYN Flood** - TCP SYN 攻击 - 🕵️ **MITM ARP** - ARP 欺骗攻击 - 🌐 **DNS Exfiltration** - 通过 DNS 的数据渗出 - 🚪 **Port Scanning** - 网络侦察 - 💥 **DDoS** - 分布式拒绝服务 - 🔓 **Brute Force** - 密码攻击 |
| 功能 | 描述 | 状态 |
|---------|-------------|--------|
| **🚨 严重性分类** | 严重、高、中、低 | ✅ 激活 |
| **🎯 置信度评分** | 基于 ML 的威胁概率 (0-1) | ✅ 激活 |
| **🔍 攻击类型检测** | 10+ 种攻击类别 | ✅ 激活 |
| **🌐 源 IP 追踪** | 自动识别威胁行为者 | ✅ 激活 |
| **📡 协议分析** | TCP、UDP、ICMP 监控 | ✅ 激活 |
| **⚡ 实时告警** | 亚秒级检测与通知 | ✅ 激活 |
## 📊 演示模式功能
| ### 🎭 **模拟能力** - **真实的流量模式**,具有统计变化 - **多攻击场景**,跨越不同协议 - **基于时间的攻击序列**,用于测试 - **可配置的告警频率**(1-3 秒) | ### 📈 **分析与监控** - **实时性能指标**及模型准确率 - **攻击分布图**(按类型和严重性) - 威胁模式的**时间序列可视化** - 每次检测的**SHAP 可解释性** |
🔧 常见问题
### 端口已被占用 ``` # 终止现有进程 pkill -f uvicorn pkill -f streamlit pkill -f node # 或者在 Windows 上: taskkill /f /im python.exe taskkill /f /im node.exe ``` ### Python/模块问题 ``` # 重新安装依赖 source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows pip install -r requirements.txt --force-reinstall ``` ### 权限被拒绝 ``` # Linux/macOS: chmod +x start-aegis.sh chmod +x scripts/*.sh # Windows: 以管理员身份运行 ``` ### 虚拟环境问题 ``` # 删除并重建 rm -rf venv # Linux/macOS # 或 rmdir /s venv # Windows python -m venv venv ``` ### WSL/Ubuntu 设置 ``` # 在 PowerShell (Windows) 中 wsl --install -d Ubuntu wsl --list --verbose # 然后在 WSL Ubuntu 中: cd /mnt/c/path/to/aegis ./start-aegis.sh ```🛠️ 开发设置
### 后端开发 ``` # 安装开发依赖 pip install -r requirements.txt pip install pytest black flake8 # 运行测试 pytest # 格式化代码 black backend/ # 启动并热重载 uvicorn backend.ids.serve.app:app --reload --port 8000 ``` ### 前端开发 ``` # React 开发 cd frontend_react npm install npm run dev # Streamlit 开发 cd frontend_streamlit streamlit run aegis_dashboard.py --server.runOnSave true ``` ### 模型训练 ``` # 训练所有模型 ./scripts/train_ids.sh # 训练特定模型 python backend/ids/models/xgb_baseline.py ```| ### ✅ **已完成** - [x] 实时 ML 检测引擎 - [x] 双仪表板系统(React + Streamlit) - [x] WebSocket 流式传输 - [x] SHAP 可解释性 - [x] 多攻击类型支持 - [x] 具有真实数据的演示模式 | ### 🔄 **进行中** - [ ] 数据库持久化(PostgreSQL) - [ ] 用户身份验证与 RBAC - [ ] 告警关联引擎 - [ ] 自定义规则引擎 - [ ] 移动端响应式设计 - [ ] Docker 容器化 |
**🛡️ Areej Zeb** - *主要开发者*
[](https://github.com/Areej-zeb)
*欢迎贡献!请阅读我们的贡献指南。*
## 🙏 致谢
**为网络安全专业人士用 ❤️ 构建**
[](https://xgboost.readthedocs.io)
[](https://fastapi.tiangolo.com)
[](https://reactjs.org)
[](https://streamlit.io)
*特别感谢开源社区让这个项目成为可能。*
### 🌟 如果您觉得有用,请给这个仓库一个 Star!
*通过报告问题和建议功能来帮助我们改进 Aegis IDS。*
标签:AI安全, AMSI绕过, AV绕过, Chat Copilot, CISA项目, DDoS检测, FastAPI, Kubernetes, Python安全工具, React, SHAP可解释性, SQL注入检测, Streamlit, Syscalls, WebSocket, XGBoost, 企业安全, 依赖分析, 免杀技术, 入侵检测系统, 全栈安全, 告警关联, 威胁情报, 威胁检测, 安全数据湖, 安全运营中心, 实时流分析, 密钥泄露防护, 开发者工具, 插件系统, 暴力破解检测, 机器学习安全, 端口扫描检测, 网络安全, 网络映射, 网络资产管理, 访问控制, 逆向工具, 隐私保护