MirAb-77/Mal-Vision-AI
GitHub: MirAb-77/Mal-Vision-AI
结合 PE 静态分析与 CNN 图像分类的恶意软件检测系统,集成可解释 AI 与 VirusTotal 威胁情报,面向 SOC 模拟与安全研究。
Stars: 1 | Forks: 0
## 📌 概述
**MalwareVision AI** 是一个生产级网络威胁情报平台,用于模拟真实的**安全运营中心 (SOC)**。它将两个独立的 AI 检测引擎——静态 PE 特征分析和基于 CNN 的恶意软件图像分类——融合到一个统一的决策 pipeline 中,并辅以可解释 AI 和实时的 VirusTotal 威胁情报。
专为网络安全研究人员、SOC 培训环境和 AI 可解释性研究而构建。
| 能力 | 技术 |
|-----------|-----------|
| 🧬 PE 静态分析 | 基于提取的 PE 头部信息的 Scikit-Learn 分类器 |
| 🖼️ CNN 图像分类 | 基于二进制可视化图像的 TensorFlow/Keras |
| 🔀 融合决策引擎 | 两个模型的加权集成投票 |
| 🔍 可解释性层 | 每次预测的 SHAP(全局)+ LIME(局部)|
| 🌐 威胁情报 | VirusTotal API 丰富与验证 |
| 📋 取证报告 | 自动化事件报告生成 |
## 🧠 系统架构
### 检测 Pipeline
```
🟢 INPUT FILE (PE / EXE / DLL)
│
▼
┌───────────────────────────────┐
│ FEATURE EXTRACTION LAYER │
│ PE Headers · Imports · Entropy│
└───────────┬───────────────────┘
│
┌──────┴──────┐
▼ ▼
┌─────────┐ ┌──────────┐
│ PE │ │ CNN │
│CLASSIFIER│ │ IMAGE │
│(Sklearn)│ │CLASSIFIER│
└────┬────┘ └────┬─────┘
│ │
└──────┬───────┘
▼
┌───────────────────────────────┐
│ FUSION DECISION ENGINE │
│ Ensemble · Confidence Score │
└───────────┬───────────────────┘
│
▼
┌───────────────────────────────┐
│ EXPLAINABILITY LAYER (XAI) │
│ SHAP · LIME · Forensic│
└───────────┬───────────────────┘
│
▼
┌───────────────────────────────┐
│ THREAT INTEL ENRICHMENT │
│ VirusTotal API · Hash DB │
└───────────┬───────────────────┘
│
▼
┌───────────────────────────────┐
│ SOC DASHBOARD OUTPUT │
│ Alert · Report · Risk Score │
└───────────────────────────────┘
```
### 架构图

## 📊 模型性能
### 🖼️ CNN 图像分类器
| 指标 | 得分 |
|--------|-------|
| Accuracy | **87.1%** |
| Precision | **94.1%** |
| Recall | **88.0%** |
| F1 Score | **87.5%** |
| ROC-AUC | **93.5%** |
### 🧬 PE 静态分类器
| 指标 | 得分 |
|--------|-------|
| Accuracy | **98.1%** |
| Precision | **97.6%** |
| Recall | **94.1%** |
| F1 Score | **98.1%** |
| ROC-AUC | **96.1%** |
## 🔍 可解释 AI 核心
MalwareVision 集成了一个三层 XAI pipeline,以确保每个预测都是可审计和可解释的——而不是一个黑盒。
### SHAP — 全局特征归因

- 映射所有预测的全局特征贡献
- 识别哪些 PE 特征(imports、entropy、section sizes)最强烈地驱动恶意软件分类
- 为威胁模式分析提供系统性的行为洞察
### LIME — 局部单样本解释

- 为每个单独的文件预测生成局部线性解释
- 显示哪些特定特征促使模型趋向于恶意或良性判断
- 单样本决策透明度——对分析师审查工作流至关重要
### 取证追踪引擎

- 从原始输入到最终分类的逐步预测审计追踪
- 将特征 pipeline 中的每次转换映射到输出决策
- 生成可审计的推理日志,以用于合规和事件响应
### 可解释性框架

