nuthan923/REALTIME-IDS

GitHub: nuthan923/REALTIME-IDS

面向边缘设备的实时入侵检测系统,结合 Snort 规则检测与随机森林机器学习模型,对 IoT 网络流量中的攻击进行实时识别与分类。

Stars: 0 | Forks: 0

# 使用 Snort 和 ML 的实时入侵检测系统 (IDS) ## 🚀 项目概述 本项目实现了一个专为**边缘设备**(特别是 Raspberry Pi 5)设计的**实时入侵检测系统**。它将 **Snort** 基于规则的检测能力与 **Machine Learning**(随机森林)的预测能力相结合,以实时识别和分类网络攻击。 该系统监控来自模拟 IoT 设备的流量,通过 ML 推理引擎处理警报,并提供用于安全监控的实时仪表板。 ## ✨ 核心功能 - **实时流量分析**:使用 Snort 进行深度包检测。 - **ML 驱动的推理**:在 UNSW-NB15 数据集上训练的随机森林模型,用于高精度异常检测。 - **交互式仪表板**:使用 Chart.js 实时可视化网络健康状况,包括: - **实时计数器**:实时跟踪警报总数、恶意警报和正常警报。 - **攻击时间轴**:网络事件的统计趋势。 - **威胁分类**:攻击类型(DoS、Scan、Brute Force)的可视化细分。 - **顶级攻击者**:识别最活跃恶意 IP 地址的柱状图。 - **地理可视化**:模拟攻击向量的 2D Leaflet 地图和 3D Globe.gl 可视化。 - **实时警报推送**:类似控制台滚动的近期网络活动信息流。 - **IoT 模拟环境**:包含虚拟智能灯泡、摄像头和恒温器,以模拟真实的边缘环境。 - **攻击模拟器**:集成脚本以模拟 Port Scanning、DoS (SYN Flood) 和 Brute Force 攻击。 - **边缘优化**:使用 Docker 完全容器化,专为在 Raspberry Pi 5 上高效运行而设计。 ## 🏗️ 架构 1. **流量生成**:IoT 设备(灯泡、摄像头、恒温器)生成正常的网络流量。 2. **入侵检测**:Snort 监控网络接口,并基于特征规则生成警报。 3. **ML 推理引擎**:基于 Flask 的 API 接收 Snort 警报,提取特征,并使用训练好的 ML 模型对流量进行分类。 4. **监控仪表板**:基于 Web 的 UI 显示实时统计数据和详细的警报信息。 ## 📂 项目结构 ``` ├── api/ # ML Inference API (Flask) ├── attacker/ # Attack simulation scripts (nmap, hping3, hydra) ├── dashboard/ # Web dashboard (Flask + HTML/JS) ├── docker/ # Dockerfiles and Docker Compose configuration ├── iot/ # IoT device simulation scripts ├── ml/ # Machine learning models and training scripts │ ├── models/ # Pre-trained models (.pkl) │ └── training/ # Training datasets and scripts ├── snort/ # Snort configuration and rules │ ├── conf/ # Snort configuration (snort.conf) │ └── rules/ # Custom IDS rules (local.rules) └── scripts/ # Utility and data generation scripts ``` ## 🛠️ 安装与部署 ### 前置条件 - **Raspberry Pi 5**(或任何支持 Docker 的 Linux 机器)。 - 已安装 **Docker** 和 **Docker Compose**。 - 用于克隆仓库的 **Git**。 ### 第一步:克隆仓库 ``` git clone cd REALTIME-IDS ``` ### 第二步:构建并启动系统 导航到根目录,并使用 Docker Compose 构建和启动所有服务: ``` docker-compose -f docker/docker-compose.simulation.yml up --build ``` ### 第三步:访问仪表板 容器运行后,打开您的 Web 浏览器并导航至: ``` http://:8080 ``` ## 🧠 Machine Learning 模型 该系统使用在 **UNSW-NB15** 数据集上训练的 **Random Forest Classifier**(随机森林分类器)。 - **使用的特征**:`dur`、`proto`、`service`、`spkts`、`dpkts`、`sbytes`、`dbytes`、`sttl`、`dttl`。 - **性能**:对常见攻击类型具有高精确率和召回率。 - **攻击分类**: - **Normal**:常规流量。 - **DoS**:拒绝服务(高数据包量)。 - **Scan**:端口扫描和网络映射。 - **Brute Force**:反复的未经授权访问尝试。 ## 🛡️ 模拟攻击 为了测试检测能力,您可以运行攻击模拟器: 1. 进入 attacker 容器: docker exec -it attacker bash 2. 运行模拟脚本: ./attacker/attacker.sh 这将针对模拟的 IoT 设备发起各种攻击,这些攻击应该会实时显示在仪表板上。 ## 📜 许可证 本项目基于 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
标签:Apex, Docker, 入侵检测系统, 安全数据湖, 安全防御评估, 插件系统, 机器学习, 物联网安全, 请求拦截, 边缘计算, 逆向工具