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 规则, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 内存取证, 威胁情报, 安全工具开发, 开发者工具, 恶意样本检测, 恶意软件分析, 无后门, 沙箱, 注册表监控, 环境隔离, 网络安全审计, 自动化沙箱, 虚拟机管理, 行为监控, 逆向工具, 逆向工程, 静态分析