yashdhone01/nids-ml-engine
GitHub: yashdhone01/nids-ml-engine
一个基于随机森林的网络入侵检测引擎,无需手写规则即可将流量分类为正常、DoS、探测、R2L或U2R五类,在KDD Cup 99完整数据集上达到99.96%准确率且U2R召回率提升至80%。
Stars: 1 | Forks: 0
# 基于机器学习的网络入侵检测引擎



## 它是什么?
一个模块化的机器学习引擎,可将网络流量分类为 **Normal(正常)、DoS(拒绝服务)、Probe(探测)、R2L** 或 **U2R**。与 Snort 等基于规则的工具不同,它从数据中学习攻击模式——无需手写规则,无需手动更新。
设计上仅作为引擎使用。可插入任何 pipeline,在任何数据集上重新训练。
## 用法
```
git clone https://github.com/yashdhone01/ML-Based-NIDS.git
cd ML-Based-NIDS
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Mac/Linux
pip install -r requirements.txt
python -m src.train # downloads KDD99 + trains model
python example.py # run predictions
```
```
from src.predict import NIDSEngine
engine = NIDSEngine()
result = engine.predict({'src_bytes': 491, 'dst_bytes': 0, 'count': 2})
# {'prediction': 'DoS', 'confidence': 0.98, 'status': '警报'}
results = engine.predict_batch([record1, record2, ...])
```
## 结果
| 模型 | 准确率 |
|---|---|
| Logistic Regression | 98.60% |
| Decision Tree | 99.95% |
| **Random Forest** | **99.96%** |
在完整的 KDD Cup 99 数据集(494K 条记录)上训练——而非通用的 10% 子集。这对 **U2R**(权限提升)最为关键,因为其类别极度不平衡(52 个样本对比 391K 个 DoS 样本)。大多数方法在 U2R 上的召回率仅为 40–60%。本引擎达到了 **80%**。
```
precision recall f1-score support
DoS 1.00 1.00 1.00 78292
Normal 1.00 1.00 1.00 19456
Probe 0.97 0.98 0.97 822
R2L 0.98 0.97 0.98 225
U2R 1.00 0.80 0.89 10
```
## 项目结构
```
├── src/
│ ├── preprocess.py # data pipeline
│ ├── train.py # train & save model
│ └── predict.py # NIDSEngine class
├── models/ # gitignored .pkl files
├── example.py
└── requirements.txt
```
## 为什么不使用基于规则的系统?
基于规则的系统需要为每种新攻击制定新规则。稍微修改已知技术的攻击者往往能逃过检测。本引擎从模式中进行泛化——经过修改的攻击看起来仍然像攻击。
## 反馈
正在进行对抗鲁棒性研究、实时数据包集成,或者想在 CICIDS2017 或 NSL-KDD 上进行测试?欢迎提交 [Issue](https://github.com/yashdhone01/ML-Based-NIDS/issues/new/choose) 或通过 [Twitter](https://x.com/Yash354642) · [作品集](https://yashdhone.vercel.app) 联系我。
标签:AMSI绕过, Apex, BSD, CISA项目, DoS攻击, KDD Cup 99, NIDS, Python, R2L攻击, Scikit-learn, U2R检测, Web报告查看器, 入侵检测系统, 分类算法, 威胁检测, 安全引擎, 安全数据湖, 容器化, 异常检测, 插件系统, 数据挖掘, 无后门, 机器学习, 流量分类, 特权提升, 网络安全, 自动化部署, 逆向工具, 随机森林, 隐私保护