AshwinNHacker/Crucible
GitHub: AshwinNHacker/Crucible
Crucible 是一个恶意软件分析沙箱,在隔离 VM 中对样本进行六信号行为监控,并能根据实际观察到的行为自动生成可部署的 Sigma 检测规则。
Stars: 2 | Forks: 0
# Crucible
**一个恶意软件分析沙箱:VM 执行、五信号行为监控、YARA 检测,以及基于实际观察结果自动生成 Sigma 规则。**
架构与 Cuckoo 和 CAPE 等开源沙箱相同:
在隔离的 VM 中执行样本,跨每一个重要的
信号监控其行为,并将观察结果转化为
可操作的信息。Crucible 的独特之处在于最后一步 —— 它
形成了一个闭环,从*“我们看到此样本执行了 X 操作”*到*“这是一条
可部署的 Sigma 规则,可在生产环境遥测中检测 X”*,
这一切都是根据运行产生的实际行为数据自动完成的。
## 重要提示:本仓库包含和不包含的内容
这是真实、有效的分析基础设施 —— 但它**不**
包含真实的恶意软件、可用的 VM 镜像或实时的 API hooking 会话。
**在对任何非您自己编写的目标使用此工具之前,请先阅读
[`docs/THREAT_MODEL.md`](docs/THREAT_MODEL.md)。** 简而言之:
每个监控器都经过了真实实现和独立测试;
整个 pipeline 使用内置的*良性*测试
夹具进行了端到端验证,该夹具模拟了恶意行为模式但不会产生危害,
这与沙箱供应商 QA 自己 pipeline 的方式完全
一致。
## 监控内容
| 信号 | 方式 | 状态 |
|---|---|---|
| **文件** | 基于 `watchdog` 的目录监控 | ✅ 完全测试 |
| **注册表** | 真实的 `winreg` diff (Windows) / 用于跨平台测试的 JSON mock | ✅ Diff 逻辑完全测试 |
| **进程** | 基于 `psutil` 的子进程跟踪 | ✅ 完全测试(存在已知的轮询限制 —— 参见威胁模型) |
| **API 调用** | 真实的 Frida hook 脚本 (CreateFileW, RegSetValueEx, VirtualAllocEx, CreateRemoteThread 等) | ⚠️ 消息解析逻辑已测试;需要实时目标来运行 hook 本身 |
| **网络** | 本地测试服务器请求捕获(演示);生产环境记录了真实的 pcap 捕获 | ✅ 演示路径完全测试 |
| **内存** | `psutil` RSS 增长峰值检测 | ✅ 完全测试(已通过真实的 80MB 内存分配验证) |
| **静态 (YARA)** | 真实的 `yara-python`,带有标签的兜底匹配器 | ✅ 兜底路径完全测试 |
| **检测工程** | 根据观察到的行为自动生成 Sigma YAML 规则(包含 MITRE ATT&CK 标签) | ✅ 完全测试 |
## 架构
有关完整的图表以及演示模式与真实部署背后的逻辑,请参阅
[`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)。
```
controller (Flask API + VM orchestration)
→ guest-agent (wraps target execution with every monitor)
→ yara-rules (static analysis of dropped/submitted files)
→ sigma-generator (auto-generates detection rules from observed behavior)
```
## 快速开始(安全演示模式 —— 无需 VM)
```
cd controller
pip install -r requirements.txt
python app.py # serves on :5010
```
```
curl -X POST http://localhost:5010/analyze -F "demo=true"
# => {"analysis_id": "...", "status": "completed"}
curl http://localhost:5010/report/
```
这会将内置的良性测试目标通过每个监控器运行,使用 YARA
扫描释放的工件,并根据实际观察到的任何行为生成 Sigma 规则
—— 完整的 pipeline,零风险。
或者独立运行每个阶段:
```
# 仅 Guest agent
python guest-agent/agent.py --target test-target/benign_test_behavior.py --demo
# 仅 YARA scan
python yara-rules/yara_scan.py /tmp/crucible_test_dropped_file.txt
# 从已保存的报告生成 Sigma
python guest-agent/agent.py --target test-target/benign_test_behavior.py --demo --out /tmp/report.json
python -c "
import json, sys
sys.path.insert(0, 'sigma-generator')
from generate_sigma import generate_all, to_yaml_documents
report = json.load(open('/tmp/report.json'))
print(to_yaml_documents(generate_all(report)))
"
```
## 示例输出
针对内置测试夹具的一次真实运行会生成这样的规则
—— 请注意 MITRE ATT&CK 标签和(真正必要的,非装饰性的)
误报指导:
```
title: Registry Persistence Write to HKCU\Software\Microsoft\Windows\CurrentVersion\Run\CrucibleTestEntry
level: high
tags:
- attack.persistence
- attack.t1547.001
logsource:
category: registry_event
product: windows
detection:
selection:
TargetObject|contains: HKCU\Software\Microsoft\Windows\CurrentVersion\Run
Details|contains: CrucibleTestEntry
condition: selection
falsepositives:
- Legitimate software installers that register startup entries — verify
the target executable path against known-good software before acting.
```
## 测试
```
# 涵盖 Sigma generator、registry-diff 逻辑的 23 项测试,
# YARA fallback matcher 和 Frida 消息解析
cd crucible
python -m pytest tests/ -v
```
每个监控器在开发过程中也针对真实活动进行了独立验证
—— 真实的 80MB 内存峰值、真实的派生
子进程、真实的文件创建/修改/删除事件,以及向内置的
本地测试服务器发送的真实 HTTP 请求。有关确切的真实测试内容与
需要本仓库未提供的基础设施(真实的 Windows
客户机、实时的 Frida 会话)的内容,请参见 `guest-agent/monitors/` 中的模块 docstring。
## 项目结构
```
controller/ Flask API + VM orchestration
app.py POST /analyze, GET /report/
vm_controller.py Real VBoxManage/virsh commands
guest-agent/ Wraps target execution with every monitor
agent.py Orchestrates one full analysis run
monitors/
file_monitor.py watchdog-based
registry_monitor.py real winreg + cross-platform mock
process_monitor.py psutil-based
api_monitor.py real Frida hook script
network_monitor.py local test-server capture
memory_monitor.py psutil-based
yara-rules/ Static analysis
generic_rules.yar 4 illustrative behavioral rules
yara_scan.py real yara-python + fallback
simple_matcher.py fallback substring matcher
sigma-generator/ Detection engineering
generate_sigma.py Behavior -> deployable Sigma YAML
test-target/ Crucible's own benign QA fixture (NOT malware)
benign_test_behavior.py
local_test_server.py
docs/ Threat model, architecture, VM setup guidance
tests/ 23-test pytest suite
```
## 重要声明
- **本仓库的任何位置均不包含真实的恶意软件。**
- **内置的测试夹具是故意设计为良性的** —— 请参阅其
docstring 和 `docs/THREAT_MODEL.md`。
- **通用的 YARA 规则仅用于说明,是公开已知的指标**
类别,并非生产环境的检测规则集。
- **这是一个作品集/演示项目。** 将其用于真实的
恶意软件样本需要本仓库未提供的真实 VM 基础设施,
并涉及真实的操作和法律考量 —— 在这样做之前,请
完整阅读 `docs/THREAT_MODEL.md`。
## 许可证
MIT
标签:DAST, HTTP工具, Sigma规则, YARA, 云资产可视化, 恶意软件分析, 沙箱, 目标导入, 自动化分析, 行为监控, 跨站脚本, 逆向工具