fahad03-mfa/Intrusions

GitHub: fahad03-mfa/Intrusions

基于深度学习的物联网与5G网络入侵检测系统

Stars: 0 | Forks: 0

# 🛡️ 物联网与5G入侵检测系统 — 深度学习 + 集成CNN [![Python](https://img.shields.io/badge/Python-3.8+-blue?style=flat-square&logo=python)](https://python.org) [![TensorFlow](https://img.shields.io/badge/TensorFlow-2.x-orange?style=flat-square&logo=tensorflow)](https://tensorflow.org) [![Flask](https://img.shields.io/badge/Flask-Web%20App-green?style=flat-square&logo=flask)](https://flask.palletsprojects.com) [![License](https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](LICENSE) [![Status](https://img.shields.io/badge/Status-Active-brightgreen?style=flat-square)]() ## 🔍 本项目功能 为物联网和5G网络提供一款**生产就绪的入侵检测系统(IDS**),该系统将原始网络流量(CSV)转换为视觉图像表示,并使用双CNN集成架构将其分类为**良性或攻击**。 关键创新点:该系统不是将网络特征视为表格数据,而是将它们**转换为RGB和灰度图像**,并利用卷积神经网络——将计算机视觉技术应用于网络安全领域。 ## 🚀 关键亮点 | 特性 | 详细信息 | |---|---| | **方法** | 特征到图像转换 + CNN分类 | | **数据集** | CICIDS 2017, CICIDS 2018, UNSW-NB15 | | **模型** | 双CNN(RGB + 灰度)带加权集成 | | **类别不平衡** | SMOTE过采样 + 随机欠采样 | | **部署** | Flask Web应用 — 上传CSV,立即获得预测 | | **领域** | 物联网安全 · 5G网络 · 网络取证 | ## 🧠 架构与方法 ``` Raw Network Traffic (CSV) │ ▼ ┌──────────────────────┐ │ Data Preprocessing │ MinMaxScaler + Label Encoding + Binary Classification └──────────┬───────────┘ │ ┌──────┴──────┐ ▼ ▼ ┌────────┐ ┌──────────┐ │ RGB │ │Grayscale │ Feature → Image Conversion (64×64 px) │ Image │ │ Image │ Cubic Interpolation for Grayscale └───┬────┘ └────┬─────┘ │ │ ▼ ▼ ┌────────┐ ┌──────────┐ │CNN RGB │ │CNN Gray │ Separate trained models per modality └───┬────┘ └────┬─────┘ │ │ └──────┬───────┘ ▼ ┌──────────────────┐ │ Weighted Ensemble │ RGB weight: 0.98 | Gray weight: 0.94 └────────┬─────────┘ ▼ BENIGN / ATTACK ``` ### 为什么是特征到图像? 传统的机器学习方法将网络流视为平面向量。这种方法**在空间上编码特征之间的关系结构**,使CNN能够同时学习多个特征的模式——这是一种在网络安全研究中越来越受欢迎的技术。 ## 📂 仓库结构 ``` Intrusions/ ├── app/ │ ├── preprocessing.py # Feature scaling and cleaning │ ├── image_converter.py # RGB and grayscale image generation │ └── main.py # Flask routes and model inference ├── models/ │ ├── model_rgb.h5 # Trained CNN for RGB images │ └── model_gray.h5 # Trained CNN for Grayscale images ├── templates/ │ └── index.html # Web UI for CSV upload + prediction ├── static/images/ # Generated visualization outputs ├── output/ # Prediction results ├── main.py # Flask application entry point ├── model_train.ipynb # Full training pipeline notebook ├── scaler.joblib # Saved MinMaxScaler ├── instance1.csv # Sample test instance (CICIDS) ├── instance2.csv # Sample test instance (UNSW-NB15) └── requirements.txt ``` ## ⚙️ 设置与运行 ``` # 克隆仓库 git clone https://github.com/fahad03-mfa/Intrusions.git cd Intrusions # 安装依赖 pip install -r requirements.txt # 启动 Flask 应用程序 python main.py ``` 访问 `http://127.0.0.1:5000` — 上传网络流量CSV并立即获得预测。 ### 输入格式 上传包含网络流特征的`.csv`文件(与CICIDS或UNSW-NB15特征集兼容)。包含示例文件`instance1.csv`和`instance2.csv`。 ## 🔬 技术深入 ### 1. 特征到图像转换 **RGB模式**:每个归一化特征值使用以下方式映射到24位RGB颜色: ``` rgb_value = int(value * 16777215) # 2^24 - 1 colors r = (rgb_value >> 16) & 0xFF g = (rgb_value >> 8) & 0xFF b = rgb_value & 0xFF ``` 特征分布在64×64像素画布上。 **灰度模式**:特征按2D网格排列,然后使用**三次样条插值**(`RegularGridInterpolator`)上采样到64×64,保留特征之间的空间关系。 ### 2. 类别不平衡处理 - **SMOTE**(合成少数过采样技术)生成真实的合成少数类样本 - **随机欠采样**裁剪主导类 - 结果:平衡的训练分布,无偏召回 ### 3. 加权集成策略 ``` # RGB 模型由于颜色编码更丰富而略有更高的权重 combined = (rgb_pred * 0.5098) + (gray_pred * 0.4902) final_class = 1 if combined > 0.54 else 0 # ATTACK or BENIGN ``` ## 📊 结果 | 指标 | RGB模型 | 灰度模型 | 集成 | |---|---|---|---| | 准确率 | 99.19% | 94.78% | 99.10% | | 精确率 | 98.9% | 94.50% | 98.90% | | 召回率 | 99.10% | 94.60% | 99% | | F1分数 | 99% | 94.55% | 98.99% | ## 🌐 Web应用 Flask应用提供了一个干净的界面: 1. **上传**网络流特征的CSV 2. **可视化**生成的RGB和灰度图像 3. **获得预测** — 良性或攻击 — 从集成中 端点: - `GET /` — 首页 - `POST /process` — 上传CSV → 返回预测 + 图像 - `GET /download` — 下载生成的灰度图像 ## 🧰 技术栈 | 层 | 技术 | |---|---| | 机器学习框架 | TensorFlow / Keras | | 数据处理 | NumPy, Pandas, Scikit-learn | | 图像处理 | Matplotlib, SciPy(interp2d,RegularGridInterpolator) | | 类别平衡 | imbalanced-learn(SMOTE) | | Web后端 | Flask | | 模型持久化 | Joblib,Keras `.h5` | | 数据集 | CICIDS 2017/2018,UNSW-NB15 | ## 🗺️ 未来工作 - [ ] 实时数据包捕获和推理(PyShark / Scapy集成) - [ ] 可解释性层 — 预测图像上的Grad-CAM可视化 - [ ] 基于Transformer的编码器(ViT)替换CNN骨干 - [ ] Docker容器化以一键部署 - [ ] 带有身份验证的REST API以实现企业集成 - [ ] 多类别攻击分类(DDoS,探测,R2L,U2R) ## 📚 数据集参考 - **CICIDS 2017/2018** — 加拿大网络安全研究所,新不伦瑞克大学。涵盖DoS、DDoS、暴力破解、Web攻击。 - **UNSW-NB15** — UNSW堪培拉。现代混合数据集,包含真实攻击流量和合成正常流量。 ## 👤 作者 **Mohammed Fahad Altamash** 班加罗尔,印度 [GitHub](https://github.com/fahad03-mfa)
标签:5G网络安全, Apex, CNN, CSV处理, Flask, Python, SMOTE, TensorFlow, 入侵检测系统, 图像识别, 安全数据湖, 异常检测, 数据分类, 数据增强, 数据转换, 数据预处理, 无后门, 机器学习, 模型部署, 模型集成, 深度学习, 物联网安全, 特征工程, 网络安全, 网络流量分析, 逆向工具, 隐私保护