VladimirRamirez07/malware-analyzer-sandbox
GitHub: VladimirRamirez07/malware-analyzer-sandbox
一个面向教育场景的轻量级恶意软件分析沙箱,通过 VirusTotal API、YARA 规则和静态行为检测对可疑文件进行快速评估并生成 PDF 报告。
Stars: 0 | Forks: 0
#
恶意软件分析沙箱








## 🎬 演示
```
╭──────────────────────────────────────╮
│ Malware Analyzer Sandbox │
│ Educational tool — analyze │
│ suspicious files │
╰──────────────────────────────────────╯
Running analysis...
File: samples/test_sample.exe
VirusTotal Results
╭──────────────────┬─────────────────────────╮
│ Field │ Value │
├──────────────────┼─────────────────────────┤
│ Hash (SHA256) │ b1422842...eb92af │
│ Malicious │ 42 │
│ Suspicious │ 3 │
│ Undetected │ 25 │
╰──────────────────┴─────────────────────────╯
YARA Scan Results
╭──────────────┬──────────────────────────────╮
│ Field │ Value │
├──────────────┼──────────────────────────────┤
│ Matched │ SuspiciousScript, │
│ │ RansomwareIndicators │
│ Tags │ obfuscation, script │
╰──────────────┴──────────────────────────────╯
Behavioral Analysis
╭──────────────────────┬────────────────────╮
│ Field │ Value │
├──────────────────────┼────────────────────┤
│ Extension │ .exe │
│ Suspicious Extension │ YES │
│ Entropy │ 7.823 │
│ High Entropy │ YES │
│ Suspicious Strings │ cmd.exe, wget │
│ Risk Level │ HIGH │
╰──────────────────────┴────────────────────╯
✓ Report saved: reports/report_test_sample_20260511.pdf
```
## ✨ 功能
- **SHA256 哈希** — 生成用于文件识别的加密指纹
- **VirusTotal 集成** — 通过 API 将哈希值与 70 多个杀毒引擎进行比对检查
- **YARA 规则引擎** — 使用 7 条自定义检测规则进行模式匹配
- **行为分析** — 熵值计算、可疑字符串检测、扩展名分析
- **PDF 报告生成** — 将完整分析结果导出为专业的 PDF
- **Docker 支持** — 容器化部署,确保环境可复现
- **富文本 CLI 输出** — 彩色终端表格,易于阅读
- **CI/CD 流水线** — 通过 GitHub Actions 在每次推送时自动运行测试
## 🛡️ 检测范围
| 威胁类型 | 检测方法 | 严重性 |
|---|---|---|
| 勒索软件 | YARA 规则 + 字符串匹配 | 🔴 严重 |
| 木马 | YARA 行为模式 | 🔴 高 |
| 间谍软件 | YARA 键盘记录器/钩子检测 | 🔴 高 |
| 混淆代码 | 熵值分析 + YARA | 🟡 中 |
| 可疑脚本 | 字符串 + 扩展名分析 | 🟡 中 |
| 网络侦察工具 | YARA 模式匹配 | 🟡 中 |
| 加壳可执行文件 | MZ 文件头 + UPX 检测 | 🔴 高 |
## 🏗️ 项目结构
```
malware-analyzer-sandbox/
├── .github/
│ └── workflows/
│ └── ci.yml # GitHub Actions CI pipeline
├── analyzer/
│ ├── __init__.py
│ ├── virustotal.py # VirusTotal API integration
│ ├── yara_scanner.py # YARA rules engine
│ ├── behavior.py # Behavioral & entropy analysis
│ └── report.py # PDF report generator
├── docker/
│ └── Dockerfile
├── rules/
│ └── suspicious.yar # 7 custom YARA rules
├── samples/ # Test files (gitignored)
├── tests/
│ ├── __init__.py
│ └── test_analyzer.py # 5 unit tests
├── docker-compose.yml
├── main.py # CLI entry point
├── requirements.txt
├── .env.example
└── README.md
```
## ⚙️ 设置
```
# Clone 仓库
git clone https://github.com/VladimirRamirez07/malware-analyzer-sandbox.git
cd malware-analyzer-sandbox
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 配置 API key
cp .env.example .env
# 编辑 .env 并添加你的 VirusTotal API key
```
## 🚀 使用方法
```
# 分析文件
python main.py path/to/file.exe
# 跳过 VirusTotal 检查(离线模式)
python main.py path/to/file.exe --no-vt
# 跳过 PDF 报告生成
python main.py path/to/file.exe --no-pdf
# 使用 Docker 运行
docker-compose up --build
```
## 🧪 测试
```
# 运行所有测试
pytest tests/ -v
# 预期输出:
# tests/test_analyzer.py::test_entropy_calculation PASSED
# tests/test_analyzer.py::test_suspicious_strings_detection PASSED
# tests/test_analyzer.py::test_behavior_analysis PASSED
# tests/test_analyzer.py::test_yara_scan PASSED
# tests/test_analyzer.py::test_risk_level_values PASSED
# 5 passed in 0.16s
```
## 🔑 VirusTotal API
在 [virustotal.com](https://www.virustotal.com) 获取您的免费 API 密钥。
免费套餐允许 **4 次请求/分钟** 和 **500 次请求/天**。
## 📬 联系方式
**Vladimir Ramírez**
[](https://www.linkedin.com/in/vladimir-ram%C3%ADrez-303a433ba)
[](https://github.com/VladimirRamirez07)
## ⚠️ 免责声明
本工具仅供**教育目的**使用。
它只分析文件,从不创建或执行恶意代码。
请始终在受控环境中使用。
## 📄 许可证
MIT © [VladimirRamirez07](https://github.com/VladimirRamirez07)
标签:AMSI绕过, Ask搜索, DAST, DNS 反向解析, Docker, GitHub Actions, Go语言工具, MIT许可, pytest, Python, VirusTotal, YARA, 云资产可视化, 云资产清单, 可疑文件, 哈希扫描, 威胁检测, 安全规则引擎, 安全防御评估, 恶意样本, 恶意软件分析, 教育工具, 文件分析, 无后门, 沙箱, 网络安全, 自动笔记, 行为检测, 请求拦截, 逆向工程, 防病毒, 隐私保护