## 🖥️ SOC 仪表板 — Streamlit 前端
一个多页面的深色主题 Streamlit 仪表板,旨在模拟真实的安全运营中心界面。
### 仪表板页面
```
app.py ← Entry point & navigation
│
├── 🏠 Home System status · Module health · Quick scan
├── 🔍 File Analysis Upload · PE extraction · Dual model inference
├── 🧠 Explainability SHAP plots · LIME breakdown · Forensic trace
├── 🌐 Threat Intelligence VirusTotal enrichment · Hash lookup · IOC feed
├── 📊 SOC Dashboard Live alert feed · Detection timeline · Risk map
└── 📋 Reports Automated incident report · Export PDF / JSON
```
### UI 亮点
- **深色赛博朋克 SOC 主题** — 霓虹蓝/绿强调色调
- **实时攻击模拟信息流** — 动画 SOC 警报关流
- **双模型置信度条** — PE 与 CNN 得分并排显示
- **SHAP 瀑布图与蜂群图** 内联渲染
- **LIME 特征重要性面板** 带颜色编码的影响
- **一键报告导出** — PDF 和 JSON 事件报告
- **VirusTotal 丰富面板** — 供应商检测、文件信誉
## 📂 项目结构
```
malwarevision/
│
├── app.py ← Streamlit entry point & page router
│
├── views/
│ ├── home.py ← System status & quick scan
│ ├── analysis.py ← File upload & dual model inference
│ ├── explainability.py ← SHAP + LIME + forensic trace panels
│ ├── threat_intel.py ← VirusTotal enrichment dashboard
│ ├── soc_dashboard.py ← Live alert feed & detection timeline
│ └── reports.py ← Incident report generation & export
│
├── models/
│ ├── pe_classifier.pkl ← Trained PE static model
│ ├── cnn_model.h5 ← Trained CNN image model
│ └── feature_scaler.pkl ← Feature normalisation scaler
│
├── utils/
│ ├── pe_extractor.py ← PE header & section feature extraction
│ ├── image_converter.py ← Binary → visualisation image converter
│ ├── fusion_engine.py ← Ensemble decision combiner
│ ├── xai_engine.py ← SHAP + LIME computation
│ ├── virustotal.py ← VirusTotal API client
│ └── report_generator.py ← Automated incident report builder
│
├── assets/ ← Static images, icons, CSS
├── requirements.txt
└── README.md
```
## ⚙️ 安装
### 前提条件
- Python 3.8+
- pip
- VirusTotal API key (提供免费层)
- 虚拟环境(推荐)
### 1 — 克隆仓库
```
git clone https://github.com/your-username/MalwareVision-AI.git
cd MalwareVision-AI
```
### 2 — 创建虚拟环境
```
python -m venv venv
source venv/bin/activate # Linux / macOS
venv\Scripts\activate # Windows
```
### 3 — 安装依赖
```
pip install -r requirements.txt
```
核心依赖
```
streamlit>=1.32.0
tensorflow>=2.12.0
scikit-learn>=1.3.0
shap>=0.44.0
lime>=0.2.0
pandas>=2.0.0
numpy>=1.24.0
plotly>=5.18.0
pefile>=2023.2.7
requests>=2.31.0
Pillow>=10.0.0
matplotlib>=3.7.0
```
### 4 — 配置 VirusTotal API
```
# 在项目根目录中创建 .env 文件
echo "VIRUSTOTAL_API_KEY=your_api_key_here" > .env
```
### 5 — 运行仪表板
```
streamlit run app.py
```
在浏览器中打开 `http://localhost:8501`。
## 🛡️ 安全定位
MalwareVision AI 专为以下用例设计:
| 用例 | 描述 |
|----------|-------------|
| 🔬 研究实验室 | 使用可解释 AI 进行恶意软件分析 |
| 🏫 学术演示 | 关于 AI 安全的 FYP / 论文答辩 |
| 🎓 SOC 培训 | 实操威胁响应模拟 |
| 🧪 ML 安全 | 在恶意软件数据上对 XAI 方法进行基准测试 |
| 🏭 工业 PoC | 企业端点安全的原型 |
## 🚀 路线图
- [ ] 实时恶意软件信息流集成 (MalwareBazaar API)
- [ ] 用于文件系统监控的真实 endpoint agent
- [ ] 基于图的威胁情报网络 (GNN)
- [ ] 对抗性恶意软件鲁棒性测试
- [ ] 云 SOC 部署 (Docker + AWS/GCP)
- [ ] 多家族恶意软件分类(超越二元分类)
## 🔐 许可证
本项目基于 **MIT License** 授权 — 详情请参阅 [LICENSE](LICENSE)。
标签:Apex, Kubernetes, PE文件分析, TensorFlow, 可解释AI, 威胁情报, 开发者工具, 机器学习, 逆向工具