ashardian/Malware_Sandbox
GitHub: ashardian/Malware_Sandbox
一个基于Python的全自动恶意软件分析沙箱流水线,整合静态分析、动态行为监控、内存取证和MITRE ATT&CK映射,最终生成详细的威胁指标报告。
Stars: 0 | Forks: 0
# 高级恶意软件沙箱流水线
本项目是一个用 Python 设计的高级、全自动 **恶意软件分析沙箱**。它提供了一套从静态二进制分析到动态行为监控的全面、统一的流水线,最终生成内存取证和高度详细的威胁指标 (IOC) 报告。
## 🌟 核心架构与能力
编排器 (`main.py`) 将 6 个不同的模块整合在一起,涵盖了恶意软件逆向工程的整个生命周期:
### 第 1 阶段:环境隔离与供应 (`sandbox_runner`)
控制 Hypervisor 操作。在样本引爆之前,编排器会发出指令将 VM 恢复到已知的纯净 "Snapshot"(快照)。
* **`sandbox.py`**:管理完整生命周期(恢复 -> 启动 -> 复制 -> 执行 -> 停止)的 API。
* **`vm_controller.py`**:与客户机 OS 交互(例如执行 Payload)。
* **`snapshot_manager.py`**:处理 Hypervisor 级别的快照恢复。
### 第 2 阶段:静态分类 (`static_analysis`)
在不执行 PE/ELF 文件的情况下对其进行分析。
* **哈希计算**:提取 MD5、SHA1 和 SHA256 哈希值,以便与威胁情报平台 (VT, OTX) 进行关联。
* **YARA 扫描**:将文件与 YARA 签名库(`.yar`, `.yara`)进行匹配,以识别加壳结构、漏洞利用工具包或已知的恶意软件家族。
* **未来增强**:用于检测加壳工具的熵值计算、字符串提取以及 PE 头异常检测。
### 第 3 阶段:动态引爆与观察 (`dynamic_analysis`)
样本在 VM 内部执行,同时基于主机/客户机的 Agent 传感器收集遥测数据。
* **进程监控器**:跟踪 `ProcessCreate`、`CreateRemoteThread` 和终止事件。
* **文件系统监控器**:记录被植入的文件、修改和删除操作。
* **注册表监控器**:识别持久化机制(Run 键)和配置更改。
* **网络与 PCAP 收集器**:生成一个后台 `tcpdump` 进程,以捕获 VM 桥接接口上的原始网络流量 (`.pcap`)。
### 第 4 阶段:内存取证 (`memory_analysis`)
执行结束后,VM 被暂停,其物理 RAM 被转储到主机。
* **内存转储器**:命令 Hypervisor 写出 `.raw` 内存文件。
* **Volatility 3 包装器**:对内存转储执行插件(`malfind`、`pslist`、`netscan`),以识别未映射的代码(进程镂空/注入)和 Rootkit。
### 第 5 阶段:IOC 提取与语义报告 (`ioc_extractor`, `reports`)
综合从之前所有阶段收集的数据点。
* **IOC 解析器**:使用正则表达式从日志中抓取 IPv4 地址、域名和哈希值。
* **MITRE 映射器**:将原始 Sysmon/Auditd 事件转换为 MITRE ATT&CK 战术和技术(例如 T1055 进程注入)。
* **报告构建器 / PDF 生成器**:将情报聚合为一个庞大的 JSON 对象,并使用 Jinja2 模板 + `wkhtmltopdf` 渲染出精美的 HTML 和 PDF 报告。
### 第 6 阶段:可视化 (`dashboard`)
一个轻量级的 Flask Web 应用程序,用作 C2/仪表板来浏览生成的报告和 Payload。
## 🛠️ 项目结构
```
malware_sandbox/
├── main.py # Primary Pipeline Orchestrator
├── requirements.txt # Package Dependencies
├── README.md
├── sandbox_runner/ # VM Lifecycle & Execution Control
├── static_analysis/ # YARA & Hashing
├── dynamic_analysis/ # Sensors & PCAP collection
├── memory_analysis/ # Mem Dumper & Volatility3
├── ioc_extractor/ # Regex Parsers & MITRE Mapping
├── reports/ # Aggregation, HTML/PDF Rendering
│ └── templates/
│ └── report.html # Advanced Jinja2 reporting template
├── dashboard/ # Flask UI for Analysts
│ ├── app.py
│ └── routes.py
├── config/
│ └── settings.yaml # Global configuration file
├── samples/ # [INPUT] Folder for malicious binaries
├── reports/ # [OUTPUT] Generated PDF/JSON files
└── logs/ # [OUTPUT] Raw events and PCAPs
```
## 🚀 设置与执行
### 1. 要求
确保您已安装 Python 3.8+,以及以下 OS 级依赖项:
```
# Ubuntu/Debian 示例
sudo apt-get update
sudo apt-get install -y tcpdump wkhtmltopdf qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils yara
```
### 2. Python 环境
克隆仓库并安装软件包:
```
pip install -r requirements.txt
```
*(需要 `yara-python`, `volatility3`, `pdfkit`, `flask`, `pyyaml`, `jinja2`)*
### 3. 配置
修改 `config/settings.yaml`。您**必须**指定:
* 您的虚拟化引擎(`qemu`, `virtualbox`)。
* 准确的 `vm_name` 和纯净的 `snapshot_name`。
* 用于 tcpdump 的 `pcap_interface`(例如 `virbr0`, `vboxnet0`)。
### 4. 引爆样本
将恶意可执行文件放入 `./samples/` 并运行编排器:
```
python main.py samples/WannaCry.exe
```
编排器将输出指示阶段进度的终端日志。完成后,检查 `./reports/` 文件夹以获取 JSON/PDF 结果。
### 5. 启动仪表板
要快速查看分析报告,请启动 Flask 仪表板:
```
# 如果 Stage 6 已完成/跳过,请手动运行 dashboard
python -m flask --app dashboard/app run
```
访问仪表板地址 `http://127.0.0.1:5000/`。
## 🛡️ 安全免责声明
**请勿在您的物理主机上运行此程序。**
本软件旨在自动执行恶意软件。它假设您已正确配置了隔离的主机环境和安全的网络网桥。配置错误可能导致恶意软件感染您的主机或传播到本地网络。请严格在分析实验室内使用。
标签:DAST, HTTP工具, IOC 生成, IP 地址批量处理, PCAP 网络抓包, PE/ELF 分析, Python, SecList, YARA 规则, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 内存取证, 威胁情报, 安全工具开发, 开发者工具, 恶意样本检测, 恶意软件分析, 无后门, 沙箱, 注册表监控, 环境隔离, 网络安全审计, 自动化沙箱, 虚拟机管理, 行为监控, 逆向工具, 逆向工程, 静态分析