Kantosaurus/Malware-Analysis-Sandbox

GitHub: Kantosaurus/Malware-Analysis-Sandbox

跨平台恶意软件静态与动态分析沙箱,在 Docker 隔离环境中完成行为监控、网络捕获、内存取证并自动生成报告。

Stars: 0 | Forks: 0

# 恶意软件分析沙箱 一个用于跨多平台恶意软件静态和动态分析的恶意软件分析沙箱。 ## 功能 - **多平台支持**:分析 Windows PE 文件、Linux ELF 二进制文件、脚本(PowerShell、JavaScript、Python)以及文档(Office、PDF) - **静态分析**:文件哈希、PE/ELF 解析、字符串提取、YARA 扫描、熵分析、加壳检测 - **动态分析**:在 Docker 容器中隔离执行,进行行为监控、API 追踪和系统调用跟踪 - **网络分析**:数据包捕获(PCAP)、协议分析、DNS 日志、IOC 提取(IP、域名、URL) - **内存取证**:使用 Volatility 3 创建和分析内存转储 - **威胁情报**:集成 VirusTotal、MISP、AlienVault OTX 和 abuse.ch 订阅源 - **AI/ML 检测**:集成分类器、异常检测、相似性分析以及由 LLM 驱动的报告。包含训练工具(`train_all.sh`、`QUICKSTART_ML_TRAINING.md`);**本仓库不提供已训练的权重**,且不保证任何准确率。 - **自动化报告**:生成包含 MITRE ATT&CK 映射的 JSON、HTML 和 PDF 格式的综合报告 - **可扩展架构**:基于 Celery 的任务队列,用于并行分析执行 - **丰富的 CLI 界面**:具有实时进度更新的美观命令行界面 ## 架构 ``` CLI (Click + Rich) ↓ FastAPI (Internal Orchestration) ↓ Celery Task Queue (Redis) ↓ ┌─────────┬──────────┬────────────┬─────────┬─────────┬──────────┐ │ Static │ Dynamic │ Network │ Memory │ Threat │ Report │ │ Analysis│ Analysis │ Capture │ Analysis│ Intel │ Gen │ └─────────┴──────────┴────────────┴─────────┴─────────┴──────────┘ ↓ Docker Containers (Isolated Sandboxes) ↓ PostgreSQL Database + Redis Cache ``` ## 环境要求 - Python 3.11+ - Docker 和 Docker Compose - PostgreSQL 14+ - Redis 7+ ## 安装说明 1. 克隆仓库: ``` git clone https://github.com/Kantosaurus/Malware-Analysis-Sandbox.git cd Malware-Analysis-Sandbox ``` 2. 安装 Python 依赖: ``` pip install -r requirements.txt ``` 3. 复制并配置环境变量: ``` cp .env.example .env # 使用您的配置编辑 .env ``` 4. 启动基础服务(PostgreSQL、Redis): ``` docker-compose up -d ``` 5. 初始化数据库: ``` python scripts/init_database.py ``` 6. 安装 CLI 工具: ``` pip install -e . ``` 7. **训练 ML 模型**(AI/ML 功能必需): ``` # Windows train_all.bat # Linux/Mac chmod +x train_all.sh ./train_all.sh ``` 此步骤将生成合成测试数据并训练所有 ML 模型(约 5 分钟)。详情请参阅 [QUICKSTART_ML_TRAINING.md](QUICKSTART_ML_TRAINING.md)。 ## 快速开始 ### 分析样本 ``` # 分析 PE 文件 malware-sandbox analyze suspicious.exe # 仅使用静态分析进行分析 malware-sandbox analyze malware.dll --static-only # 指定输出格式 malware-sandbox analyze sample.exe --output pdf ``` ### 检查分析状态 ``` # 检查状态 malware-sandbox status # 实时跟踪分析 malware-sandbox status --follow ``` ### 生成报告 ``` # 生成 PDF 报告 malware-sandbox report --format pdf --output report.pdf # 生成 HTML 报告 malware-sandbox report --format html ``` ### 列表与搜索 ``` # 列出最近的扫描分析 malware-sandbox list --limit 10 # 按 hash 搜索 malware-sandbox search --hash sha256:abc123... # 按 IOC 搜索 malware-sandbox search --ioc 192.168.1.1 ``` ## CLI 命令 | 命令 | 描述 | |---------|-------------| | `analyze ` | 提交样本进行分析 | | `status ` | 检查分析状态 | | `report ` | 生成分析报告 | | `list` | 列出近期的分析 | | `search` | 通过哈希/IOC 搜索分析记录 | | `config` | 管理配置 | | `yara` | 管理 YARA 规则 | | `server` | 启动/停止后台服务 | ## 配置 `.env` 中的关键配置选项: ``` # Database DATABASE_URL=postgresql://user:pass@localhost:5432/malware_sandbox # Redis REDIS_URL=redis://localhost:6379/0 # Docker DOCKER_HOST=unix:///var/run/docker.sock ANALYSIS_TIMEOUT=300 # Threat Intelligence VIRUSTOTAL_API_KEY=your_key_here MISP_URL=https://misp.local MISP_API_KEY=your_key_here # Analysis Settings MAX_CONCURRENT_ANALYSES=5 ENABLE_MEMORY_ANALYSIS=true ENABLE_NETWORK_CAPTURE=true ``` ## 安全注意事项 - 所有恶意软件样本在静态存储时均使用 AES-256 进行加密 - 分析容器运行在无互联网访问的隔离 Docker 网络中 - 容器文件系统在可能的情况下设为只读 - 所有操作均被记录以供审计 - API endpoint 受 JWT 身份验证和速率限制保护 ## 项目结构 ``` malware-analysis-sandbox/ ├── src/ # Source code │ ├── cli/ # CLI interface │ ├── api/ # FastAPI application │ ├── core/ # Orchestration engine │ ├── analyzers/ # Analysis modules │ ├── ml/ # Machine learning models │ ├── vm/ # Docker management │ ├── network/ # Network analysis │ ├── memory/ # Memory forensics │ ├── intelligence/ # Threat intelligence │ ├── reporting/ # Report generation │ ├── models/ # Database models │ └── utils/ # Utilities ├── scripts/ # Training and utility scripts ├── docker/ # Docker configurations ├── database/ # Database migrations ├── rules/ # YARA rules ├── storage/ # Sample and report storage │ ├── ml_models/ # Trained ML models │ ├── ml_data/ # Training datasets │ └── samples/ # Malware samples ├── tests/ # Test suite └── docs/ # Documentation ``` ## 开发 运行测试: ``` pytest tests/ -v --cov=src ``` 运行 linter: ``` flake8 src/ black src/ ``` ## 文档 - **快速开始**:[ML 训练快速开始](QUICKSTART_ML_TRAINING.md) - **指南**: - [架构指南](docs/architecture.md) - [用户指南](docs/user_guide.md) - [部署指南](docs/deployment.md) - [ML 训练指南](docs/TRAINING.md) - [AI/ML 功能](docs/AI_ML_FEATURES.md) - **API 参考**:[API 文档](docs/api_reference.md) ## 许可证 本项目基于 MIT 许可证授权 - 详情请参阅 LICENSE 文件。 ## 免责声明 本工具仅供授权的安全测试、恶意软件研究和教育目的使用。用户有责任遵守所有适用的法律法规。作者不对滥用本软件承担任何责任。 ## 致谢 本项目使用了以下开源工具和库: - pefile、pyelftools - 二进制解析 - YARA - 特征码扫描 - Volatility 3 - 内存取证 - Frida - 动态插桩 - Scapy - 网络分析 - 以及许多其他工具(见 requirements.txt)
标签:AV绕过, DAST, DNS 反向解析, FastAPI, SecList, 云安全监控, 内存取证, 合规性检查, 威胁情报, 安全沙箱, 开发者工具, 恶意软件分析, 搜索引擎查询, 测试用例, 网络信息收集, 请求拦截, 逆向工具, 静态分析