mdrahatrahmanakas/malware-sandbox

GitHub: mdrahatrahmanakas/malware-sandbox

一个模块化的恶意软件分析框架,整合了 Cuckoo Sandbox 动态分析、YARA 静态检测和 IOC 提取,通过统一流水线生成结构化报告并提供 Web 仪表板。

Stars: 0 | Forks: 0

# MalSandbox **一个模块化、基于 Docker 的恶意软件分析框架,集成了 Cuckoo Sandbox 自动化、FLARE VM 工具集、行为监控以及实时报告仪表板。** ![Python](https://img.shields.io/badge/Python-3.11+-blue?style=flat-square&logo=python) ![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?style=flat-square&logo=docker) ![License](https://img.shields.io/badge/License-MIT-green?style=flat-square) ![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20Windows-lightgrey?style=flat-square) ![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/50a02ec1cf002401.svg) ## 概述 MalSandbox 提供了一个完整的流水线,用于安全地引爆、监控和报告恶意文件。它封装了 Cuckoo Sandbox 的 REST API 以实现自动化提交工作流,通过 YARA 规则匹配丰富分析结果,并通过本地 Web 仪表板以及结构化 JSON 报告展示发现的结果。 ``` [Sample Input] → [Static Analysis] → [Detonation (Cuckoo/VM)] → [Behavioral Monitor] → [Report Generator] → [Dashboard] ``` ## 架构 ``` malware-sandbox/ ├── src/ │ └── analyzer/ │ ├── __init__.py │ └── submit.py # Core analysis engine: hashing, static analysis, IOC extraction, scoring ├── tests/ │ └── unit/ │ └── test_analyzer.py # 20 unit tests covering hashing, static analysis, IOC extraction, scoring ├── dashboard/ # Web UI for viewing analysis results ├── scripts/ # Setup and automation scripts ├── docs/ # Documentation ├── docker-compose.yml # Full service stack definition ├── conftest.py # Pytest path configuration ├── pyproject.toml # Build and tool configuration ├── requirements.txt # Python dependencies ├── samples/quarantine/ # Isolated sample storage (gitignored) ├── logs/ # Runtime logs (gitignored) └── reports/output/ # Generated reports (gitignored) ``` ## 快速开始 ### 前置条件 - Python 3.11 或更高版本 - Docker 和 Docker Compose v2(用于完整技术栈) - `libmagic` 系统库 (`apt-get install libmagic1`) - 建议最低 8 GB RAM ### 1. 克隆并安装 ``` git clone https://github.com/mdrahatrahmanakas/malware-sandbox.git cd malware-sandbox python3 -m venv venv && source venv/bin/activate pip install -r requirements.txt ``` ### 2. 提交样本(静态分析) ``` python src/analyzer/submit.py --file samples/test.exe --mode static ``` ### 3. 提交并进行完整引爆(需要 Cuckoo) ``` python src/analyzer/submit.py --file samples/test.exe --mode full --timeout 120 ``` ### 4. 查看结果 访问 `http://localhost:8080` 以访问分析仪表板(需要 Docker 技术栈)。 ## 分析模式 | 模式 | 描述 | 后端 | |-----------|--------------------------------------|-----------------------------------| | `static` | PE 分析, 字符串提取, YARA | python-magic, pefile, yara-python | | `dynamic` | 在隔离 VM 中完整引爆 | Cuckoo Sandbox | | `full` | 静态 + 动态组合(默认) | Combined | ## 功能特性 - **多格式支持** — PE, ELF, Office 宏, PDF, 脚本 (.ps1, .bat, .vbs), APK - **Cuckoo Sandbox 集成** — 自动化任务提交、状态轮询和结果摄取 - **YARA 规则** — 可配置的规则集路径,支持自定义规则 - **IOC 提取** — IP, 域名, URL, 文件哈希, 注册表键, 互斥体(包括 NT native API) - **评分引擎** — 启发式 0–10 恶意评分,包含 CLEAN / SUSPICIOUS / MALICIOUS 判定结果 - **REST API** — 基于 Flask 的 API,用于编程式样本提交和结果检索 - **分析仪表板** — 基于浏览器的查看器,用于展示所有分析发现 ## 运行测试 ``` # 安装 dev dependencies pip install pytest pytest-cov ruff mypy # 运行所有 20 个单元测试 pytest tests/unit/ -v # Run with coverage pytest tests/unit/ -v --cov=src --cov-report=term-missing # Lint ruff check src/ tests/ # Type check mypy src/ --ignore-missing-imports --exclude src/analyzer/submit.py ``` ## 示例报告输出 ``` { "sample": "test.exe", "verdict": "MALICIOUS", "score": 8.4, "static": { "hashes": { "md5": "d41d8cd98f00b204e9800998ecf8427e", "sha256": "e3b0c44298fc1c149..." }, "file_type": "PE32 executable", "size": 204800, "yara_matches": ["ransomware_generic"], "pe_info": { "is_packed": true } }, "iocs": { "ips": ["185.220.101.1"], "domains": ["evil-c2.example.com"], "mutexes": ["\\Global\\infected_mutex"], "registry_keys": ["HKCU\\Software\\Run\\loader"] } } ``` ## 环境变量 | 变量 | 默认值 | 描述 | |--------------------|---------------|------------------------------------| | `CUCKOO_HOST` | `127.0.0.1` | Cuckoo API 主机 | | `CUCKOO_PORT` | `8090` | Cuckoo API 端口 | | `CUCKOO_API_TOKEN` | _(空)_ | 用于 Cuckoo 认证的 Bearer token | | `YARA_RULES_PATH` | `config/rules/yara/` | YARA 规则文件路径 | | `REPORTS_DIR` | `reports/output/` | 报告输出目录 | | `LOG_LEVEL` | `INFO` | 日志详细程度 | ## 法律与负责任的使用 本工具仅用于**授权的安全研究、事件响应和教育目的**。 - 始终在隔离的、空气间隙(air-gapped)的网络环境中运行 - 未经明确授权,切勿将活体样本提交至公共 API - 将所有样本存储在 `samples/quarantine/` 下,并在静态存储时加密 - 在分析敏感样本之前,请咨询您组织的安全策略 - 作者不对本软件的滥用承担任何责任 ## 许可证 基于 MIT 许可证发布。有关完整条款,请参阅 [LICENSE](LICENSE)。
标签:ATT&CK框架, Beacon Object File, Cuckoo Sandbox, DAST, DNS信息、DNS暴力破解, Docker容器, FLARE VM, FTP漏洞扫描, IP 地址批量处理, PB级数据处理, Python安全工具, YARA规则, 云安全监控, 仪表盘, 后渗透, 威胁情报, 安全编排, 安全规则引擎, 安全运维, 开发者工具, 恶意软件分析, 插件系统, 搜索语句(dork), 攻击面发现, 无线安全, 样本分析, 沙箱技术, 流量嗅探, 网络安全, 网络安全审计, 网络测绘, 行为监控, 请求拦截, 逆向工具, 隐私保护, 静态分析