Huzaifa-170504/DeepAnomalyDetectionSystem

GitHub: Huzaifa-170504/DeepAnomalyDetectionSystem

将 Snort3 规则引擎与 LSTM/CNN 深度学习模型集成的混合入侵检测系统,用于实时网络流量异常检测与攻击分类。

Stars: 0 | Forks: 0

## 使用 LSTM 和 CNN 深度学习模型增强 Snort3 入侵检测系统 ![项目状态](https://img.shields.io/badge/status-completed-success) ![Python](https://img.shields.io/badge/Python-3.x-blue) ![C++](https://img.shields.io/badge/C++-17-blue) ![深度学习](https://img.shields.io/badge/Deep%20Learning-TensorFlow-orange) ![Snort](https://img.shields.io/badge/IDS-Snort3-red) ## 概述 该系统集成了两个专门的神经网络模型: - **LSTM (长短期记忆网络)** 检测网络流行为中的时间模式和异常。 - **CNN (卷积神经网络)** 通过识别可疑的字节级模式来执行基于 payload 的分析。 - **自定义 Snort3 机器学习预处理器插件** 启用 Snort3 与深度学习推理引擎之间的实时通信。 # 核心功能 ✅ 实时网络流量监控
✅ 基于深度学习的异常检测
✅ 基于 LSTM 的序列流量分析
✅ 基于 CNN 的 payload 检查
✅ 自定义 Snort3 机器学习预处理器插件
✅ 自动化攻击分类
✅ 结合基于规则和基于 AI 检测的混合 IDS 架构
✅ 可扩展的深度学习推理流水线 # 系统架构 ``` Network Traffic | | Snort3 IDS | | ML Preprocessor Plugin | ----------------------------- | | LSTM CNN Flow Feature Analysis Payload Analysis | | ----------------------------- | | Attack / Normal Classification ``` # 使用的技术 ## 编程语言 - C++ - Python ## 深度学习框架 - TensorFlow - Keras ## 机器学习库 - Scikit-learn - NumPy - Pandas ## 入侵检测框架 - Snort3 ## 开发环境 - Linux / WSL - CMake - GCC - VS Code # 项目结构 ``` DeepAnomalyDetectionSystem/ │ ├── snort3/ │ ├── src/ │ │ └── ml_preprocessor/ │ │ ├── C++ Plugin Files │ │ └── Plugin Configuration │ ├── models/ │ ├── lstm.h5 │ ├── cnn.keras │ ├── dataset/ │ ├── python/ │ ├── training/ │ ├── preprocessing/ │ └── inference.py │ ├── requirements.txt │ └── README.md ``` # 机器学习模型 ## 1. LSTM 网络 (网络流异常检测) LSTM 模型分析序列网络流行为并识别异常流量模式。 ### 目的 - 时间网络行为分析 - 基于流的异常检测 - 序列模式识别 ### 输入特征 该模型使用提取的网络流统计数据: ``` - packet_count - byte_count - duration - inter_arrival_time - tcp_syn_count - icmp_count - encrypted_protocol_count ``` ### 输出 分类: ``` 0 → Normal Traffic 1 → Attack Traffic ``` ## 2. CNN 网络 (Payload 异常检测) CNN 模型通过将原始 payload 字节转换为矩阵表示来分析数据包 payload 数据。 ### 目的 - Payload 检查 - 字节级模式识别 - 检测恶意 payload 结构 ### 输入 ``` Packet Payload → Byte Matrix → CNN Model ``` ### 输出 ``` Normal / Attack Classification ``` # 数据集 由于 GitHub 存储限制,用于训练和评估的数据集不包含在此存储库中。 数据集下载: ``` (Add dataset link here) ``` 下载后,将数据集放在: ``` dataset/ ``` # 安装说明 ## 1. 克隆存储库 ``` git clone https://github.com/Huzaifa-170504/DeepAnomalyDetectionSystem.git cd DeepAnomalyDetectionSystem ``` ## 2. 安装 Python 依赖项 ``` pip install -r requirements.txt ``` ## 3. 构建 Snort3 ML 插件 导航到 Snort 构建目录: ``` cd snort3/build ``` 编译: ``` cmake .. make -j4 ``` # 运行深度异常检测系统 使用 ML 预处理器插件启动 Snort3: ``` ./build/src/snort \ -c lua/snort.lua \ --plugin-path build/src/ml_preprocessor ``` Snort3 将处理网络流量,并将提取的特征转发给深度学习模型以进行异常分类。 # 模型推理流水线 ``` Network Packet | | Snort3 | | Feature Extraction | | ML Preprocessor Plugin | | ------------------------- | | LSTM Model CNN Model | | ------------------------- | | Prediction Result | | Normal / Attack ``` # 未来改进 - 实时模型重训功能 - 额外的深度学习架构 (Transformers, Autoencoders) - 基于云的监控仪表板 - 自动化威胁情报集成 - 分布式 IDS 部署 # 作者 **Huzaifa Waqar** **Tasmia Riaz** **Malaika Kashaf** # 指导老师 **Miss Naila Anwar** # 项目信息 **毕业设计项目 (FYP)** 信息技术理学学士 (BSIT) 古吉拉特大学 # 许可证 本项目为学术和研究目的而开发。
标签:Bash脚本, 逆向工具