Saifmagouri/malware_analysis
GitHub: Saifmagouri/malware_analysis
基于多模态深度学习的恶意软件检测Web应用,融合图像、行为和元数据三种特征实现高精度分类。
Stars: 0 | Forks: 0
# 多模态恶意软件检测 Web 应用程序
一个使用多模态深度学习模型进行恶意软件检测的 Web 应用程序,该模型结合了图像、行为和元数据分析。
## 功能
- **单文件分析**:上传二进制文件(.exe、.dll、.bin、.sys)进行恶意软件检测
- **预处理数据**:上传可视化图像 + 特征 CSV
- **批量分析**:一次分析多个文件
- **演示模式**:使用预加载的示例文件进行尝试
- **仪表盘**:查看模型性能指标和架构
## 模型架构
该模型使用三个分支进行多模态分析:
1. **图像分支** (EfficientNet-B0):分析二进制可视化图像
2. **行为分支** (BiLSTM + Attention):处理 API 调用特征(395 维)
3. **元数据分支** (MLP):分析 PE 头特征(50 维)
所有嵌入被融合并经过分类头处理。
### 性能指标
- 准确率: 90.48%
- AUC: 0.9444
- 精确率: 91.67%
- 召回率: 91.67%
- F1 分数 (F1 Score): 91.67%
## 安装说明
### 前置条件
- Python 3.10+
- pip
### 设置
1. 导航到项目目录:
```
cd malware-detection-app
```
2. 创建虚拟环境(推荐):
```
python -m venv venv
venv\Scripts\activate # Windows
# 或
source venv/bin/activate # Linux/Mac
```
3. 安装依赖:
```
pip install -r requirements.txt
```
4. 确保模型文件存在:
```
models/best_model.pt
```
## 运行应用程序
启动服务器:
```
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
或者直接运行:
```
python -m app.main
```
访问应用程序地址:**http://localhost:8000**
## API 端点
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/` | GET | 主页 - 文件上传 |
| `/batch` | GET | 批量分析页面 |
| `/dashboard` | GET | 模型指标仪表盘 |
| `/demo` | GET | 带有示例的演示模式 |
| `/api/v1/predict/binary` | POST | 分析二进制文件 |
| `/api/v1/predict/preprocessed` | POST | 分析图像 + CSV |
| `/api/v1/predict/batch` | POST | 批量预测 |
| `/api/v1/demo/samples` | GET | 列出演示样本 |
| `/api/v1/viz/metrics` | GET | 模型指标 |
| `/health` | GET | 健康检查 |
## 项目结构
```
malware-detection-app/
├── app/
│ ├── main.py # FastAPI application
│ ├── config.py # Configuration
│ ├── api/
│ │ ├── routes/ # API endpoints
│ │ └── schemas/ # Pydantic models
│ ├── core/
│ │ ├── model.py # Model architecture
│ │ ├── model_loader.py # Model loading
│ │ └── inference.py # Prediction pipeline
│ ├── services/
│ │ ├── binary_converter.py
│ │ ├── feature_extractor.py
│ │ └── visualization_service.py
│ └── static/
│ ├── css/
│ └── js/
├── templates/ # HTML templates
├── models/ # Model weights
├── sample_data/ # Demo samples
├── requirements.txt
└── README.md
```
## 使用示例
### Python API 客户端
```
import requests
# 单文件预测
with open('sample.exe', 'rb') as f:
response = requests.post(
'http://localhost:8000/api/v1/predict/binary',
files={'file': f}
)
result = response.json()
print(f"Malware: {result['is_malware']}, Confidence: {result['confidence']:.2%}")
```
### cURL
```
curl -X POST "http://localhost:8000/api/v1/predict/binary" \
-F "file=@sample.exe"
```
## 技术栈
- **后端**: FastAPI, Python 3.10+
- **深度学习**: PyTorch, TorchVision
- **前端**: Bootstrap 5, Plotly.js
- **模型**: EfficientNet-B0 + BiLSTM + MLP(多模态融合)
## 许可证
本项目仅供教育和研究目的使用。
标签:AMSI绕过, Apex, API调用序列分析, AV绕过, BiLSTM, DAST, EfficientNet, FastAPI, PE头解析, Python, PyTorch, Uvicorn, 二进制文件分析, 云安全监控, 人工智能, 元数据分析, 凭据扫描, 可视化图像分析, 多层感知机, 多模态恶意软件检测, 威胁检测, 安全可视化, 安全大模型, 安全检测API, 恶意软件分析, 批量分析, 无后门, 机器学习, 注意力机制, 深度学习, 用户模式Hook绕过, 网络信息收集, 网络安全, 逆向工具, 隐私保护, 静态分析