astafford8488/venom
GitHub: astafford8488/venom
一个基于机器学习与自动化规则生成的神经恶意软件分析与威胁情报平台,旨在将数小时的手动分析压缩至数秒。
Stars: 0 | Forks: 0
# 🐍 VENOM
### 神经恶意软件分析与威胁情报平台
[](https://www.python.org/downloads/)
[](LICENSE)
[](https://attack.mitre.org/)
[](https://virustotal.github.io/yara/)
[](https://github.com/astafford8488/venom/actions)
*一个生产级恶意软件分析平台,结合 PE 静态分析、机器学习分类、行为模式匹配、多源威胁情报以及自动化 YARA 规则生成,构建统一分析流水线,并具备完整的 MITRE ATT&CK 技术映射能力。*
[功能](#features) · [架构](#architecture) · [快速开始](#quick-start) · [分析流水线](#analysis-pipeline) · [API 参考](#api-reference)
## 问题
恶意软件分析需要跨多个领域的深厚专业知识,且每个样本耗时数小时:
| 挑战 | 现实 |
|------|------|
| **数量** | 每天发现 450,000+ 新的恶意软件样本 |
| **复杂性** | PE 解析、行为分析和情报关联是独立的工作流 |
| **分类** | 手动家族识别需要多年的逆向工程经验 |
| **检测缺口** | 编写 YARA 签名繁琐且容易出错 |
| **情报** | 威胁情报分散在 VirusTotal、MalwareBazaar 和私有源中,未统一整合 |
**VENOM 解决了这一问题**,通过自动化整个恶意软件分析工作流——从 PE 头解析到神经网络分类再到自动化 YARA 签名生成——在数秒而非数小时内完成。
## VENOM 对比
| 能力 | 手动逆向 | 沙箱 | VENOM |
|------|----------|------|-------|
| PE 静态分析 | 手动 IDA/Ghidra | 基础 | 完整自动化解析 |
| 家族分类 | 专家知识 | 无 | 机器学习集成 + 启发式 |
| 行为分析 | 动态沙箱 | API 监控 | 静态行为签名 |
| 威胁情报 | 手动查询 | 无 | 多源自动增强 |
| YARA 生成 | 手动编写 | 无 | 从样本自动生成 |
| IOC 提取 | 手动 | 部分 | 完整自动化提取 |
| MITRE ATT&CK 映射 | 手动 | 部分 | 从行为自动生成 |
| 分析时间 | 数小时 | 5-10 分钟 | 数秒 |
## 功能
### 静态分析引擎
- **PE 头解析** — 段、导入、导出、时间戳、入口点(通过 `pefile` 并提供手动回退)
- **香农熵** — 各段及整体文件的打包/加密检测
- **导入分析** — 70+ 可疑 API 分类(注入、网络、加密、反调试、键盘记录、权限提升)
- **字符串提取** — 可疑模式:URL、IP、注册表路径、Shell 命令、加密、监控
- **IOC 提取** — URL、IP 地址、域名、邮箱、比特币地址、注册表键
- **特征提取** — 260+ 个用于 ML 的数值特征(字节直方图、PE 结构、字符串计数)
### 神经网络分类
- **启发式基线** — 无需训练,基于 12 个恶意软件家族的规则评分
- **随机森林** — 使用特征重要性分析的 Scikit-learn 集成分类器
- **梯度提升** — 针对大型数据集的高精度替代方案
- **12 个恶意软件家族** — 良性、木马、勒索软件、蠕虫、后门、间谍软件、投放器、挖矿、Rootkit、广告软件、僵尸网络、APT
### 行为分析
- **15 个行为签名** — 进程注入、注册表持久化、凭证窃取、网络 C2、键盘记录、屏幕捕获、反调试、反虚拟机
- **MITRE ATT&CK 映射** — 每个行为映射到具体技术(T1055、T1547、T1003 等)
- **能力摘要** — 自动生成的检测能力列表
- **基于导入的检测** — 从导入的 API 函数识别恶意软件能力
### 威胁情报
- **VirusTotal 集成** — API v3 哈希查询与检测比率评分
- **MalwareBazaar** — abuse.ch API 用于已知恶意软件家族识别
- **本地数据库** — 基于 JSON 的本地威胁情报存储,支持快速查询
- **IOC 增强** — 域名信誉、IP 分类、自动风险评分
- **结果缓存** — 可配置的 TTL,避免重复 API 调用
### YARA 规则生成
- **从样本自动生成** — 提取唯一字符串与十六进制模式用于检测
- **PE 感知规则** — 包含 MZ 头检查和基于导入的条件
- **家族规则** — 从同一家族的多个样本生成签名
- **LLM 增强** — 通过 Claude 将自然语言转换为 YARA 规则
- **字符串评分** — 智能选择高价值指标
## 架构
```
VENOM Analysis Pipeline
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────┐ ┌───────────────────────────────────────────┐ │
│ │ Sample │───▶│ Static Analyzer │ │
│ │ (PE/ELF/ │ │ PE Parse → Entropy → Strings → IOCs │ │
│ │ Binary) │ └──────────┬───────────┬───────────────────┘ │
│ └──────────┘ │ │ │
│ │ │ │
│ ┌─────────▼──┐ ┌────▼──────────────┐ │
│ │ Feature │ │ Behavioral │ │
│ │ Extraction │ │ Analyzer │ │
│ │ (260+) │ │ (15 signatures) │ │
│ └─────────┬──┘ └────┬──────────────┘ │
│ │ │ │
│ ┌─────────▼──┐ │ │
│ │ Neural │ │ │
│ │ Classifier │ │ │
│ │ (ML/Heur) │ │ │
│ └─────────┬──┘ │ │
│ │ │ │
│ ┌──────────────┐ ┌───────▼───────────▼──────────────┐ │
│ │ Threat │──▶│ Verdict Engine │ │
│ │ Intelligence│ │ (Aggregate → Score → Classify) │ │
│ │ (VT/MB/DB) │ └──────────┬───────────────────────┘ │
│ └──────────────┘ │ │
│ ┌─────────▼─────────┐ │
│ │ YARA Generator │ │
│ │ (Auto-Signature) │ │
│ └───────────────────┘ │
│ │
│ ┌──────────────────────┐ │
│ │ Analysis Report │ │
│ │ Verdict + IOCs + │ │
│ │ YARA + MITRE Map │ │
│ └──────────────────────┘ │
│ │
└────────────────────────────────────────────────────────────────────┘
```
## 快速开始
### 安装
```
git clone https://github.com/astafford8488/venom.git
cd venom
pip install -e ".[dev]"
```
### 分析样本
```
import asyncio
from venom import VenomEngine
async def main():
engine = VenomEngine()
report = await engine.analyze(
file_path="suspicious_file.exe"
)
v = report.verdict
print(f"Classification: {v.classification}") # malicious/suspicious/clean
print(f"Risk Score: {v.risk_score:.1f}/10")
print(f"Family: {v.malware_family}")
print(f"Type: {v.malware_type}")
print(f"MITRE: {', '.join(v.mitre_techniques)}")
print(f"IOCs Found: {len(report.iocs)}")
print(report.summary())
asyncio.run(main())
```
### CLI 用法
```
# 全面分析
venom analyze suspicious.exe
# 仅静态分析
venom static suspicious.exe
# 神经分类
venom classify suspicious.exe
# 威胁情报查询
venom intel