OpenClaw 威胁模型 v1.0
MITRE ATLAS 框架
版本: 1.0草案最后更新: 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 代理运行时 | 是 | 核心代理执行、工具调用、会话 |
| 网关 | 是 | 认证、路由、渠道集成 |
| 渠道集成 | 是 | WhatsApp, Telegram, Discord, Signal, Slack 等 |
| ClawHub 市场 | 是 | 技能发布、审核、分发 |
| MCP 服务器 | 是 | 外部工具提供商 |
| 用户设备 | 部分 | 移动应用、桌面客户端 |
1.3 不在范围内
本威胁模型未显式排除任何内容。2. 系统架构
2.1 信任边界
2.2 数据流
| 流程 | 来源 | 目标 | 数据 | 保护措施 |
|---|---|---|---|---|
| F1 | 渠道 | 网关 | 用户消息 | TLS,加许可发起方校验 |
| F2 | 网关 | 代理 | 路由消息 | 会话隔离 |
| F3 | 代理 | 工具 | 工具调用 | 策略执行 |
| F4 | 代理 | 外部 | web_fetch 请求 | SSRF 阻断 |
| F5 | ClawHub | 代理 | 技能代码 | 审核、扫描 |
| F6 | 代理 | 渠道 | 响应 | 输出过滤 |
3. 按 ATLAS 战术进行的威胁分析
3.1 侦察(AML.TA0002)
T-RECON-001:代理端点发现
| 属性 | 数值 |
|---|---|
| ATLAS ID | AML.T0006 - 主动扫描 |
| 描述 | 攻击者扫描暴露的 OpenClaw 网关端点 |
| 攻击向量 | 网络扫描、shodan 查询、DNS 枚举 |
| 影响组件 | 网关、暴露的 API 端点 |
| 当前缓解措施 | Tailscale 认证选项,默认绑定到回环地址 |
| 剩余风险 | 中等 - 公共网关容易被发现 |
| 建议 | 记录安全部署,增加对发现端点的速率限制 |
T-RECON-002:渠道集成探测
| 属性 | 数值 |
|---|---|
| ATLAS ID | AML.T0006 - 主动扫描 |
| 描述 | 攻击者探测消息渠道以识别 AI 管理的账户 |
| 攻击向量 | 发送测试消息,观察响应模式 |
| 影响组件 | 所有渠道集成 |
| 当前缓解措施 | 无专门措施 |
| 剩余风险 | 低 - 单纯发现信息价值有限 |
| 建议 | 考虑对响应时序进行随机化 |
3.2 初始访问(AML.TA0004)
T-ACCESS-001:配对码截获
| 属性 | 数值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者于 30 秒宽限期间截获配对码 |
| 攻击向量 | 偷窥、网络嗅探、社会工程 |
| 影响组件 | 设备配对系统 |
| 当前缓解措施 | 30秒过期,配对码通过既有渠道发送 |
| 剩余风险 | 中等 - 宽限期可被利用 |
| 建议 | 缩短宽限期,加入确认步骤 |
T-ACCESS-002:AllowFrom 冒充
| 属性 | 数值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者在渠道中伪造允许的发送者身份 |
| 攻击向量 | 依渠道不同 - 电话号码伪造、用户名冒充 |
| 影响组件 | 各渠道的 AllowFrom 验证 |
| 当前缓解措施 | 渠道特定身份验证 |
| 剩余风险 | 中等 - 部分渠道易受伪造影响 |
| 建议 | 记录渠道特定风险,尽可能增加加密验证 |
T-ACCESS-003:Token 窃取
| 属性 | 数值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者窃取配置文件中的认证令牌 |
| 攻击向量 | 恶意软件、设备未授权访问、配置备份泄漏 |
| 影响组件 | ~/.openclaw/credentials/,配置存储 |
| 当前缓解措施 | 文件权限 |
| 剩余风险 | 高 - 令牌明文存储 |
| 建议 | 实施令牌静态加密,添加令牌轮换 |
3.3 执行(AML.TA0005)
T-EXEC-001:直接提示注入
| 属性 | 数值 |
|---|---|
| ATLAS ID | AML.T0051.000 - LLM 提示注入:直接 |
| 描述 | 攻击者发送精心构造的提示以操纵代理行为 |
| 攻击向量 | 渠道消息中包含对抗性指令 |
| 影响组件 | 代理 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 提示注入:直接 |
| 描述 | 攻击者通过提示注入操纵工具参数 |
| 攻击向量 | 影响工具参数值的精心提示 |
| 影响组件 | 所有工具调用 |
| 当前缓解措施 | 危险命令执行需审批 |
| 剩余风险 | 高 - 依赖用户判断 |
| 建议 | 实施参数验证,使用参数化工具调用 |
T-EXEC-004:执行审批绕过
| 属性 | 数值 |
|---|---|
| ATLAS ID | AML.T0043 - 制作对抗性数据 |
| 描述 | 攻击者构造命令以绕过审批允许列表 |
| 攻击向量 | 命令混淆、别名利用、路径操作 |
| 影响组件 | exec-approvals.ts,命令允许列表 |
| 当前缓解措施 | 允许列表 + 询问模式 |
| 剩余风险 | 高 - 无命令规范化 |
| 建议 | 实施命令规范化,扩大阻断列表 |
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 代码洞察),基于 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 模型完整性 |
| 描述 | 攻击者在用户系统上执行任意命令 |
| 攻击向量 | 提示注入结合执行审批绕过 |
| 影响组件 | Bash 工具,命令执行 |
| 当前缓解措施 | 执行审批,Docker 沙箱选项 |
| 剩余风险 | 危急 - 无沙箱下执行主机命令 |
| 建议 | 默认启用沙箱,优化审批用户体验 |
T-IMPACT-002:资源耗尽(拒绝服务)
| 属性 | 数值 |
|---|---|
| ATLAS ID | AML.T0031 - 损害 AI 模型完整性 |
| 描述 | 攻击者耗尽 API 配额或计算资源 |
| 攻击向量 | 自动消息洪泛,高价工具调用 |
| 影响组件 | 网关,代理会话,API 提供商 |
| 当前缓解措施 | 无 |
| 剩余风险 | 高 |
| 建议 | 实施按发送者速率限制,设置费用预算 |
T-IMPACT-003:声誉损害
| 属性 | 数值 |
|---|---|
| ATLAS ID | AML.T0031 - 损害 AI 模型完整性 |
| 描述 | 攻击者使代理发送有害/冒犯内容 |
| 攻击向量 | 提示注入导致不当回复 |
| 影响组件 | 输出生成,渠道消息 |
| 当前缓解措施 | LLM 提供商内容政策 |
| 剩余风险 | 中等 - 过滤不完全 |
| 建议 | 增设输出过滤层,用户控制 |
4. ClawHub 供应链分析
4.1 当前安全控制
| 控制项 | 实施情况 | 有效性 |
|---|---|---|
| GitHub 账号年龄 | requireGitHubAccountAge() | 中等 - 增加新攻击者门槛 |
| 路径净化 | sanitizePath() | 高 - 防止路径遍历 |
| 文件类型验证 | isTextFile() | 中等 - 只允许文本文件,但仍可能恶意 |
| 大小限制 | 50MB 总包 | 高 - 防止资源耗尽 |
| 必须有 SKILL.md | 强制 README | 安全值低 - 仅起信息作用 |
| 模式审核 | moderation.ts 中 FLAG_RULES | 低 - 容易绕过 |
| 审核状态 | moderationStatus 字段 | 中等 - 允许人工审核 |
4.2 审核标记模式
moderation.ts 现有模式:
- 仅检查 slug、displayName、summary、frontmatter、metadata、文件路径
- 不分析实际技能代码内容
- 简单正则表达式易于编码混淆绕过
- 无行为分析
4.3 计划改进
| 改进项 | 状态 | 影响 |
|---|---|---|
| VirusTotal 集成 | 进行中 | 高 - 代码洞察行为分析 |
| 社区举报 | 部分实现 (存在 skillReports 表) | 中等 |
| 审计日志 | 部分实现 (auditLogs 表存在) | 中等 |
| 徽章系统 | 已实现 | 中等 — highlighted、official、deprecated、redactionApproved |
5. 风险矩阵
5.1 可能性与影响
| 威胁 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:基于技能的数据盗取6. 建议摘要
6.1 立即落实(P0)
| 编号 | 建议内容 | 解决威胁 |
|---|---|---|
| R-001 | 完成 VirusTotal 集成 | T-PERSIST-001, T-EVADE-001 |
| R-002 | 实施技能沙箱 | T-PERSIST-001, T-EXFIL-003 |
| R-003 | 增加敏感操作的输出校验 | T-EXEC-001, T-EXEC-002 |
6.2 短期(P1)
| 编号 | 建议内容 | 解决威胁 |
|---|---|---|
| R-004 | 实施速率限制 | T-IMPACT-002 |
| R-005 | 为令牌增加静态加密 | T-ACCESS-003 |
| R-006 | 改进执行审批用户体验及验证 | T-EXEC-004 |
| R-007 | 实施 web_fetch 的 URL 白名单 | T-EXFIL-001 |
6.3 中期(P2)
| 编号 | 建议内容 | 解决威胁 |
|---|---|---|
| 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 提示注入:直接 | T-EXEC-001, T-EXEC-003 |
| AML.T0051.001 | LLM 提示注入:间接 | T-EXEC-002 |
7.2 关键安全文件
| 路径 | 目的 | 风险等级 |
|---|---|---|
src/infra/exec-approvals.ts | 命令审批逻辑 | 危急 |
src/gateway/auth.ts | 网关认证 | 危急 |
src/web/inbound/access-control.ts | 渠道访问控制 | 危急 |
src/infra/net/ssrf.ts | SSRF 防护 | 危急 |
src/security/external-content.ts | 提示注入缓解 | 危急 |
src/agents/sandbox/tool-policy.ts | 工具策略执行 | 危急 |
convex/lib/moderation.ts | ClawHub 审核 | 高 |
convex/lib/skillPublish.ts | 技能发布流程 | 高 |
src/routing/resolve-route.ts | 会话隔离 | 中等 |
7.3 术语表
| 术语 | 定义 |
|---|---|
| ATLAS | MITRE 的 AI 系统对抗性威胁全景框架 |
| ClawHub | OpenClaw 的技能市场 |
| Gateway | OpenClaw 的消息路由和认证层 |
| MCP | 模型上下文协议 — 工具提供接口 |
| Prompt Injection | 在输入中嵌入恶意指令的攻击 |
| Skill | OpenClaw 代理的可下载扩展 |
| SSRF | 服务器端请求伪造 |
此威胁模型为动态文档。如发现安全问题,请发送邮件至 security@openclaw.ai 报告。