yashdhone01/nids-ml-engine

GitHub: yashdhone01/nids-ml-engine

一个基于随机森林的网络入侵检测引擎,无需手写规则即可将流量分类为正常、DoS、探测、R2L或U2R五类,在KDD Cup 99完整数据集上达到99.96%准确率且U2R召回率提升至80%。

Stars: 1 | Forks: 0

# 基于机器学习的网络入侵检测引擎 ![Python](https://img.shields.io/badge/Python-3.10-blue) ![Scikit-learn](https://img.shields.io/badge/Scikit--learn-1.4-orange) ![Accuracy](https://img.shields.io/badge/Accuracy-99.96%25-brightgreen) ## 它是什么? 一个模块化的机器学习引擎,可将网络流量分类为 **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报告查看器, 入侵检测系统, 分类算法, 威胁检测, 安全引擎, 安全数据湖, 容器化, 异常检测, 插件系统, 数据挖掘, 无后门, 机器学习, 流量分类, 特权提升, 网络安全, 自动化部署, 逆向工具, 随机森林, 隐私保护