Kantosaurus/Malware-Analysis-Sandbox
GitHub: Kantosaurus/Malware-Analysis-Sandbox
跨平台恶意软件静态与动态分析沙箱,在 Docker 隔离环境中完成行为监控、网络捕获、内存取证并自动生成报告。
Stars: 0 | Forks: 0
# 恶意软件分析沙箱
一个用于跨多平台恶意软件静态和动态分析的恶意软件分析沙箱。
## 功能
- **多平台支持**:分析 Windows PE 文件、Linux ELF 二进制文件、脚本(PowerShell、JavaScript、Python)以及文档(Office、PDF)
- **静态分析**:文件哈希、PE/ELF 解析、字符串提取、YARA 扫描、熵分析、加壳检测
- **动态分析**:在 Docker 容器中隔离执行,进行行为监控、API 追踪和系统调用跟踪
- **网络分析**:数据包捕获(PCAP)、协议分析、DNS 日志、IOC 提取(IP、域名、URL)
- **内存取证**:使用 Volatility 3 创建和分析内存转储
- **威胁情报**:集成 VirusTotal、MISP、AlienVault OTX 和 abuse.ch 订阅源
- **AI/ML 检测**:集成分类器、异常检测、相似性分析以及由 LLM 驱动的报告。包含训练工具(`train_all.sh`、`QUICKSTART_ML_TRAINING.md`);**本仓库不提供已训练的权重**,且不保证任何准确率。
- **自动化报告**:生成包含 MITRE ATT&CK 映射的 JSON、HTML 和 PDF 格式的综合报告
- **可扩展架构**:基于 Celery 的任务队列,用于并行分析执行
- **丰富的 CLI 界面**:具有实时进度更新的美观命令行界面
## 架构
```
CLI (Click + Rich)
↓
FastAPI (Internal Orchestration)
↓
Celery Task Queue (Redis)
↓
┌─────────┬──────────┬────────────┬─────────┬─────────┬──────────┐
│ Static │ Dynamic │ Network │ Memory │ Threat │ Report │
│ Analysis│ Analysis │ Capture │ Analysis│ Intel │ Gen │
└─────────┴──────────┴────────────┴─────────┴─────────┴──────────┘
↓
Docker Containers (Isolated Sandboxes)
↓
PostgreSQL Database + Redis Cache
```
## 环境要求
- Python 3.11+
- Docker 和 Docker Compose
- PostgreSQL 14+
- Redis 7+
## 安装说明
1. 克隆仓库:
```
git clone https://github.com/Kantosaurus/Malware-Analysis-Sandbox.git
cd Malware-Analysis-Sandbox
```
2. 安装 Python 依赖:
```
pip install -r requirements.txt
```
3. 复制并配置环境变量:
```
cp .env.example .env
# 使用您的配置编辑 .env
```
4. 启动基础服务(PostgreSQL、Redis):
```
docker-compose up -d
```
5. 初始化数据库:
```
python scripts/init_database.py
```
6. 安装 CLI 工具:
```
pip install -e .
```
7. **训练 ML 模型**(AI/ML 功能必需):
```
# Windows
train_all.bat
# Linux/Mac
chmod +x train_all.sh
./train_all.sh
```
此步骤将生成合成测试数据并训练所有 ML 模型(约 5 分钟)。详情请参阅 [QUICKSTART_ML_TRAINING.md](QUICKSTART_ML_TRAINING.md)。
## 快速开始
### 分析样本
```
# 分析 PE 文件
malware-sandbox analyze suspicious.exe
# 仅使用静态分析进行分析
malware-sandbox analyze malware.dll --static-only
# 指定输出格式
malware-sandbox analyze sample.exe --output pdf
```
### 检查分析状态
```
# 检查状态
malware-sandbox status
# 实时跟踪分析
malware-sandbox status --follow
```
### 生成报告
```
# 生成 PDF 报告
malware-sandbox report --format pdf --output report.pdf
# 生成 HTML 报告
malware-sandbox report --format html
```
### 列表与搜索
```
# 列出最近的扫描分析
malware-sandbox list --limit 10
# 按 hash 搜索
malware-sandbox search --hash sha256:abc123...
# 按 IOC 搜索
malware-sandbox search --ioc 192.168.1.1
```
## CLI 命令
| 命令 | 描述 |
|---------|-------------|
| `analyze ` | 提交样本进行分析 |
| `status ` | 检查分析状态 |
| `report ` | 生成分析报告 |
| `list` | 列出近期的分析 |
| `search` | 通过哈希/IOC 搜索分析记录 |
| `config` | 管理配置 |
| `yara` | 管理 YARA 规则 |
| `server` | 启动/停止后台服务 |
## 配置
`.env` 中的关键配置选项:
```
# Database
DATABASE_URL=postgresql://user:pass@localhost:5432/malware_sandbox
# Redis
REDIS_URL=redis://localhost:6379/0
# Docker
DOCKER_HOST=unix:///var/run/docker.sock
ANALYSIS_TIMEOUT=300
# Threat Intelligence
VIRUSTOTAL_API_KEY=your_key_here
MISP_URL=https://misp.local
MISP_API_KEY=your_key_here
# Analysis Settings
MAX_CONCURRENT_ANALYSES=5
ENABLE_MEMORY_ANALYSIS=true
ENABLE_NETWORK_CAPTURE=true
```
## 安全注意事项
- 所有恶意软件样本在静态存储时均使用 AES-256 进行加密
- 分析容器运行在无互联网访问的隔离 Docker 网络中
- 容器文件系统在可能的情况下设为只读
- 所有操作均被记录以供审计
- API endpoint 受 JWT 身份验证和速率限制保护
## 项目结构
```
malware-analysis-sandbox/
├── src/ # Source code
│ ├── cli/ # CLI interface
│ ├── api/ # FastAPI application
│ ├── core/ # Orchestration engine
│ ├── analyzers/ # Analysis modules
│ ├── ml/ # Machine learning models
│ ├── vm/ # Docker management
│ ├── network/ # Network analysis
│ ├── memory/ # Memory forensics
│ ├── intelligence/ # Threat intelligence
│ ├── reporting/ # Report generation
│ ├── models/ # Database models
│ └── utils/ # Utilities
├── scripts/ # Training and utility scripts
├── docker/ # Docker configurations
├── database/ # Database migrations
├── rules/ # YARA rules
├── storage/ # Sample and report storage
│ ├── ml_models/ # Trained ML models
│ ├── ml_data/ # Training datasets
│ └── samples/ # Malware samples
├── tests/ # Test suite
└── docs/ # Documentation
```
## 开发
运行测试:
```
pytest tests/ -v --cov=src
```
运行 linter:
```
flake8 src/
black src/
```
## 文档
- **快速开始**:[ML 训练快速开始](QUICKSTART_ML_TRAINING.md)
- **指南**:
- [架构指南](docs/architecture.md)
- [用户指南](docs/user_guide.md)
- [部署指南](docs/deployment.md)
- [ML 训练指南](docs/TRAINING.md)
- [AI/ML 功能](docs/AI_ML_FEATURES.md)
- **API 参考**:[API 文档](docs/api_reference.md)
## 许可证
本项目基于 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
## 免责声明
本工具仅供授权的安全测试、恶意软件研究和教育目的使用。用户有责任遵守所有适用的法律法规。作者不对滥用本软件承担任何责任。
## 致谢
本项目使用了以下开源工具和库:
- pefile、pyelftools - 二进制解析
- YARA - 特征码扫描
- Volatility 3 - 内存取证
- Frida - 动态插桩
- Scapy - 网络分析
- 以及许多其他工具(见 requirements.txt)
标签:AV绕过, DAST, DNS 反向解析, FastAPI, SecList, 云安全监控, 内存取证, 合规性检查, 威胁情报, 安全沙箱, 开发者工具, 恶意软件分析, 搜索引擎查询, 测试用例, 网络信息收集, 请求拦截, 逆向工具, 静态分析