Zhaxstronaut/seed_and_vine
GitHub: Zhaxstronaut/seed_and_vine
面向 MITRE Caldera 的神经符号 AI 对手模拟插件,在结构化 kill chain 框架内实现自主攻击规划并内置人工审批与数据脱敏等安全控制。
Stars: 0 | Forks: 0
# Seed & Vine
**用于 MITRE CALDERA 的自主对手模拟,由神经符号 AI 引擎驱动。**
Seed & Vine 是一个 CALDERA v4 插件,它接收人类操作员的任务目标,对已部署的 agent 执行自动化侦察,然后自主执行完整的 ATT&CK kill chain,搜索包含 2000 多种技术的语义库(Seed),按需生成新技术(Vine),并在每次执行高风险操作前暂停以等待人工批准。
## 核心功能
| 能力 | 详情 |
|---|---|
| **自主 kill chain 规划** | 三层 FSM 驱动 发现 → 权限提升 → 防御规避 → 凭据访问 → 数据收集 → 数据窃取,无需手动选择战术 |
| **语义能力搜索** | ChromaDB + ONNX embeddings 为每个已加载的 CALDERA ability 建立索引;AI 通过自然语言目标进行搜索,而不是通过 ability ID |
| **按需生成 ability** | 当现有 ability 不适合某项任务时,`SeedVineFactory` 会在运行时合成新的兼容 CALDERA 的 YAML ability |
| **Human-in-the-loop 审批门控** | 高风险战术(权限提升、凭据访问、数据窃取)会暂停操作,并等待操作员批准(最多等待 30 分钟) |
| **PII 脱敏** | 主机名、用户名、IP 地址和域名在到达任何 LLM 之前会被替换为化名;只追加账本会记录每一次替换 |
| **多提供商 LLM 轮换** | Anthropic Claude 和 Google Gemini 提供商池采用滑动窗口速率限制;当提供商受到速率限制时,规划器会透明地进行故障转移 |
| **Anthropic prompt 缓存** | 工具定义和 system prompts 通过 LiteLLM 进行缓存控制;缓存读取的成本约为完整推理的 10% |
| **威胁行为者模拟** | APT41 (G0096) 和 Lazarus Group (G0032) 的 TTP 配置文件驱动默认战术排序和数据窃取方法优先级 |
| **MLflow 实验跟踪** | 每次操作都记录为一次 MLflow run(本地 SQLite 后端),包含完整的执行历史 |
| **实时 SSE 控制台** | Vue.js 操作员控制台通过 Server-Sent Events 实时流式传输 AI 推理、工具调用、阶段转换、审批请求和化名事件 |
## 为什么选择 Seed & Vine?
### 问题所在
MITRE CALDERA 的官方 MCP 插件实现了 AI 驱动的 ability 选择和执行。促使本研究的四个缺口包括:
| 缺口 | 问题 |
|---|---|
| **基础设施数据隐私** | Agent 主机名、用户名和 IP 地址以原始形式传递给外部 LLM API,从而将网络拓扑泄露给第三方提供商。 |
| **无拒绝记忆或人类否决权** | 操作员可以观察但不能拒绝特定的方法。被拒绝的决策不会反馈给规划器,因此相同的策略会重复出现。 |
| **无紧急停止机制** | 没有一种机制可以在执行过程中中途停止正在进行的操作而不杀死 CALDERA 进程。 |
| **非结构化 AI 自主性** | AI 可以按任意顺序提出任何 ability:没有 kill chain 排序,没有阶段护栏,也没有迭代次数上限。 |
### 缺口分析
现有的自动化红队工具(PentestGPT、PentestAgent、VulnBot、AutoRedTeamer)仅解决了该领域的部分问题:LLM 引导的规划、工具调用封装或自动化漏洞链。这些工具都无法在一个可扩展的对手模拟平台中,同时强制执行结构化的 kill chain、将高风险操作交由人工批准,并保护网络拓扑免受外部 LLM 的探测。
### 解决方案
| 缺口 | 机制 |
|---|---|
| 基础设施数据隐私 | `PseudonymManager` 在任何 LLM 调用之前将所有主机标识符替换为不透明 token;只追加审计账本记录每一次替换 |
| 人类控制与拒绝记忆 | `asyncio.Event` 审批门控在高风险操作前停止执行;被拒绝的方法存储在 `rejection_memory` 中,并注入到随后的每一个 prompt 中 |
| 紧急停止 | `POST /api/stop` 在循环中取消正在运行的 asyncio 任务;清理操作会移除所有临时的 CALDERA 操作和 adversaries |
| Kill chain 执行 | 三层 FSM(`SeedVineService` → `KillChainGovernor` → `TaskState`)强制执行 ATT&CK 阶段排序并限制总迭代次数 |
### 适用范围
Seed & Vine 展示了神经符号架构(在具有基于规则护栏的确定性 FSM 之上分层 LLM 规划)如何通过结构化的安全控制实现自适应对手模拟。它适用于:
- 探索 AI 辅助对手模拟架构的安全研究人员
- 评估 AI agent 的 human-in-the-loop 控制机制的红队
- 研究神经符号 AI 在网络安全中应用的学者
它**不是**成熟平台的替代品,尚未针对生产基础设施进行验证,并且未实现横向移动、持久化或影响阶段。
## 架构概述
```
Operator (Vue.js GUI)
│ REST / SSE
▼
seed_vine_api.py ←─── 21 HTTP routes + SSE stream
│
▼
seed_vine_svc.py ←─── Layer 1: Operation FSM
(SeedVineService) state, approval gate, SSE, cleanup
│
▼
kill_chain_governor.py ←─── Layer 2: Adaptive Planning FSM
(KillChainGovernor) reason → execute → validate → adapt
│
▼
task_state.py ←─── Layer 3: Per-task lifecycle
(TaskState) not_started → in_progress → completed
│
┌────┴────────────────────────────┐
▼ ▼
seed_vine_planner_client.py ability_executor.py
DSPy ReAct (max_iters=10) CALDERA link injection
+ MCP subprocess temp adversary → operation
+ provider rotation → link → poll → harvest
│
▼
seed_vine_server.py ←─── 11 FastMCP tools
search_*_ability_library (search, execute, propose,
execute_existing_ability store_fact, signal_*)
propose_new_ability
│
▼
ability_index.py ←─── ChromaDB (ONNX embeddings)
semantic search persisted to data/.chroma_index/
tactic filter built once, mmap reads
```
操作控制器(`SeedVineService`)持有一个 `asyncio.Lock`:一次只能运行一个操作;并发的启动请求会立即返回错误。`asyncio.Event` 实现了审批门控:coroutine 会在原地暂停且不丢失状态,同时等待操作员的 `APPROVE` 或 `REJECT` 指令。
## 支持的威胁行为者
### APT41 (Double Dragon), MITRE G0096
中国国家安全部承包商组织。以混合间谍活动和出于经济动机的行动为特征。
默认数据窃取优先级:**Cloudflare C2 → DNS Tunneling → OneDrive**
### Lazarus Group (HIDDEN COBRA), MITRE G0032
朝鲜侦察总局下属单位。以长期潜伏和出于经济动机的入侵而闻名。
默认数据窃取优先级:**Direct C2 Channel → SMTP Email → Dropbox**
## 内置 Abilities
| 战术 | ATT&CK ID | 名称 | 风险 |
|---|---|---|---|
| discovery | T1082 | SV Pre-Operation Reconnaissance | 低(专用路径) |
| exfiltration | T1041 | Lazarus - Direct C2 Channel | 严重 |
| exfiltration | T1041 | APT41 - Cloudflare C2 Channel | 严重 |
| exfiltration | T1048.001 | APT41 - DNS Tunneling Exfiltration | 严重 |
| exfiltration | T1567.002 | Lazarus - Dropbox Cloud Storage | 严重 |
| exfiltration | T1567.002 | APT41 - OneDrive Cloud Storage | 严重 |
| exfiltration | T1048.003 | Lazarus - SMTP Email Exfiltration | 严重 |
发现(Discovery)通过专用代码路径(`_run_discovery_ability`)运行,该路径完全绕过了 RISK_MATRIX 审批门控;它不受 `auto_approve` 标志的限制。无论选择哪种威胁行为者,所有的 exfiltration ability 都需要明确的操作员批准。
## 快速开始
```
# 1. 克隆 CALDERA(如果您尚未完成)
git clone https://github.com/mitre/caldera.git --recursive
cd caldera
# 2. 安装 CALDERA 核心依赖
pip install -r requirements.txt
# 3. 安装 Seed & Vine 依赖
pip install -r plugins/seed_and_vine/requirements.txt
# 4. 配置 secrets
cp plugins/seed_and_vine/.env.example plugins/seed_and_vine/.env
# 编辑 .env,设置 CALDERA_API_KEY 和至少一个 LLM provider 密钥
# 5. 启动 CALDERA(dev mode)
python server.py --insecure
# 6. 打开操作员控制台
# http://localhost:8888/plugin/seed_and_vine/gui
# 7. MLflow 实验追踪
# http://localhost:5000
```
有关包括 agent 部署、fact source 配置和提供商设置在内的完整演练,请参阅 [INSTALL.md](INSTALL.md)。
## 文档
| 文档 | 内容 |
|---|---|
| [INSTALL.md](INSTALL.md) | 完整的安装指南、前置条件、首次运行验证 |
| [ARCHITECTURE.md](ARCHITECTURE.md) | 每个组件的技术深入剖析:FSM 层、DSPy signatures、MCP 工具、PII 脱敏 |
| [CONFIGURATION.md](CONFIGURATION.md) | 每个配置选项及实际默认值:`.env`、`llm_providers.yaml`、`sv-facts.yml`、风险矩阵 |
| [CONTRIBUTING.md](CONTRIBUTING.md) | 如何添加威胁行为者、abilities 和 exfil 方法;开发工作流程 |
## 环境要求
| 依赖项 | 版本 | 用途 |
|---|---|---|
| Python | ≥ 3.10 | Runtime |
| MITRE CALDERA | v4.x | 平台 |
| dspy-ai | 3.1.2 | ReAct 规划器、ChainOfThought 推理器 |
| chromadb | 1.5.0 | 语义能力搜索 |
| mcp | 1.26.0 | MCP 工具服务器 (FastMCP) |
| mlflow | 3.8.1 | 实验跟踪 |
| anthropic | 0.77.0 | Claude API 客户端 |
| google-generativeai | 0.8.6 | Gemini API 客户端 |
| litellm | 1.81.3 | 统一 LLM 接口 + 缓存钩子 |
| aiohttp | 3.13.3 | 异步 HTTP(CALDERA API 调用) |
完整的依赖版本锁定列表:[`requirements.txt`](requirements.txt)
## 状态与报告
Seed & Vine 是一个研究概念验证,而非生产就绪工具。它作为参考实现被开源共享。
发现 Bug、有疑问或想做出贡献?请在 [Issues](https://github.com/Zhaxstronaut/seed_and_vine/issues) 页面提交 issue。欢迎提交 Pull requests,详情请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
本插件采用与 MITRE CALDERA 相同的 Apache 2.0 许可证发布。
标签:AI自动化攻防, ATT&CK框架, CNCF毕业项目, MITRE Caldera, PE 加载器, Web报告查看器, 无线安全, 网络安全, 自动化渗透测试, 计算机取证, 逆向工具, 隐私保护