orion-priyansh/malware-analysis
GitHub: orion-priyansh/malware-analysis
一个基于机器学习与多源集成的综合恶意软件分析系统,解决快速检测与上下文关联问题。
Stars: 0 | Forks: 0
# 恶意软件分析 API
一个具备基于机器学习的检测、哈希查询和语义嵌入功能的综合恶意软件分析系统。
## 功能
- **哈希查询**:检查文件是否在 MalwareBazaar 数据库中
- **特征提取**:从 PE 文件中提取静态特征
- **ML 检测**:使用 EMBER 模型进行恶意软件分类
- **VirusTotal 集成**:查询 VirusTotal 获取额外上下文信息
- **语义嵌入**:为文件相似性分析生成嵌入向量
- **文件对比**:使用语义相似性比较两个文件
## 安装
1. 安装依赖:
```
pip install -r requirements.txt
```
2. 设置环境变量:
```
export VT_API_KEY="your_virustotal_api_key"
```
3. 准备数据:
- 将 MalwareBazaar CSV 文件放置在 `data/malwarebazaar.csv`
- 将训练好的 EMBER 模型放置在 `models/ember_model.pkl`
## 用法
### 启动 API 服务器
```
uvicorn api.main:app --reload --host 0.0.0.0 --port 8000
```
### API 端点
#### 健康检查
```
curl http://localhost:8000/
```
#### 扫描文件
```
curl -X POST "http://localhost:8000/scan" \
-F "file=@suspicious_file.exe"
```
响应包含:
- SHA256 哈希值
- 恶意软件检测结果
- 置信度分数
- VirusTotal 结果
- 语义嵌入向量(如果可用)
#### 比较两个文件
```
curl -X POST "http://localhost:8000/compare" \
-F "file1=@file1.exe" \
-F "file2=@file2.exe"
```
返回 0 到 1 之间的相似性得分。
## 项目结构
```
.
├── api/
│ └── main.py # FastAPI application
├── core/
│ ├── embedding_extractor.py # Semantic embedding extraction
│ ├── feature_extractor.py # Static feature extraction
│ ├── hash_lookup.py # MalwareBazaar lookup
│ ├── malware_model.py # EMBER ML model
│ └── vt_checker.py # VirusTotal integration
├── utils/
│ └── hash_utils.py # Hash calculation utilities
├── data/
│ └── malwarebazaar.csv # Known malware database
├── models/
│ └── ember_model.pkl # Trained EMBER model
└── requirements.txt # Python dependencies
```
## 组件
### 嵌入提取器
使用 EMBER-v1 变换器模型为文件生成语义嵌入向量。支持:
- 自动 GPU/CPU 检测
- 批量处理
- 相似性计算
- 归一化嵌入向量
### 特征提取器
从文件中提取静态特征:
- 文件大小、熵、类型
- PE 头信息
- 导入表
- 节区详情
### EMBER 模型
基于 LightGBM 的恶意软件分类器,在 EMBER 数据集上训练。
### VirusTotal 检查器
查询 VirusTotal API 获取额外的威胁情报。
### MalwareBazaar 查询
在已知恶意软件数据库中进行快速的基于哈希的查询。
## 错误处理
所有组件均包含全面的错误处理和日志记录:
- 模型文件缺失会被优雅处理
- API 失败会返回信息丰富的错误消息
- 错误时清理临时文件
- 详细的调试日志
## 配置
### 环境变量
- `VT_API_KEY`:VirusTotal API 密钥(可选)
### 日志记录
日志记录默认配置为 INFO 级别。可以在 `api/main.py` 中调整:
```
logging.basicConfig(level=logging.DEBUG)
```
## 说明
- 嵌入提取器需要 PyTorch 和 transformers
- 首次运行将下载 EMBER-v1 模型(约 400MB)
- 如果 CUDA 可用,GPU 加速会自动启用
- 处理完成后会清理临时文件
## 许可证
MIT
标签:API服务, AV绕过, Caido项目解析, DAST, EMBER模型, FastAPI, hash lookup, malware analysis system, ML-based detection, PE文件特征提取, Python, semantic embeddings, VirusTotal集成, 凭据扫描, 反病毒, 哈希查询, 威胁情报, 开发者工具, 恶意软件分析, 文件对比, 文件相似度分析, 无后门, 机器学习检测, 系统调用监控, 语义嵌入, 逆向工具, 静态特征提取