Abhi1366-create/Intrusion-detection-ml
GitHub: Abhi1366-create/Intrusion-detection-ml
基于 NSL-KDD 数据集的机器学习入侵检测系统,支持攻击检测与分类并提供可视化仪表板。
Stars: 1 | Forks: 0
# AI 入侵检测系统
一个使用 nsl-kdd 数据集检测和分类网络攻击的机器学习系统
## 预览
显示日志、攻击分布和模拟结果的仪表板
## 概述
本项目使用两阶段方法构建了一个简单的入侵检测系统
- 阶段 1 检测流量是正常还是攻击
- 阶段 2 将攻击分类为 dos、probe、r2l、u2r
它还包括一个用于可视化结果和模拟攻击的仪表板
## 功能
- 二元和多类分类
- 使用 Streamlit 的仪表板
- 攻击模拟
- 日志和图表
- 独立的测试脚本
## 项目结构
ml-workspace/
- train.py
- ui.py
- test.py
data/
- kddtrain+.txt
- kddtest+.txt
models/
- binary_model.pkl
- multi_model.pkl
- preprocessor.pkl
- label_encoder.pkl
readme.md
requirements.txt
.gitignore
## 设置
打开你的项目文件夹
cd ml-workspace
创建所需的文件夹
mkdir data
mkdir models
安装依赖
pip install pandas numpy scikit-learn xgboost streamlit joblib
## 数据集
从以下地址下载 nsl-kdd 数据集
https://web.archive.org/web/20150205070216/http://nsl.cs.unb.ca/nsl-kdd/
你只需要这些文件
- kddtrain+.txt
- kddtest+.txt
按如下方式放置它们
ml-workspace/data/
- kddtrain+.txt
- kddtest+.txt
## 运行项目
训练模型
python train.py
运行仪表板
streamlit run ui.py
运行测试脚本(可选)
python test.py
## 使用说明
手动模式
- 在侧边栏中输入值
- 点击运行检测
- 检查日志
模拟模式
- 选择攻击类型
normal / dos / probe / r2l / u2r
- 点击运行模拟
- 查看日志和图表
## 输出
- 预测结果(正常或攻击)
- 攻击类型
- 置信度分数
- 风险等级
- 日志
- 图表
## 重要提示
- 不包含数据集
- 在运行 ui.py 之前运行 train.py
- 数据集必须放在 data 文件夹内
## 常见错误
找不到数据集
将 kddtrain+.txt 和 kddtest+.txt 放入 data 文件夹中
找不到模型
运行 python train.py
## 作者
Abhishek
![]() |
![]() |
![]() |
![]() |
标签:AMSI绕过, Apex, CISA项目, DoS检测, Kubernetes, NSL-KDD, Python, Scikit-learn, Streamlit, XGBoost, 二元分类, 仪表盘, 入侵检测系统, 多分类, 威胁检测, 安全数据湖, 密码管理, 异常检测, 探测攻击, 攻击分类, 数据科学, 无后门, 机器学习, 网络安全, 网络流量分析, 访问控制, 资源验证, 逆向工具, 隐私保护



