Likhith5925/CodeAlpha_NetworkIDS
GitHub: Likhith5925/CodeAlpha_NetworkIDS
基于双阶段机器学习架构的企业级网络入侵检测系统,通过实时流量嗅探与 ML 模型推理识别并分类各类网络攻击。
Stars: 0 | Forks: 0
🛡️ 基于 AI 的网络入侵检测系统 (NIDS)
这是一款企业级、基于机器学习的入侵检测系统,专为持续、实时的网络流量异常检测而设计。该系统专为 Kali Linux/Debian 环境构建,采用双阶段 ML 架构来识别零日漏洞、DDoS 攻击、端口扫描和渗透尝试。
🌟 核心功能
持续后台监控:作为 systemd 后台守护进程静默运行,从开机到关机全程捕获并分析流量,无需打开活动的终端窗口。
双阶段 ML 架构: * 阶段 1 (The Sentinel):具有高召回率的二元分类器 (Random Forest),可瞬间区分正常和恶意流量。
阶段 2 (The Categorizer):具有高精度的多分类器 (XGBoost/RF),用于对具体的攻击向量进行分类。
线速特征提取:利用 Scapy 拦截实时数据包,并实时提取 78 个统计网络流特征。
可操作情报 (XAI):自动将检测到的统计异常映射到现实世界的缓解策略中(例如,防火墙配置)。
交互式威胁仪表板:一个安全且采用深色主题的 Streamlit Web 控制台,提供实时流量可视化、攻击时间线和威胁分布分析。
🏗️ 系统架构
本项目采用客户端-服务器模型设计,以实现企业级的可扩展性:
守护进程 (continuous_sniffer.py):在后台无限运行,嗅探数据包,通过 .pkl ML 模型对其进行处理,并将安全事件写入本地 SQLite 数据库。
仪表板 (IDS.py):轻量级、只读的 Streamlit Web 界面,通过查询数据库来显示分析和实时警报。
📂 项目结构
AI-NIDS/
├── models/ # 预训练的 ML 工件 (Joblib)
│ ├── best_binary_model.pkl
│ ├── best_multiclass_model.pkl
│ ├── scaler.pkl
│ ├── le_multi.pkl
│ └── features.pkl
├── continuous_sniffer.py # 后台守护进程脚本
├── sniffer.py # Scapy 实时捕获实用工具模块
├── IDS.py # Streamlit 交互式仪表板
├── requirements.txt # Python 依赖项
└── README.md # 项目文档
🚀 安装与配置指南
1. 前置条件
本系统针对 Kali Linux 或基于 Debian 的发行版进行了优化。请确保您已安装 Python 3。
# 安装所需的 Python 库
pip install -r requirements.txt
2. 配置后台守护进程 (Systemd)
为了确保 NIDS 从计算机开机的那一刻起就自动运行:
创建一个服务文件:
sudo nano /etc/systemd/system/ai-ids.service
粘贴以下配置(请确保将 WorkingDirectory 更新为您的实际路径):
[Unit]
Description=AI Intrusion Detection Background Daemon
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/path/to/your/AI-NIDS
ExecStart=/usr/bin/python3 continuous_sniffer.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable ai-ids.service
sudo systemctl start ai-ids.service
3. 启动控制面板
在守护进程于后台积极监控网络的同时,您可以启动安全的 UI 来查看实时威胁:
streamlit run IDS.py
在浏览器中访问 http://localhost:8501。
注册一个新的管理员账户并登录。
查看实时的攻击指标、可视化图表和可操作的缓解步骤。
📊 数据集与模型训练
为该系统提供动力的模型是在综合性的 CICIDS 2017 数据集上训练的。在训练期间使用了合成少数类过采样技术 (SMOTE),以确保对诸如渗透和 Heartbleed 等罕见攻击类别具有高敏感度,并保持 98.4% 的整体基准准确率。
由 Nara Likhith 开发
标签:Kubernetes, 逆向工具