rose1996iv/hybrid-cnn-malware-detector
GitHub: rose1996iv/hybrid-cnn-malware-detector
融合恶意软件静态二进制图像与动态网络日志双模态特征的 CNN 检测器,通过特征融合提升对零日恶意软件和对抗攻击的抵御能力。
Stars: 1 | Forks: 0
# 混合 CNN 恶意软件检测器:零日视角
[](https://www.python.org/)
[](https://www.tensorflow.org/)
[](https://streamlit.io/)
[](LICENSE)
[]()
## 📑 摘要
本仓库托管了一个**混合 CNN 恶意软件检测器**的实现,这是一个旨在对抗零日恶意软件威胁的学位论文研究项目。该系统采用了一种结合以下特征的新型特征融合架构:
1. **静态特征**:恶意软件二进制文件的可视化表示(来自 **Malimg** 数据集)[cite: 33]。
2. **动态特征**:行为网络日志(来自 **UNSW-NB15** 数据集)[cite: 33]。
通过整合这些正交的数据模态,与单一视角的分类器相比,该模型在抵御对抗攻击和混淆技术方面实现了卓越的鲁棒性。该系统通过用户友好的 **Streamlit** 界面进行部署,允许对可疑文件进行实时分析。
## 🏗️ 系统架构
检测流水线在融合分类之前,会并行处理静态和动态输入:
```
graph LR
A[Malware Binary] -->|Image Conversion| B("Static Image 224x224")
B -->|Flatten & Normalize| C[Static Vector]
C -->|PCA Reduction| D["Static Features (100-Dim)"]
E[Network Logs] -->|Feature Extraction| F(Dynamic CSV)
F -->|Standardization| G[Dynamic Vector]
G -->|PCA Reduction| H["Dynamic Features (100-Dim)"]
D --> I{Feature Fusion}
H --> I
I -->|Concatenation| J["Hybrid Vector (200-Dim)"]
J -->|Reshape| K[1D-CNN Model]
K -->|Softmax| L((Classification))
```
1. **图像转换**:将二进制文件转换为灰度图像以捕获结构模式。
2. **特征提取**:
- **静态**:PCA 将高维图像数据降维为 100 个主成分。
- **动态**:网络行为经过处理并降维为 100 个主成分。
3. **融合与分类**:组合后的 200 维向量输入到针对快速推理优化的轻量级 1D-CNN 中。
## 📸 实验结果与演示
### 场景 A:完整混合分析
该系统通过利用静态图像模式和动态行为日志,以 **100% 的置信度**正确识别出恶意软件家族 `Adialer.C`。

### 场景 B:系统弹性(容错模式)
系统专为现实世界的鲁棒性而设计,具有**容错模式**。如果动态日志缺失或损坏,系统会平滑降级为仅使用静态特征,从而保持运行能力。

### 模型性能与鲁棒性
#### 训练历史
模型在训练集和验证集上均表现出稳定收敛和高准确率,表明学习过程有效且没有明显的过拟合现象。

#### 对抗鲁棒性
即使在对抗性扰动(FGSM 攻击)下,系统也能保持很高的分类准确率,展现出对规避尝试的抵御能力。

### 性能指标
| 指标 | 数值 | 备注 |
| :--- | :--- | :--- |
| **准确率** | **98.50%** | 对标准恶意软件变种具有鲁棒性 |
| **输入向量** | 200 维 | 100 个静态 + 100 个动态组件 |
| **鲁棒性** | 已测试 | 已针对 FGSM(快速梯度符号法)攻击进行验证 |
| **推理速度** | < 1s | 在标准硬件上实现实时分类 |
| **容错能力** | ✅ | 自动回退至仅静态分析 |
## 🚀 安装与使用
### 前置条件
- Python 3.10+
- Git
### 1. 克隆仓库
```
git clone https://github.com/rose1996iv/hybrid-cnn-malware-detector.git
cd hybrid-cnn-malware-detector
```
### 2. 设置虚拟环境
**Windows (PowerShell):**
```
python -m venv .venv
& ".\.venv\Scripts\Activate.ps1"
```
**macOS / Linux:**
```
python3 -m venv .venv
source .venv/bin/activate
```
### 3. 安装依赖
```
pip install --upgrade pip
pip install -r requirements.txt
```
### 4. 运行应用程序
```
streamlit run app.py
```
应用程序将在您的默认网络浏览器中自动启动。
## 📂 数据集访问
由于大小和许可限制,本仓库中不包含原始数据集。
- **Malimg 数据集**(静态):[Kaggle 链接](https://www.kaggle.com/datasets/andrewmvd/malimg-dataset)
- **UNSW-NB15**(动态):[UNSW 研究](https://research.unsw.edu.au/projects/unsw-nb15-dataset)
*注意:处理后的特征向量(`.npy`)包含在 `data/processed/` 目录中,以方便复现结果。*
## 🔗 引用
如果您在研究中使用了本软件或方法,请引用:
```
@mastersthesis{joseph2025adversarial,
title = {Adversarial Attacks on CNN-based Malware Classification: A Zero-Day Malware Perspective},
author = {Joseph},
year = {2025},
school = {Graphic Era Hill University},
type = {Dissertation},
note = {GitHub: https://github.com/rose1996iv/hybrid-cnn-malware-detector}
}
```
## 📄 许可证
本项目基于 **MIT License** 授权 - 有关详细信息,请参见 [LICENSE](LICENSE) 文件。
标签:DNS 反向解析, IP 地址批量处理, Kubernetes, Malimg数据集, PCA降维, Python, Streamlit, TensorFlow, UNSW-NB15数据集, 二进制图像分析, 云安全监控, 人工智能安全, 入侵检测系统, 合规性, 威胁情报, 安全可视化, 安全数据湖, 安全研究项目, 实时评估系统, 对抗性攻击防御, 开发者工具, 无后门, 机器学习分类器, 深度学习, 混合CNN, 特征融合, 网络安全, 网络日志分析, 访问控制, 逆向工具, 隐私保护, 零日威胁防御, 静态分析