nhungnayyy-max/Advanced-Malware-Sandbox
GitHub: nhungnayyy-max/Advanced-Malware-Sandbox
一套基于 VirtualBox 的自动化恶意软件分析沙箱系统,通过静态与动态分析相结合的方式提供样本行为洞察,并自动映射 MITRE ATT&CK 矩阵。
Stars: 0 | Forks: 0
# 专业恶意软件沙箱分析系统
深度自动化恶意软件分析系统(Automated Malware Analysis System)旨在通过静态分析、动态分析和网络监控,对可疑文件提供全面深入的洞察。
## 1. 系统架构与处理流程
系统基于 **Host-Guest(主机-虚拟机)** 模型运行,以确保物理环境的绝对安全:
1. **Host(调度主机)**:
- 接收样本后立即执行静态分析(Static Analysis)。
- 通过 `VBoxManage` 命令控制 VirtualBox,管理虚拟机的生命周期。
- 启动 Sniffer 模块以捕获 PCAP 网络数据包。
- 汇总来自 Guest 的数据,分析行为并生成 HTML/JSON 报告。
2. **Guest(Windows 虚拟机)**:
- 完全隔离的环境(Host-only networking)。
- **Agent(API Server)**: 在虚拟机内后台运行,监听来自 Host 的指令。
- **User Simulator**: 模拟用户行为(鼠标/点击)的模块,用于激活恶意软件。
- **Behavior Monitor**: 实时监控进程、文件、Registry 的模块。
### 详细处理流程(Workflow):
1. **接收**: 用户通过 `run_analysis.py` 命令提交样本文件。
2. **静态分析**: 系统执行 YARA 扫描、计算 Hash、分析 PE 结构、提取 Strings 和 Resources。
3. **环境准备**: Host 下令将虚拟机恢复到名为 `Clean` 的 Snapshot。
4. **激活 Sniffer**: Host 开始监听虚拟机的网络接口。
5. **传输与执行**: Host 通过 Agent 的 API 将样本文件发送到 Guest。Agent 启动恶意软件。
6. **监控与交互**: Guest 记录行为、截屏并运行鼠标模拟模块。
7. **连接 Cuckoo(可选)**: 与上述过程同时,样本通过 API 被推送到外部的 Cuckoo Sandbox 服务器。
8. **收集**: 超时后,Host 从 Agent 获取行为日志和屏幕截图。
9. **分析与报告**: Host 合并 Local + Cuckoo 结果,进行 MITRE ATT&CK 映射、评分并导出报告。
## 2. 深度功能特性
### 2.1 静态分析
由 [static_analyzer.py](file:///d:/PythonProject2/analyzer/static_analyzer.py) 模块执行:
- **标识信息**: MD5, SHA1, SHA256。
- **PE Deep Dive**:
- **Sections**: 计算各部分的 Entropy 以检测 Packing/Encryption。
- **Imports**: 识别通常用于 Process Injection、Network Communication 的敏感 Windows API 函数。
- **Resources**: 提取 Icons, Manifests, Version Information。
- **YARA Scanning**: 自动扫描 `rules/` 目录下的所有规则(例如:检测挖矿、勒索软件)。
- **Strings Extraction**: 搜索机器码中隐藏的 URL、IP 地址、文件路径。
### 2.2 动态分析
由 Guest 内的 [agent.py](file:///d:/PythonProject2/agent/agent.py) 执行:
- **Process Tree**: 使用 PID 和 PPID 构建进程关系图(例如:`explorer.exe` -> `malware.exe` -> `cmd.exe`)。
- **File System Monitoring**: 监控在 `%TEMP%`, `%APPDATA%` 等位置创建、删除、修改文件的行为。
- **Registry Tracking**: 监控系统启动项 Registry 键(`Run`, `RunOnce`)以检测 Persistence 机制。
- **Network Capture (PCAP)**: Host 使用 `scapy` 将所有网络流量保存为 `.pcap` 文件,可用 Wireshark 打开。
- **Visual Tracking**: 每隔 15 秒自动对虚拟机进行截屏。
### 2.3 反逃逸机制
- **Anti-VM Detection**: 检测恶意软件是否试图查找虚拟化进程(VirtualBox, VMware)或特征 Registry 键。
- **Human Simulation**: 模块移动鼠标并随机点击,以绕过仅在真实用户存在时才运行的恶意软件。
### 2.4 MITRE ATT&CK™ 映射
[behavior_analyzer.py](file:///d:/PythonProject2/analyzer/behavior_analyzer.py) 模块自动将行为分类到国际攻击矩阵中:
- **Execution (T1059)**: 当检测到通过 Shell 执行命令时。
- **Persistence (T1547)**: 当检测到修改 Startup Registry 时。
- **Privilege Escalation (T1055)**: 当检测到 Process Injection 函数时。
## 3. 集成 Cuckoo Sandbox (Cuckoo Integration)
系统提供 [cuckoo_client.py](file:///d:/PythonProject2/utils/cuckoo_client.py) 模块以集成来自专业 Cuckoo 服务器的报告。
### 工作原理:
1. **提交样本**: 使用 `--cuckoo` 参数运行命令时,系统会同时将样本文件推送到 Cuckoo REST API (`/tasks/create/file`)。
2. **轮询**: 模块将持续检查 Cuckoo 上的任务状态 (`/tasks/view/id`),直到状态变为 `reported`。
3. **获取报告**: 系统从 Cuckoo 下载完整的 JSON 报告 (`/tasks/report/id/json`)。
4. **合并**: 来自 Cuckoo 的所有数据将被嵌入到项目的 JSON 总文件中,帮助您获得多维视角(Local Sandbox + Cuckoo Sandbox)。
### Cuckoo 配置:
在 [config.py](file:///d:/PythonProject2/config.py) 文件中:
- `CUCKOO_ENABLED = True`: 默认为每次运行启用。
- `CUCKOO_API_URL`: Cuckoo 的 API 地址(默认:`http://localhost:8090/api`)。
- `CUCKOO_API_TOKEN`: 如果 Cuckoo 服务器要求认证,则需提供安全令牌。
## 4. 代码库各组件详情
- **[agent.py](file:///d:/PythonProject2/agent/agent.py)**: 运行在虚拟机内。使用 Flask 作为 API 服务器供 Host 调度。集成了用户模拟和文件监控模块。
- **[controller.py](file:///d:/PythonProject2/host/controller.py)**: 使用 `VBoxManage` 自动化虚拟机的 Snapshot/Start/Stop 操作。管理通过网络传输文件的任务。
- **[behavior_analyzer.py](file:///d:/PythonProject2/analyzer/behavior_analyzer.py)**: 系统的“大脑”。包含评分逻辑和 MITRE ATT&CK 映射。
- **[static_analyzer.py](file:///d:/PythonProject2/analyzer/static_analyzer.py)**: 使用 `pefile` 和 `yara-python` 库来剖析可执行文件。
- **[network_sniffer.py](file:///d:/PythonProject2/utils/network_sniffer.py)**: 使用 `scapy` 在底层捕获网络数据包。
- **[dashboard.py](file:///d:/PythonProject2/dashboard.py)**: 集中管理报告的 Web 服务器。
## 5. 详细设置指南
### 步骤 1: 设置虚拟机 (Guest - Windows)
1. 在 VirtualBox 中安装 Windows 7 或 10。
2. **网络**: 选择 *Host-only Adapter*。记录虚拟机的 IP 地址。
3. **环境**: 在虚拟机内安装 Python 3.x。
4. **Agent**: 将 `agent/` 目录复制到虚拟机中。
- 运行命令: `pip install flask psutil`。
- 启动 Agent: `python agent.py`。
5. **Snapshot**: 当 Agent 正在运行且虚拟机处于干净状态时,在 VirtualBox 中执行“Take Snapshot”并命名为 **`Clean`**。
### 步骤 2: 设置主机
1. 安装必要的库:
pip install -r requirements.txt
2. **VirtualBox PATH**: 确保 VirtualBox 安装目录(包含 `VBoxManage.exe`)已包含在 Host 的 **PATH** 环境变量中。
3. **配置**: 打开 [config.py](file:///d:/PythonProject2/config.py) 并更新 `VM_NAME`, `VM_AGENT_IP`, 和 `SNIFF_INTERFACE`。
## 6. 操作指南
### 1. 分析恶意软件样本
```
# 内部分析
python run_analysis.py samples/malware.exe
# 内部分析 + 上传至 Cuckoo Sandbox
python run_analysis.py samples/malware.exe --cuckoo
```
*注意:需在 Host 上以 Administrator 权限运行,以便捕获 PCAP 网络数据包。*
### 2. 通过 Web Dashboard 管理报告
启动 Dashboard:
```
python dashboard.py
```
访问: **[http://localhost:5000](http://localhost:5000)** 查看威胁等级统计图表和报告列表。
## 7. 输出结果
- **HTML Report**: `reports/report_*.html` (针对每个样本的详细 Dashboard 界面)。
- **Network PCAP**: `pcaps/capture_*.pcap` (原始网络数据)。
- **Screenshots**: `reports/screenshots/` (行为证据截图)。
- **JSON Data**: `reports/report_*.json` (包含 Local 和 Cuckoo Integration 的数据)。
## 8. 重要安全提示
2. **恢复 Snapshot**: 始终确保每次分析后将虚拟机恢复到 `Clean` 状态,以避免数据交叉感染。
3. **权限**: 部分恶意软件样本可能试图逃逸虚拟机。请始终将 VirtualBox 更新至最新版本。
*本系统旨在用于网络安全教育和研究目的。*
标签:DAST, DNS信息、DNS暴力破解, DNS 反向解析, DNS 解析, Host-Guest架构, HTTP工具, PCAP, PE分析, VirtualBox, YARA规则, 云安全监控, 云资产清单, 威胁情报, 开发者工具, 恶意软件分析, 数据包嗅探, 无线安全, 样本分析, 沙箱系统, 注册表监控, 流量捕获, 用户模拟, 病毒检测, 网络信息收集, 网络拓扑, 自动化分析, 自动生成报告, 虚拟化技术, 行为监控, 跨站脚本, 逆向工具, 逆向工程, 静态分析