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规则, 云安全监控, 云资产清单, 威胁情报, 开发者工具, 恶意软件分析, 数据包嗅探, 无线安全, 样本分析, 沙箱系统, 注册表监控, 流量捕获, 用户模拟, 病毒检测, 网络信息收集, 网络拓扑, 自动化分析, 自动生成报告, 虚拟化技术, 行为监控, 跨站脚本, 逆向工具, 逆向工程, 静态分析