1. 范围
| 组件 | 已包含 | 说明 |
|---|---|---|
| OpenClaw 智能体运行时 | 是 | 核心智能体执行、工具调用、会话 |
| Gateway 网关 | 是 | 身份验证、路由、渠道集成 |
| 渠道集成 | 是 | WhatsApp、Telegram、Discord、Signal、Slack 等。 |
| ClawHub 市场 | 是 | 技能发布、审核、分发 |
| MCP 服务器 | 是 | 外部工具提供商 |
| 用户设备 | 部分 | 移动应用、桌面客户端 |
SECURITY.md 中列举;该文件是漏洞报告范围的当前事实来源,而不是本页。
2. 系统架构
2.1 信任边界
2.2 数据流
| 流程 | 来源 | 目标 | 数据 | 保护措施 |
|---|---|---|---|---|
| F1 | 渠道 | Gateway 网关 | 用户消息 | TLS、AllowFrom |
| F2 | Gateway 网关 | 智能体 | 路由后的消息 | 会话隔离 |
| F3 | 智能体 | 工具 | 工具调用 | 策略执行 |
| F4 | 智能体 | 外部 | web_fetch 请求 | SSRF 阻断 |
| F5 | ClawHub | 智能体 | 技能代码 | 审核、扫描 |
| F6 | 智能体 | 渠道 | 响应 | 输出过滤 |
3. 按 ATLAS 战术进行威胁分析
3.1 侦察(AML.TA0002)
T-RECON-001:智能体端点发现
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0006 - 主动扫描 |
| 描述 | 攻击者扫描暴露的 OpenClaw Gateway 网关端点 |
| 攻击向量 | 网络扫描、Shodan 查询、DNS 枚举 |
| 受影响组件 | Gateway 网关、暴露的 API 端点 |
| 当前缓解措施 | Tailscale 身份验证选项,默认绑定到 local loopback |
| 剩余风险 | 中等 - 公开 Gateway 网关可被发现 |
| 建议 | 编写安全部署文档,在发现端点上添加速率限制 |
T-RECON-002:渠道集成探测
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0006 - 主动扫描 |
| 描述 | 攻击者探测消息渠道以识别由 AI 管理的账号 |
| 攻击向量 | 发送测试消息,观察响应模式 |
| 受影响组件 | 所有渠道集成 |
| 当前缓解措施 | 无特定缓解措施 |
| 剩余风险 | 低 - 仅凭发现本身价值有限 |
| 建议 | 考虑响应时序随机化 |
3.2 初始访问(AML.TA0004)
T-ACCESS-001:配对码拦截
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者在配对窗口期间截获配对码(1 小时私信/通用配对,5 分钟节点配对) |
| 攻击向量 | 肩窥、网络嗅探、社会工程 |
| 受影响组件 | 设备配对系统 |
| 当前缓解措施 | 1 小时 TTL(私信/通用配对),5 分钟 TTL(节点配对);通过现有渠道发送代码 |
| 剩余风险 | 中等 - 配对窗口可被利用 |
| 建议 | 缩短配对窗口,添加确认步骤 |
T-ACCESS-002:AllowFrom 欺骗
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者在渠道上伪造允许的发送者身份 |
| 攻击向量 | 取决于渠道 - 电话号码欺骗、用户名冒充 |
| 受影响组件 | 按渠道的 AllowFrom 验证 |
| 当前缓解措施 | 渠道特定的身份验证 |
| 剩余风险 | 中等 - 某些渠道仍然容易受到欺骗 |
| 建议 | 记录渠道特定风险,在可能的情况下添加加密验证 |
T-ACCESS-003:令牌盗窃
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者从配置/凭据文件中窃取认证令牌 |
| 攻击向量 | 恶意软件、未经授权的设备访问、配置备份暴露 |
| 受影响组件 | 渠道/提供商凭据存储、配置存储 |
| 当前缓解措施 | 文件权限 |
| 剩余风险 | 高 - 令牌以明文形式存储在磁盘上 |
| 建议 | 实现静态令牌加密,添加令牌轮换 |
3.3 执行(AML.TA0005)
T-EXEC-001:直接提示注入
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0051.000 - LLM 提示注入:直接 |
| 描述 | 攻击者发送精心构造的提示来操控智能体行为 |
| 攻击向量 | 包含对抗性指令的渠道消息 |
| 受影响组件 | 智能体 LLM,所有输入表面 |
| 当前缓解措施 | 模式检测、外部内容包装;在没有边界绕过的情况下,按漏洞报告范围外处理(见 SECURITY.md) |
| 剩余风险 | 严重 - 仅检测,不阻断;复杂攻击可绕过 |
| 建议 | 对敏感操作进行输出验证和用户确认,并叠加在现有检测之上 |
T-EXEC-002:间接提示注入
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0051.001 - LLM 提示注入:间接 |
| 描述 | 攻击者在获取的内容中嵌入恶意指令 |
| 攻击向量 | 恶意 URL、被投毒的电子邮件、被攻陷的 Webhooks |
| 受影响组件 | web_fetch、电子邮件摄取、外部数据源 |
| 当前缓解措施 | 使用随机边界 XML 风格标记进行内容包装,同形字/特殊令牌规范化,以及安全提示 |
| 剩余风险 | 高 - LLM 仍可能忽略包装指令 |
| 建议 | 为已包装内容使用单独的执行上下文 |
T-EXEC-003:工具参数注入
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0051.000 - LLM 提示注入:直接 |
| 描述 | 攻击者通过提示注入操控工具参数 |
| 攻击向量 | 影响工具参数值的精心构造提示 |
| 受影响组件 | 所有工具调用 |
| 当前缓解措施 | 对危险命令使用 Exec 审批 |
| 剩余风险 | 高 - 依赖用户判断 |
| 建议 | 参数验证、参数化工具调用 |
T-EXEC-004:Exec 审批绕过
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0043 - 构造对抗性数据 |
| 描述 | 攻击者构造绕过审批允许列表的命令 |
| 攻击向量 | 命令混淆、别名利用、路径操控 |
| 受影响组件 | src/infra/exec-approvals*.ts、命令允许列表 |
| 当前缓解措施 | 允许列表 + 询问模式,以及命令规范化(dispatch-wrapper 解包、inline-eval 检测、shell-chain 分析) |
| 剩余风险 | 高 - 规范化缩小但不能消除混淆绕过;仅涉及 exec 路径之间一致性的发现被视为加固,而非漏洞(见 SECURITY.md) |
| 建议 | 持续扩展命令规范化覆盖范围,以应对新的混淆技术 |
3.4 持久化(AML.TA0006)
T-PERSIST-001:恶意技能安装
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0010.001 - 供应链入侵:AI 软件 |
| 描述 | 攻击者向 ClawHub 发布恶意技能 |
| 攻击向量 | 创建账户,发布带有隐藏恶意代码的技能 |
| 受影响组件 | ClawHub、技能加载、智能体执行 |
| 当前缓解措施 | GitHub 账户年龄验证、静态模式/AST 相邻扫描、基于 LLM 的智能体化风险审查、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 - 构造对抗性数据 |
| 描述 | 攻击者构造技能内容以规避 ClawHub 审核检查 |
| 攻击向量 | Unicode 同形异义字符、编码技巧、动态加载 |
| 受影响组件 | ClawHub 审核/扫描流水线 |
| 当前缓解措施 | 静态模式规则、AST 邻近代码扫描、LLM 智能体风险审查、VirusTotal |
| 残余风险 | 中等 - 新型混淆仍可能绕过分层启发式检测 |
| 建议 | 随着发现新的规避方式,持续扩展模式/行为语料库 |
T-EVADE-002:内容包装器逃逸
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0043 - 构造对抗性数据 |
| 描述 | 攻击者构造会逃逸外部内容包装器上下文的内容 |
| 攻击向量 | 标签操纵、上下文混淆、指令覆盖 |
| 受影响组件 | 外部内容包装 |
| 当前缓解措施 | 随机边界 XML 风格标记 + 安全提示,以及同形异义字符/空白变体标记伪造检测 |
| 残余风险 | 中等 - 新型逃逸会定期被发现 |
| 建议 | 除输入侧包装外,增加输出侧验证 |
3.6 发现 (AML.TA0008)
T-DISC-001:工具枚举
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者通过提示词枚举可用工具 |
| 攻击向量 | “你有哪些工具?”风格的查询 |
| 受影响组件 | 智能体工具注册表 |
| 当前缓解措施 | 无特定措施 |
| 残余风险 | 低 - 工具通常已有文档 |
| 建议 | 考虑工具可见性控制 |
T-DISC-002:会话数据提取
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推理 API 访问 |
| 描述 | 攻击者从会话上下文中提取敏感数据 |
| 攻击向量 | “我们讨论了什么?”查询、上下文探测 |
| 受影响组件 | 会话转录、上下文窗口 |
| 当前缓解措施 | 按发送者隔离会话(agent:channel:peer 键) |
| 残余风险 | 中等 - 会话内数据按设计可访问 |
| 建议 | 在上下文中进行敏感数据脱敏 |
3.7 收集和外泄 (AML.TA0009, AML.TA0010)
T-EXFIL-001:通过 web_fetch 窃取数据
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0009 - 收集 |
| 描述 | 攻击者通过指示智能体将数据发送到外部 URL 来外泄数据 |
| 攻击向量 | 提示注入导致智能体将数据 POST 到攻击者服务器 |
| 受影响组件 | web_fetch 工具 |
| 当前缓解措施 | 针对内部/私有网络的 SSRF 阻断(DNS 固定 + IP 阻断) |
| 残余风险 | 高 - 仍允许任意外部 URL |
| 建议 | URL 允许列表、数据分类感知 |
T-EXFIL-002:未经授权发送消息
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0009 - 收集 |
| 描述 | 攻击者导致智能体发送包含敏感数据的消息 |
| 攻击向量 | 提示注入导致智能体向攻击者发送消息 |
| 受影响组件 | 消息工具、渠道集成 |
| 当前缓解措施 | 出站消息门控 |
| 残余风险 | 中等 - 门控可能被绕过 |
| 建议 | 对新收件人进行显式确认 |
T-EXFIL-003:凭证收集
| 属性 | 值 |
|---|---|
| ATLAS ID | AML.T0009 - 收集 |
| 描述 | 恶意技能从智能体上下文中收集凭证 |
| 攻击向量 | 技能代码读取环境变量、配置文件 |
| 受影响组件 | 技能执行环境 |
| 当前缓解措施 | ClawHub 凭证模式扫描(硬编码密钥、与网络发送配对的凭证环境访问);运行时没有针对技能的执行沙箱隔离 |
| 残余风险 | 严重 - 技能以智能体权限运行 |
| 建议 | 技能执行沙箱隔离、凭证隔离 |
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()(最低 14 天) | 中等 - 提高新攻击者的门槛 |
| 路径净化 | sanitizePath() | 高 - 防止路径遍历 |
| 文件类型验证 | isTextFile() | 中等 - 只扫描文本文件,但仍可被利用 |
| 大小限制 | 总包 50MB(MAX_PUBLISH_TOTAL_BYTES) | 高 - 防止资源耗尽 |
| 必需的 SKILL.md | 发布时必须提供 readme | 安全价值低 - 仅提供信息 |
| 静态 + AST 相邻扫描 | 覆盖 exec、外泄、凭据采集、混淆等的模式引擎 | 中高 - 覆盖许多已知滥用模式,但仍基于模式 |
| 基于 LLM 的 Agent 风险评审 | 发布时由安全提示词驱动的判定 | 中高 - 可捕获静态模式遗漏的行为 |
| VirusTotal 扫描 | 接入技能和包发布/重新扫描流程,并由操作员 API key 作为门禁 | 启用时高 - 静态引擎检测 |
| 审核状态 | moderationStatus 字段 | 中等 - 可进行人工审核 |
4.2 审核限制
ClawHub 的静态扫描会直接检查技能代码内容(不只是 slug/metadata/frontmatter),覆盖危险的 exec 调用、动态代码执行、凭据采集、外泄模式、混淆载荷等。已知缺口:- 基于模式的检测仍可能被足够新颖的混淆绕过。
- 基于 LLM 的评审和 VirusTotal 扫描依赖操作员侧 API key/配置启用。
- 技能安装后,没有运行时执行沙箱将技能与 Agent 自身权限隔离。
4.3 徽章
技能和包带有由审核员分配的徽章:highlighted、official、deprecated、redactionApproved(仅技能)。社区报告(skillReports)和审计日志(auditLogs)支撑审核工作流。
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)
| ID | 建议 | 处理对象 |
|---|---|---|
| R-002 | 实现技能执行沙箱隔离 | 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 提示词注入:直接 | T-EXEC-001, T-EXEC-003 |
| AML.T0051.001 | LLM 提示词注入:间接 | T-EXEC-002 |
7.2 关键安全文件
| 路径 | 用途 | 风险级别 |
|---|---|---|
src/infra/exec-approvals.ts | 命令审批逻辑 | 严重 |
src/gateway/auth.ts | Gateway 网关身份验证 | 严重 |
src/infra/net/ssrf.ts | SSRF 防护 | 严重 |
src/security/external-content.ts | 提示词注入缓解 | 严重 |
src/agents/sandbox/tool-policy.ts | 沙箱工具允许/拒绝策略 | 严重 |
src/routing/resolve-route.ts | 会话隔离/路由 | 中等 |
7.3 术语表
| 术语 | 定义 |
|---|---|
| ATLAS | MITRE 的 AI 系统对抗性威胁图谱 |
| ClawHub | OpenClaw 的技能市场 |
| Gateway 网关 | OpenClaw 的消息路由和身份验证层 |
| MCP | Model Context Protocol - 工具提供商接口 |
| 提示词注入 | 将恶意指令嵌入输入中的攻击 |
| 技能 | OpenClaw Agent 的可下载扩展 |
| SSRF | 服务端请求伪造 |
此威胁模型是一份持续演进的文档。请将安全问题报告至
security@openclaw.ai,或查看 信任页面。