fahad03-mfa/Intrusions
GitHub: fahad03-mfa/Intrusions
基于深度学习的物联网与5G网络入侵检测系统
Stars: 0 | Forks: 0
# 🛡️ 物联网与5G入侵检测系统 — 深度学习 + 集成CNN
[](https://python.org)
[](https://tensorflow.org)
[](https://flask.palletsprojects.com)
[](LICENSE)
[]()
## 🔍 本项目功能
为物联网和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, 入侵检测系统, 图像识别, 安全数据湖, 异常检测, 数据分类, 数据增强, 数据转换, 数据预处理, 无后门, 机器学习, 模型部署, 模型集成, 深度学习, 物联网安全, 特征工程, 网络安全, 网络流量分析, 逆向工具, 隐私保护