Documentation Index
Fetch the complete documentation index at: https://openclaw.zhcndoc.com/llms.txt
Use this file to discover all available pages before exploring further.
OpenClaw 威胁模型 v1.0
MITRE ATLAS 框架
版本: 1.0-draft
最后更新: 2026-02-04
方法论: MITRE ATLAS + 数据流图
框架: MITRE ATLAS(AI 系统的对抗性威胁环境)
框架归属
本威胁模型建立在 MITRE ATLAS 之上,这是用于记录针对 AI/ML 系统的对抗性威胁的行业标准框架。ATLAS 由 MITRE 与 AI 安全社区共同维护。
ATLAS 关键资源:
为此威胁模型做贡献
这是由 OpenClaw 社区维护的活文档。有关贡献指南,请参见 CONTRIBUTING-THREAT-MODEL.md:
- 报告新威胁
- 更新现有威胁
- 提出攻击链
- 建议缓解措施
1. 简介
1.1 目的
本威胁模型使用专为 AI/ML 系统设计的 MITRE ATLAS 框架,记录针对 OpenClaw AI 代理平台和 ClawHub 技能市场的对抗性威胁。
1.2 范围
| 组件 | 包含 | 备注 |
|---|
| OpenClaw Agent Runtime | 是 | 核心代理执行、工具调用、会话 |
| Gateway | 是 | 身份验证、路由、通道集成 |
| Channel Integrations | 是 | WhatsApp、Telegram、Discord、Signal、Slack 等 |
| ClawHub Marketplace | 是 | 技能发布、审核、分发 |
| MCP Servers | 是 | 外部工具提供方 |
| User Devices | 部分 | 移动应用、桌面客户端 |
1.3 范围外
本威胁模型没有明确排除任何内容。
2. 系统架构
2.1 信任边界
┌─────────────────────────────────────────────────────────────────┐
│ 不可信区域 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ WhatsApp │ │ Telegram │ │ Discord │ ... │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
└─────────┼────────────────┼────────────────┼──────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ 信任边界 1:通道访问 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ GATEWAY │ │
│ │ • 设备配对(DM 1 小时 / 节点 5 分钟宽限期) │ │
│ │ • AllowFrom / AllowList 验证 │ │
│ │ • Token/Password/Tailscale 认证 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 信任边界 2:会话隔离 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 代理会话 │ │
│ │ • 会话键 = agent:channel:peer │ │
│ │ • 每个代理的工具策略 │ │
│ │ • 记录对话转录 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 信任边界 3:工具执行 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 执行沙箱 │ │
│ │ • Docker 沙箱 或 主机(exec-approvals) │ │
│ │ • 节点远程执行 │ │
│ │ • SSRF 防护(DNS 绑定 + IP 阻断) │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 信任边界 4:外部内容 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 获取的 URL / 邮件 / Webhook │ │
│ │ • 外部内容包装(XML 标签) │ │
│ │ • 安全提示注入 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 信任边界 5:供应链 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ CLAWHUB │ │
│ │ • 技能发布(semver,要求 SKILL.md) │ │
│ │ • 基于模式的审核标记 │ │
│ │ • VirusTotal 扫描(即将推出) │ │
│ │ • GitHub 账号年龄验证 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
2.2 数据流
| 流程 | 源 | 目标 | 数据 | 防护 |
|---|
| F1 | Channel | Gateway | 用户消息 | TLS、AllowFrom |
| F2 | Gateway | Agent | 路由后的消息 | 会话隔离 |
| F3 | Agent | Tools | 工具调用 | 策略执行 |
| F4 | Agent | External | web_fetch 请求 | SSRF 阻断 |
| F5 | ClawHub | Agent | 技能代码 | 审核、扫描 |
| F6 | Agent | Channel | 响应 | 输出过滤 |
3. 按 ATLAS 战术进行的威胁分析
3.1 侦察(AML.TA0002)
T-RECON-001:代理端点发现
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0006 - 主动扫描 |
| 描述 | 攻击者扫描暴露的 OpenClaw 网关端点 |
| 攻击向量 | 网络扫描、shodan 查询、DNS 枚举 |
| 受影响组件 | Gateway、暴露的 API 端点 |
| 当前缓解措施 | 可选 Tailscale 认证、默认绑定到回环地址 |
| 残余风险 | 中等 - 公共网关可被发现 |
| 建议 | 记录安全部署方式,在发现端点上添加速率限制 |
T-RECON-002:通道集成探测
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0006 - 主动扫描 |
| 描述 | 攻击者探测消息通道以识别由 AI 管理的账户 |
| 攻击向量 | 发送测试消息,观察响应模式 |
| 受影响组件 | 所有通道集成 |
| 当前缓解措施 | 无特定措施 |
| 残余风险 | 低 - 仅靠发现本身价值有限 |
| 建议 | 考虑对响应时序进行随机化 |
3.2 初始访问(AML.TA0004)
T-ACCESS-001:配对码拦截
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者在配对宽限期内拦截配对码(DM 通道配对为 1 小时,节点配对为 5 分钟) |
| 攻击向量 | 肩窥、网络嗅探、社会工程 |
| 受影响组件 | 设备配对系统 |
| 当前缓解措施 | DM 配对 1 小时过期 / 节点配对 5 分钟过期,通过现有通道发送代码 |
| 残余风险 | 中等 - 宽限期可被利用 |
| 建议 | 缩短宽限期,增加确认步骤 |
T-ACCESS-002:AllowFrom 欺骗
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者在通道中伪造允许的发送者身份 |
| 攻击向量 | 取决于通道——手机号伪造、用户名冒充 |
| 受影响组件 | 按通道进行的 AllowFrom 验证 |
| 当前缓解措施 | 通道特定的身份验证 |
| 残余风险 | 中等 - 某些通道易受欺骗 |
| 建议 | 记录各通道特定风险,在可能情况下增加加密验证 |
T-ACCESS-003:Token 窃取
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者从配置文件中窃取认证令牌 |
| 攻击向量 | 恶意软件、未授权设备访问、配置备份泄露 |
| 受影响组件 | ~/.openclaw/credentials/、配置存储 |
| 当前缓解措施 | 文件权限 |
| 残余风险 | 高 - Token 以明文存储 |
| 建议 | 实现静态存储时的 Token 加密,添加 Token 轮换 |
3.3 执行(AML.TA0005)
T-EXEC-001:直接提示注入
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0051.000 - LLM 提示注入:直接 |
| 描述 | 攻击者发送精心构造的提示以操纵代理行为 |
| 攻击向量 | 包含对抗性指令的通道消息 |
| 受影响组件 | Agent LLM、所有输入面 |
| 当前缓解措施 | 模式检测、外部内容包装 |
| 残余风险 | 严重 - 仅检测,无阻断;复杂攻击可绕过 |
| 建议 | 实现多层防御、输出验证、对敏感操作进行用户确认 |
T-EXEC-002:间接提示注入
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0051.001 - LLM 提示注入:间接 |
| 描述 | 攻击者在获取的内容中嵌入恶意指令 |
| 攻击向量 | 恶意 URL、投毒邮件、被攻破的 Webhook |
| 受影响组件 | web_fetch、邮件摄取、外部数据源 |
| 当前缓解措施 | 使用 XML 标签和安全提示进行内容包装 |
| 残余风险 | 高 - LLM 可能忽略包装指令 |
| 建议 | 实现内容净化、分离执行上下文 |
T-EXEC-003:工具参数注入
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0051.000 - LLM 提示注入:直接 |
| 描述 | 攻击者通过提示注入操纵工具参数 |
| 攻击向量 | 影响工具参数值的精心构造提示 |
| 受影响组件 | 所有工具调用 |
| 当前缓解措施 | 对危险命令进行 exec 审批 |
| 残余风险 | 高 - 依赖用户判断 |
| 建议 | 实现参数验证、参数化工具调用 |
T-EXEC-004:Exec 审批绕过
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0043 - 构造对抗性数据 |
| 描述 | 攻击者构造可绕过审批白名单的命令 |
| 攻击向量 | 命令混淆、别名利用、路径操纵 |
| 受影响组件 | exec-approvals.ts、命令白名单 |
| 当前缓解措施 | 白名单 + ask 模式 |
| 残余风险 | 高 - 没有命令净化 |
| 建议 | 实现命令规范化,扩展黑名单 |
3.4 持久化(AML.TA0006)
T-PERSIST-001:恶意技能安装
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0010.001 - 供应链入侵:AI 软件 |
| 描述 | 攻击者将恶意技能发布到 ClawHub |
| 攻击向量 | 创建账户,发布包含隐藏恶意代码的技能 |
| 受影响组件 | ClawHub、技能加载、代理执行 |
| 当前缓解措施 | GitHub 账号年龄验证、基于模式的审核标记 |
| 残余风险 | 严重 - 无沙箱,审查有限 |
| 建议 | VirusTotal 集成(进行中)、技能沙箱、社区审查 |
T-PERSIST-002:技能更新投毒
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0010.001 - 供应链入侵:AI 软件 |
| 描述 | 攻击者入侵热门技能并推送恶意更新 |
| 攻击向量 | 账户被入侵、对技能所有者进行社会工程 |
| 受影响组件 | ClawHub 版本管理、自动更新流程 |
| 当前缓解措施 | 版本指纹识别 |
| 残余风险 | 高 - 自动更新可能拉取恶意版本 |
| 建议 | 实现更新签名、回滚能力、版本锁定 |
T-PERSIST-003:代理配置篡改
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0010.002 - 供应链入侵:数据 |
| 描述 | 攻击者修改代理配置以维持访问 |
| 攻击向量 | 修改配置文件、设置注入 |
| 受影响组件 | 代理配置、工具策略 |
| 当前缓解措施 | 文件权限 |
| 残余风险 | 中等 - 需要本地访问 |
| 建议 | 配置完整性验证、配置变更审计日志 |
3.5 防御规避(AML.TA0007)
T-EVADE-001:审核模式绕过
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0043 - 构造对抗性数据 |
| 描述 | 攻击者构造技能内容以绕过审核模式 |
| 攻击向量 | Unicode 同形异义字符、编码技巧、动态加载 |
| 受影响组件 | ClawHub moderation.ts |
| 当前缓解措施 | 基于模式的 FLAG_RULES |
| 残余风险 | 高 - 简单正则很容易被绕过 |
| 建议 | 增加行为分析(VirusTotal Code Insight)、基于 AST 的检测 |
T-EVADE-002:内容包装逃逸
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0043 - 构造对抗性数据 |
| 描述 | 攻击者构造可逃逸出 XML 包装上下文的内容 |
| 攻击向量 | 标签操纵、上下文混淆、指令覆盖 |
| 受影响组件 | 外部内容包装 |
| 当前缓解措施 | XML 标签 + 安全提示 |
| 残余风险 | 中等 - 新型逃逸会被不断发现 |
| 建议 | 多层包装、输出侧验证 |
3.6 发现(AML.TA0008)
T-DISC-001:工具枚举
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者通过提示枚举可用工具 |
| 攻击向量 | 类似“你有哪些工具?”的查询 |
| 受影响组件 | 代理工具注册表 |
| 当前缓解措施 | 无特定措施 |
| 残余风险 | 低 - 工具通常已被记录 |
| 建议 | 考虑工具可见性控制 |
T-DISC-002:会话数据提取
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者从会话上下文中提取敏感数据 |
| 攻击向量 | 类似“我们刚才讨论了什么?”的查询、上下文探测 |
| 受影响组件 | 会话转录、上下文窗口 |
| 当前缓解措施 | 按发送者进行会话隔离 |
| 残余风险 | 中等 - 可访问会话内数据 |
| 建议 | 在上下文中实现敏感数据脱敏 |
3.7 收集与外传(AML.TA0009, AML.TA0010)
T-EXFIL-001:通过 web_fetch 窃取数据
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0009 - 收集 |
| 描述 | 攻击者通过指示代理将数据发送到外部 URL 来外传数据 |
| 攻击向量 | 诱导代理向攻击者服务器 POST 数据的提示注入 |
| 受影响组件 | web_fetch 工具 |
| 当前缓解措施 | 对内部网络进行 SSRF 阻断 |
| 残余风险 | 高 - 允许外部 URL |
| 建议 | 实现 URL 白名单、数据分类感知 |
T-EXFIL-002:未授权消息发送
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0009 - 收集 |
| 描述 | 攻击者诱导代理发送包含敏感数据的消息 |
| 攻击向量 | 诱导代理向攻击者发消息的提示注入 |
| 受影响组件 | 消息工具、通道集成 |
| 当前缓解措施 | 出站消息门控 |
| 残余风险 | 中等 - 门控可能被绕过 |
| 建议 | 对新收件人要求显式确认 |
T-EXFIL-003:凭据收集
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0009 - 收集 |
| 描述 | 恶意技能从代理上下文中收集凭据 |
| 攻击向量 | 技能代码读取环境变量、配置文件 |
| 受影响组件 | 技能执行环境 |
| 当前缓解措施 | 针对技能无特定措施 |
| 残余风险 | 严重 - 技能以代理权限运行 |
| 建议 | 技能沙箱、凭据隔离 |
3.8 影响(AML.TA0011)
T-IMPACT-001:未授权命令执行
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0031 - 侵蚀 AI 模型完整性 |
| 描述 | 攻击者在用户系统上执行任意命令 |
| 攻击向量 | 提示注入结合 exec 审批绕过 |
| 受影响组件 | Bash 工具、命令执行 |
| 当前缓解措施 | exec 审批、Docker 沙箱选项 |
| 残余风险 | 严重 - 主机执行且无沙箱 |
| 建议 | 默认使用沙箱,改进审批 UX |
T-IMPACT-002:资源耗尽(DoS)
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0031 - 侵蚀 AI 模型完整性 |
| 描述 | 攻击者耗尽 API 配额或计算资源 |
| 攻击向量 | 自动化消息轰炸、昂贵的工具调用 |
| 受影响组件 | Gateway、代理会话、API 提供方 |
| 当前缓解措施 | 无 |
| 残余风险 | 高 - 没有速率限制 |
| 建议 | 实现按发送者速率限制、成本预算 |
T-IMPACT-003:声誉损害
| 属性 | 值 |
|---|
| ATLAS ID | AML.T0031 - 侵蚀 AI 模型完整性 |
| 描述 | 攻击者诱导代理发送有害/冒犯性内容 |
| 攻击向量 | 导致不当响应的提示注入 |
| 受影响组件 | 输出生成、通道消息 |
| 当前缓解措施 | LLM 提供方内容政策 |
| 残余风险 | 中等 - 提供方过滤并不完美 |
| 建议 | 输出过滤层、用户控制 |
4. ClawHub 供应链分析
4.1 当前安全控制
| 控制项 | 实现 | 有效性 |
|---|
| GitHub 账户年龄 | requireGitHubAccountAge() | 中等 - 提高新攻击者的门槛 |
| 路径清理 | sanitizePath() | 高 - 防止路径遍历 |
| 文件类型验证 | isTextFile() | 中等 - 仅允许文本文件,但仍可能是恶意的 |
| 大小限制 | 50MB 总 bundle | 高 - 防止资源耗尽 |
| 必需的 SKILL.md | 强制要求的自述文件 | 低安全价值 - 仅用于信息说明 |
| 模式审查 | moderation.ts 中的 FLAG_RULES | 低 - 容易绕过 |
| 审查状态 | moderationStatus 字段 | 中等 - 可进行人工复审 |
4.2 审查标记模式
moderation.ts 中当前的模式:
// 已知恶意标识符
/(keepcold131\/ClawdAuthenticatorTool|ClawdAuthenticatorTool)/i
// 可疑关键词
/(malware|stealer|phish|phishing|keylogger)/i
/(api[-_ ]?key|token|password|private key|secret)/i
/(wallet|seed phrase|mnemonic|crypto)/i
/(discord\.gg|webhook|hooks\.slack)/i
/(curl[^\n]+\|\s*(sh|bash))/i
/(bit\.ly|tinyurl\.com|t\.co|goo\.gl|is\.gd)/i
局限性:
- 仅检查 slug、displayName、summary、frontmatter、metadata、文件路径
- 不分析实际 skill 代码内容
- 简单的正则表达式很容易通过混淆绕过
- 没有行为分析
4.3 计划中的改进
| 改进项 | 状态 | 影响 |
|---|
| VirusTotal 集成 | 进行中 | 高 - Code Insight 行为分析 |
| 社区举报 | 部分完成(skillReports 表已存在) | 中等 |
| 审计日志 | 部分完成(auditLogs 表已存在) | 中等 |
| 徽章系统 | 已实现 | 中等 - highlighted、official、deprecated、redactionApproved |
5. 风险矩阵
5.1 可能性 vs 影响
| 威胁 ID | 可能性 | 影响 | 风险等级 | 优先级 |
|---|
| T-EXEC-001 | 高 | 严重 | 严重 | P0 |
| T-PERSIST-001 | 高 | 严重 | 严重 | P0 |
| T-EXFIL-003 | 中 | 严重 | 严重 | P0 |
| T-IMPACT-001 | 中 | 严重 | 高 | P1 |
| T-EXEC-002 | 高 | 高 | 高 | P1 |
| T-EXEC-004 | 中 | 高 | 高 | P1 |
| T-ACCESS-003 | 中 | 高 | 高 | P1 |
| T-EXFIL-001 | 中 | 高 | 高 | P1 |
| T-IMPACT-002 | 高 | 中 | 高 | P1 |
| T-EVADE-001 | 高 | 中 | 中等 | P2 |
| T-ACCESS-001 | 低 | 高 | 中等 | P2 |
| T-ACCESS-002 | 低 | 高 | 中等 | P2 |
| T-PERSIST-002 | 低 | 高 | 中等 | P2 |
5.2 关键路径攻击链
攻击链 1:基于 Skill 的数据窃取
T-PERSIST-001 → T-EVADE-001 → T-EXFIL-003
(发布恶意 skill) → (规避审查) → (收集凭据)
攻击链 2:Prompt 注入到 RCE
T-EXEC-001 → T-EXEC-004 → T-IMPACT-001
(注入 prompt) → (绕过执行审批) → (执行命令)
攻击链 3:通过获取内容进行间接注入
T-EXEC-002 → T-EXFIL-001 → 外部外泄
(污染 URL 内容) → (Agent 获取并遵循指令) → (数据发送给攻击者)
6. 建议摘要
6.1 立即(P0)
| ID | 建议 | 涉及项 |
|---|
| R-001 | 完成 VirusTotal 集成 | T-PERSIST-001, T-EVADE-001 |
| R-002 | 实现 skill 沙箱隔离 | T-PERSIST-001, T-EXFIL-003 |
| R-003 | 为敏感操作添加输出验证 | T-EXEC-001, T-EXEC-002 |
6.2 短期(P1)
| ID | 建议 | 涉及项 |
|---|
| R-004 | 实现速率限制 | T-IMPACT-002 |
| R-005 | 为静态存储的 token 添加加密 | T-ACCESS-003 |
| R-006 | 改进 exec 审批 UX 和验证 | T-EXEC-004 |
| R-007 | 为 web_fetch 实现 URL 白名单机制 | T-EXFIL-001 |
6.3 中期(P2)
| ID | 建议 | 涉及项 |
|---|
| R-008 | 在可行的情况下添加加密通道验证 | T-ACCESS-002 |
| R-009 | 实现配置完整性验证 | T-PERSIST-003 |
| R-010 | 添加更新签名和版本固定 | T-PERSIST-002 |
7. 附录
7.1 ATLAS 技术映射
| ATLAS ID | 技术名称 | OpenClaw 威胁 |
|---|
| AML.T0006 | 主动扫描 | T-RECON-001, T-RECON-002 |
| AML.T0009 | 收集 | T-EXFIL-001, T-EXFIL-002, T-EXFIL-003 |
| AML.T0010.001 | 供应链:AI 软件 | T-PERSIST-001, T-PERSIST-002 |
| AML.T0010.002 | 供应链:数据 | T-PERSIST-003 |
| AML.T0031 | 破坏 AI 模型完整性 | T-IMPACT-001, T-IMPACT-002, T-IMPACT-003 |
| AML.T0040 | AI 模型推理 API 访问 | T-ACCESS-001, T-ACCESS-002, T-ACCESS-003, T-DISC-001, T-DISC-002 |
| AML.T0043 | 构造对抗性数据 | T-EXEC-004, T-EVADE-001, T-EVADE-002 |
| AML.T0051.000 | LLM Prompt 注入:直接 | T-EXEC-001, T-EXEC-003 |
| AML.T0051.001 | LLM Prompt 注入:间接 | T-EXEC-002 |
7.2 关键安全文件
| 路径 | 用途 | 风险等级 |
|---|
src/infra/exec-approvals.ts | 命令审批逻辑 | 严重 |
src/gateway/auth.ts | 网关身份验证 | 严重 |
src/infra/net/ssrf.ts | SSRF 防护 | 严重 |
src/security/external-content.ts | Prompt 注入缓解 | 严重 |
src/agents/sandbox/tool-policy.ts | 工具策略执行 | 严重 |
src/routing/resolve-route.ts | 会话隔离 | 中等 |
7.3 术语表
| 术语 | 定义 |
|---|
| ATLAS | MITRE 的 AI 系统对抗性威胁景观 |
| ClawHub | OpenClaw 的 skill 市场 |
| Gateway | OpenClaw 的消息路由和身份验证层 |
| MCP | 模型上下文协议 - 工具提供方接口 |
| Prompt Injection | 将恶意指令嵌入输入中的攻击 |
| Skill | 可供 OpenClaw agents 下载的扩展 |
| SSRF | 服务端请求伪造 |
这是一个持续更新的威胁模型文档。安全问题请报告至 security@openclaw.ai
相关内容