Chillestmofo/Multi-Stage-Network-Intrusion-Detection-System
GitHub: Chillestmofo/Multi-Stage-Network-Intrusion-Detection-System
该系统基于机器学习的多阶段检测流水线实时捕获并分类网络流量中的多种网络攻击,通过 Web 仪表板提供实时告警与威胁可视化。
Stars: 0 | Forks: 0
# 🛡️ 多阶段入侵检测系统
## ✨ 核心功能
### 🎯 多阶段检测流水线
- **第一阶段**:高速正常流量过滤器(96% 准确率)
- **第二阶段**:专门的攻击分类器,精准度达 98% 以上
- **自适应置信度评分**:针对每种攻击类型的动态阈值
- **实时决策引擎**:每个流的推理时间低于 3ms
### 🔍 高级威胁检测
| 攻击类型 | 检测方法 | 准确率 |
|------------|------------------|----------|
| **DoS/DDoS** | 流量大小与模式分析 | 98.0% |
| **端口扫描** | 顺序端口访问检测 | 97.5% |
| **暴力破解** | 失败的身份验证模式识别 | 96.8% |
| **Web 攻击** | SQL 注入与 XSS 签名检测 | 95.2% |
### 📊 实时网络监控
- **实时数据包捕获**:基于 Scapy 并具有管理员权限的网络嗅探器
- **基于流的分析**:双向流聚合(30秒窗口)
- **特征提取**:78 个符合 CICIDS-2017 标准的特征
- **自动流过期**:内存高效的循环缓冲区管理
### 🖥️ 交互式 Web 仪表板
- **实时检测动态**:带有置信度评分的实时攻击通知
- **威胁情报页面**:持久化存储最多 1,000 个关键威胁
- **系统健康监控**:网络活动指标和安全状态
- **关键警报系统**:针对高置信度威胁(>90%)的弹窗通知
- **攻击可视化**:颜色编码的严重性级别和置信度指示器
### 🤖 AI 驱动的缓解顾问
- **自动化响应建议**:上下文感知的缓解策略
- **特定于端口的建议**:基于攻击向量的针对性安全措施
- **最佳实践指南**:符合 NIST 标准的安全建议
### 🔐 安全与认证
- **基于 Token 的 API 保护**:使用 Bearer 认证保护端点
- **受保护的操作**:威胁管理需要身份验证
- **公开监控**:对检测动态的只读访问
### 📈 模型可解释性
- **SHAP 集成**:了解攻击被分类的原因
- **特征重要性分析**:识别关键网络指标
- **置信度细分**:每个类别的概率分布
## 🏗️ 系统架构
```
graph LR
A[Network Traffic] --> B[Packet Sniffer]
B --> C[Flow Aggregator]
C --> D[Feature Extractor]
D --> E{Stage 1: Normal Filter}
E -->|Benign| F[Safe Traffic]
E -->|Suspicious| G{Stage 2: Attack Classifiers}
G --> H[DoS Model]
G --> I[DDoS Model]
G --> J[PortScan Model]
G --> K[BruteForce Model]
G --> L[WebAttack Model]
H --> M[Decision Engine]
I --> M
J --> M
K --> M
L --> M
M --> N[AI Advisor]
N --> O[Dashboard Alerts]
```
### 技术栈
**后端**
- 🐍 **FastAPI**:高性能异步 API 框架
- 🤖 **scikit-learn**:机器学习模型(Random Forest, Gradient Boosting)
- 📦 **Scapy**:底层数据包操作与捕获
- 📊 **Pandas/NumPy**:数据处理与特征工程
**前端**
- ⚛️ **React 19**:具有 hooks 和状态管理的现代 UI
- ⚡ **Vite**:极速的开发与构建工具
- 🎨 **Lucide Icons**:美观、一致的图标库
- 📱 **响应式设计**:移动优先的 CSS 架构
**机器学习**
- 📚 **数据集**:CICIDS-2017(350万个流,78个特征)
- 🎯 **算法**:集成方法(RF, GB, XGBoost)
- 🔬 **训练**:采用分层抽样的 80/20 比例划分
- ✅ **验证**:5 折交叉验证
## 🚀 快速开始
### 前置条件
```
✅ Python 3.8+
✅ Node.js 16+
✅ Npcap (Windows) / libpcap (Linux/Mac)
✅ Administrator/root privileges
```
### 安装说明
**1. 克隆代码库**
```
git clone https://github.com/Avi007-debug/IDS_DETECTION.git
cd IDS_DETECTION
```
**2. 后端设置**
```
cd backend
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
```
**3. 前端设置**
```
cd frontend
npm install
```
**4. 启动系统**
```
# Terminal 1: API Server
cd backend
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
# Terminal 2: Network Sniffer (以管理员身份运行)
cd backend
python -c "from app.realtime.sniffer import start_sniffing; start_sniffing()"
# Terminal 3: Dashboard
cd frontend
npm run dev
```
**5. 访问仪表板**
```
🌐 Frontend: http://localhost:5173
🔧 API Docs: http://127.0.0.1:8000/docs
```
## 🎬 演示与评估
### 模拟攻击
```
# DoS Attack 模拟
python backend/demo_attack.py 127.0.0.1 dos
# Port Scan 模拟
python backend/demo_attack.py 127.0.0.1 portscan
# DDoS Attack 模拟
python backend/demo_attack.py 127.0.0.1 ddos
# Web Attack 模拟
python backend/demo_attack.py 127.0.0.1 webattack
# High-Intensity Attack
python backend/high_intensity_attack.py
```
### 演示资源
- 🎥 **[DEMO_GUIDE.md](backend/DEMO_GUIDE.md)** - 完整的演示 walkthrough
- 📝 **[DEMO_SCRIPT.md](DEMO_SCRIPT.md)** - 逐步的演示场景
- ❓ **[EVALUATION_QA.md](EVALUATION_QA.md)** - 评估者常见问题
## 📊 性能指标
### 系统整体性能
| 指标 | 数值 |
|--------|-------|
| 🎯 **整体准确率** | 96.2% |
| ⚡ **推理速度** | 2.5 ms/flow |
| 🔄 **吞吐量** | 400 flows/sec |
| 💾 **内存使用** | <500 MB |
| 🎪 **F1-Score (加权)** | 0.95 |
### 特定阶段性能
- **第一阶段(正常流量过滤器)**:96.0% 准确率,3.2% FPR
- **第二阶段 (DoS)**:98.0% 精准率,97.2% 召回率
- **第二阶段 (PortScan)**:97.5% 精准率,96.8% 召回率
- **第二阶段 (BruteForce)**:96.8% 精准率,95.9% 召回率
## 📁 项目结构
```
IDS_DETECTION/
│
├── 📂 backend/
│ ├── 📂 app/
│ │ ├── main.py # FastAPI application
│ │ ├── decision.py # Multi-stage detection engine
│ │ ├── ai_advisor.py # Mitigation recommendations
│ │ ├── models_loader.py # ML model initialization
│ │ ├── feature_mapper.py # Feature engineering
│ │ ├── auth.py # API authentication
│ │ ├── config.py # System configuration
│ │ │
│ │ ├── 📂 api/
│ │ │ ├── predict.py # Prediction endpoints
│ │ │ └── realtime.py # Real-time detection API
│ │ │
│ │ ├── 📂 realtime/
│ │ │ ├── sniffer.py # Packet capture engine
│ │ │ ├── flow_table.py # Flow aggregation
│ │ │ └── extractor.py # Feature extraction
│ │ │
│ │ └── 📂 artifacts/
│ │ └── model_metadata.json
│ │
│ ├── 📂 models/
│ │ ├── normal_filter.pkl # Stage 1 model
│ │ ├── dos_classifier.pkl
│ │ ├── ddos_classifier.pkl
│ │ ├── portscan_classifier.pkl
│ │ ├── bruteforce_classifier.pkl
│ │ └── webattack_classifier.pkl
│ │
│ ├── attack_*.py # Attack simulation scripts
│ ├── demo_attack.py # Unified demo interface
│ └── requirements.txt
│
├── 📂 frontend/
│ ├── 📂 src/
│ │ ├── App.jsx # Main dashboard
│ │ ├── Threats.jsx # Threat intelligence page
│ │ ├── App.css # Styling
│ │ └── main.jsx
│ │
│ ├── package.json
│ └── vite.config.js
│
├── 📂 docs/
│ ├── SETUP.md # Installation guide
│ ├── AUTH_SETUP.md # Authentication configuration
│ ├── DEMO_SCRIPT.md # Demo scenarios
│ ├── DEMO_GUIDE.md # Presentation guide
│ ├── EVALUATION_QA.md # Q&A for evaluators
│ ├── METRICS.md # Performance analysis
│ └── EXPLAINABILITY.md # SHAP analysis guide
│
├── IDS_final.ipynb # Model training notebook
└── README.md
```
## 🔧 API 端点
### 公开端点
```
GET / # Health check
GET /detections # Get recent detections (last 500)
GET /threats # Get threat history (last 1000 attacks)
GET /model-info # Model metadata and performance
```
### 受保护的端点(需要身份验证)
```
POST /report # Submit new detection
DELETE /threats # Clear threat storage
```
### 实时检测
```
POST /predict # Single flow prediction
POST /batch-predict # Batch flow prediction
```
## 🧪 模型训练与可解释性
### 训练过程
1. **数据预处理**:处理缺失值,标准化特征
2. **特征选择**:78 个 CICIDS-2017 流特征
3. **模型训练**:Random Forest 与 Gradient Boosting 集成
4. **超参数调优**:使用交叉验证进行网格搜索
5. **评估**:混淆矩阵、ROC-AUC、精准率-召回率
### SHAP 分析
```
# 解释模型预测
import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values, X_test)
```
## 🎯 应用场景
- **🏢 企业网络**:针对企业基础设施的实时威胁监控
- **🎓 教育**:教授网络安全与机器学习概念
- **🔬 研究**:网络入侵检测算法开发
- **🏠 家庭实验室**:个人网络安全监控
- **☁️ 云安全**:与基于云的 SIEM 系统集成
## 🛣️ 路线图
- [ ] **深度学习模型**:用于序列模式检测的 CNN/LSTM
- [ ] **自动化阻断**:与防火墙规则集成
- [ ] **异常检测**:用于零日攻击的无监督学习
- [ ] **移动应用**:React Native 仪表板
- [ ] **分布式部署**:多传感器架构
- [ ] **威胁情报源集成**:外部威胁情报 API
- [ ] **自定义警报规则**:用户自定义的检测逻辑
## 📚 文档索引
| 文档 | 描述 |
|----------|-------------|
| [SETUP.md](SETUP.md) | 完整的安装与配置指南 |
| [AUTH_SETUP.md](AUTH_SETUP.md) | API 身份验证设置 |
| [DEMO_SCRIPT.md](DEMO_SCRIPT.md) | 逐步的演示场景 |
| [DEMO_GUIDE.md](backend/DEMO_GUIDE.md) | 演示 walkthrough |
| [EVALUATION_QA.md](EVALUATION_QA.md) | 评估者常见问题 |
| [METRICS.md](METRICS.md) | 性能指标与基准测试 |
| [EXPLAINABILITY.md](EXPLAINABILITY.md) | SHAP 模型解读 |
## 👥 作者
基于机器学习的实时网络安全与智能威胁检测
一个生产就绪的入侵检测系统,结合了机器学习、实时数据包分析和智能威胁分类,以保护网络免受网络攻击。
![]() Avi007-debug |
![]() egvsanthoshkumarcy24-glitch |
### ⭐ 如果您觉得有帮助,请给本代码库点个 Star!
**由 IDS 检测团队用 ❤️ 制作**
标签:Apex, AppImage, CISA项目, Python, React, Syscalls, Web应用防火墙, 入侵检测系统, 安全数据湖, 插件系统, 无后门, 机器学习, 流量监控, 红队行动, 网络安全, 逆向工具, 配置错误, 隐私保护

