allsmog/detonate
GitHub: allsmog/detonate
开源自托管恶意软件分析沙箱,提供静态动态分析、威胁情报、AI 报告和 ATT&CK 映射的完整解决方案。
Stars: 0 | Forks: 0
# Detonate
**开源恶意软件分析沙箱** —— [any.run](https://any.run) 的自托管替代方案。
提交文件或 URL,在隔离的 Docker/QEMU 沙箱中执行,并实时观察行为:进程树、网络流量、文件落地、MITRE ATT&CK 映射、AI 驱动的分析等。
```
+------------------+
| Next.js 16 |
| Frontend |
+--------+---------+
|
+--------+---------+
| FastAPI API | 75 endpoints
| (async) | 12 DB tables
+--+----+----+--+--+
| | | |
+------+ +--+--+ | ++-------+
|Postgres|Redis | |MinIO |Ollama
| 16 | 7 | |(S3) |(LLM)
+--------+-----+ +---------++------+
|
+---------+---------+
| Celery Workers |
+--------+----------+
|
+----------+----------+
| Sandbox Machinery |
+-----+----------+----+
|Docker| |QEMU|
|Linux | |Win |
+------+ +----+
```
## 功能特性
### 提交与静态分析
- 文件上传,支持自动哈希计算(SHA256/MD5/SHA1)、类型检测、MIME 识别
- URL 提交 —— 自动获取内容并创建提交
- PE 解析(导入表、导出表、节区、资源、数字签名、可疑指标)
- ELF 头解析(类型、机器架构、入口点)
- 字符串提取(ASCII + UTF-16LE)及 IOC 分类(URL、IP、邮箱、注册表键、文件路径)
- Shannon 熵分析(整体 + 每节区)
- YARA 扫描,内置 26 条规则(可疑字符串、加壳器、恶意软件指标)
### 动态分析(沙箱)
- 基于 Docker 的 Linux 沙箱(Ubuntu 22.04 + strace + tcpdump + YARA)
- 通过 strace clone/clone3 系统调用实现带有父子进程跟踪的进程树
- 网络抓包(PCAP),支持 DNS、TCP/UDP 连接、HTTP 主机提取
- 文件系统监控(通过文件系统差异检测创建/修改/删除的文件)
- 实时 WebSocket 遥测流
- 针对捕获 PCAP 的 Suricata IDS 告警
- 可选截图(Xvfb + scrot)与视频录制(ffmpeg)
- 通过 websockify 的交互式 VNC 会话
- Windows 沙箱基础设施(QEMU/KVM + Sysmon 客户端代理)
- 可配置超时、网络隔离、机器池
### MITRE ATT&CK 映射
- 26 条行为规则,将系统调用模式映射到 ATT&CK 技术
- 可选 LLM 增强分类以提高覆盖率
- 战术覆盖矩阵与置信度评分
- 技术目录浏览与搜索
### 威胁情报
- **VirusTotal** —— 文件哈希、IP、域名信誉
- **AbuseIPDB** —— IP 滥用置信度评分
- **AlienVault OTX** —— 多指标 Pulse 情报
- **URLhaus** —— 恶意 URL/载荷数据库(无需 API 密钥)
- **MalwareBazaar** —— 恶意软件样本情报(无需 API 密钥)
- Redis 支持的缓存(1 小时 TTL)及按提供商的速率限制
### AI 集成
- 提供商无关:**Ollama**(本地/开发)或 **Anthropic Claude**(生产)
- 自动化行为摘要
- 带有判定/评分/置信度的威胁分类
- 具备工具使用能力的自主智能体分析
- 基于完整分析上下文的交互式聊天
- AI 驱动的综合威胁报告
- 基于 IOC 的相似提交关联
### IOC 导出
- 从分析结果中自动提取 IP、域名、URL、哈希、文件路径
- **STIX 2.1** 包导出
- **CSV** 导出(包含类型/值/上下文列)
- **JSON** 结构化导出
### 报告
- AI 生成的 Markdown 威胁报告
- 自包含 HTML 报告(无外部依赖)
- CSV IOC 报告
- 每个提交可下载的报告
### 搜索与仪表板
- 跨哈希、文件名、标签的全文搜索
- 高级过滤器:判定、文件类型、标签、评分范围、日期范围、分析状态
- 支持分页的可排序结果
- 分析仪表板:提交统计、判定分布、时间轴、热门文件类型、热门标签、热门 IOC
### 认证与协作
- JWT 认证 + API 密钥支持
- 用户注册、登录、个人资料管理
- 团队/组织管理及基于角色的成员资格
- 提交评论,支持编辑/删除
- 自动打标签(16 条行为规则 + 文件类型检测)
- Webhook 通知,支持 HMAC-SHA256 签名
### 管理
- YARA 规则管理(通过 API 上传、验证、编辑、删除)
- 机器池管理(扩缩容、健康检查)
- 功能开关及配置状态端点
- Celery 任务监控
## 快速开始
### 前置条件
- Docker & Docker Compose
- Python 3.12+ 及 [uv](https://docs.astral.sh/uv/)
- Node.js 20+ 及 [pnpm](https://pnpm.io/)
### 设置
```
# Clone
git clone https://github.com/allsmog/detonate.git
cd detonate
# 启动基础设施 (PostgreSQL, Redis, MinIO, Ollama)
make services
# 安装依赖,运行 migrations
make setup
# 拉取 AI model
make ollama-pull
# 构建 sandbox Docker 镜像
make sandbox-build
# 启动 API + frontend
make dev
```
应用可通过以下地址访问:
- **前端**: http://localhost:3000
- **API**: http://localhost:8000
- **API 文档**: http://localhost:8000/docs
### 运行 Celery Worker
动态分析需要一个 Celery worker:
```
cd api
PYTHONPATH="$(pwd)/..:$(pwd)" uv run celery -A worker.app:celery_app worker \
-l info -Q dynamic,static,ai,enrichment -c 2
```
### 环境变量
将 `.env.example` 复制到 `.env` 并进行配置:
```
# Required
POSTGRES_PASSWORD=detonate
REDIS_URL=redis://127.0.0.1:6379/0
# AI (任选其一)
LLM_PROVIDER=ollama # or "anthropic"
ANTHROPIC_API_KEY=sk-ant-... # if using Anthropic
# Threat Intelligence (可选,均为免费套餐)
VIRUSTOTAL_API_KEY=...
ABUSEIPDB_API_KEY=...
OTX_API_KEY=...
# Auth (可选)
AUTH_ENABLED=false
JWT_SECRET_KEY=change-me-in-production
# Features (可选)
SCREENSHOTS_ENABLED=false
SURICATA_ENABLED=false
SANDBOX_POOL_ENABLED=false
```
## 系统架构
| 组件 | 技术栈 | 用途 |
|-----------|------|---------|
| **API** | FastAPI (Python 3.12) | 75 个 REST 端点, WebSocket 遥测, SSE 流 |
| **Frontend** | Next.js 16, React 19, Tailwind 4, shadcn/ui v4 | 支持实时更新的 SPA |
| **Database** | PostgreSQL 16, SQLAlchemy 2.0 async, Alembic | 12 张表, JSONB 存储结果 |
| **Storage** | MinIO (兼容 S3) | 样本、PCAP、截图、视频 |
| **Cache/Broker** | Redis 7 | Celery broker, 威胁情报缓存, 速率限制, pub/sub |
| **Workers** | Celery | 动态分析、AI 任务、威胁情报富化 |
| **AI** | Ollama / Anthropic Claude | 摘要、分类、聊天、报告 |
| **Linux Sandbox** | Docker (Ubuntu 22.04) | strace, tcpdump, YARA, Xvfb, scrot, ffmpeg, x11vnc |
| **Windows Sandbox** | QEMU/KVM + libvirt | Sysmon 监控, HTTP guest agent |
| **IDS** | Suricata | 使用 ET Open 规则进行离线 PCAP 分析 |
## API 概览
```
POST /api/v1/submit File upload
POST /api/v1/submit-url URL submission
GET /api/v1/submissions List submissions
GET /api/v1/submissions/{id} Get submission
GET /api/v1/submissions/{id}/static Static analysis (PE/ELF/strings/entropy)
POST /api/v1/submissions/{id}/analyze Start dynamic analysis
GET /api/v1/submissions/{id}/analyses/{id} Get analysis results
POST /api/v1/submissions/{id}/analyses/{id}/mitre MITRE ATT&CK mapping
GET /api/v1/submissions/{id}/threat-intel Threat intel enrichment
GET /api/v1/submissions/{id}/iocs Extract IOCs
GET /api/v1/submissions/{id}/iocs/stix STIX 2.1 export
POST /api/v1/submissions/{id}/ai/summarize AI summarization
POST /api/v1/submissions/{id}/ai/report AI threat report
GET /api/v1/search?q=...&verdict=... Advanced search
GET /api/v1/dashboard/stats Analytics dashboard
POST /api/v1/auth/register User registration
POST /api/v1/auth/login JWT login
...and 60+ more endpoints
```
运行时可在 `/docs` 查看完整的 OpenAPI 文档。
## 开发
```
make api # Start FastAPI dev server (port 8000)
make frontend # Start Next.js dev server (port 3000)
make services # Start Docker infrastructure
make migrate # Run Alembic migrations
make migration msg="description" # Create new migration
make test-api # Run pytest
make lint # Ruff + ESLint
make format # Ruff format + Prettier
make sandbox-build # Build Linux sandbox image
make suricata-build # Build Suricata IDS image
make mitre-pull # Download MITRE ATT&CK dataset
make ollama-pull # Pull Ollama AI model
```
## 许可证
MIT
标签:AI风险缓解, any.run替代, ATT&CK映射, AV绕过, CELERY, DAST, Docker, ELF解析, FastAPI, HTTP工具, IP 地址批量处理, LLM评估, Metaprompt, MinIO, Ollama, PE解析, PostgreSQL, Python, QEMU, Redis, URL分析, YARA, 云安全监控, 云资产可视化, 交互式沙箱, 内联执行, 大模型, 威胁情报, 安全防御评估, 开发者工具, 开源, 异步API, 恶意软件分析, 搜索引擎查询, 数字签名检测, 数据包嗅探, 文件上传, 无后门, 沙箱, 测试用例, 网络信息收集, 网络安全, 网络安全审计, 网络流量分析, 自托管, 请求拦截, 逆向工具, 速率限制处理, 隐私保护, 静态分析