OpenClaw 安全架构白皮书:从威胁模型到防御实践
OpenClaw 安全架构白皮书:从威胁模型到防御实践
一个危险的假设
想象这样一个场景:
你的 AI Agent 拥有完整的 API 访问权限。
它可以读写你的数据库。
它可以执行任意 shell 命令。
它可以访问你的业务系统。
如果这个 Agent 被攻破,攻击者会获得什么?
所有这些权限。
更可怕的是——Agent 以机器速度自动执行。
无人值守,没有确认弹窗,没有”你确定吗”。
一次成功的攻击,几秒钟内就能完成横向移动。
这不是科幻。
这是每一个部署 AI Agent 的人必须面对的现实。
为什么 OpenClaw 需要”威胁模型”
OpenClaw 是目前唯一公开威胁模型的 AI Agent 工具。
这本身就值得说一说。
威胁模型(Threat Model)是什么?
简单说,就是回答三个问题:
- 攻击者可能从哪里进来?
- 他们能做什么?
- 我们如何阻止?
没有威胁模型的工具,安全策略往往是”打补丁式”的——出了问题再修。
有威胁模型的工具,安全设计是”架构式”的——从地基开始考虑。
OpenClaw 选择了后者。
它基于 MITRE ATLAS 框架(专门针对 AI 系统的威胁分类体系),系统性地识别了 9 类关键威胁,并为每一类设计了缓解措施。
但威胁模型只是起点。
真正重要的是——这些设计如何落地为可操作的配置。
五层信任边界:从外到内的防御哲学
OpenClaw 的安全设计有一个核心原则:
1 | 身份优先 → 范围其次 → 模型最后 |
翻译一下:
先控制谁能触发 Agent,再控制 Agent 能在哪执行,最后假设模型本身可被操纵。
这是一个从外到内的五层信任边界:
Layer 1:Channel Access(渠道访问)
第一道门:谁有资格和你说话?
OpenClaw 支持多种渠道——WhatsApp、Telegram、Discord、Signal、飞书…
每一种渠道都有访问控制机制。
最危险的是 dmPolicy: "open"。
这意味着任何人都可以私信你的 Agent。
更安全的配置是 dmPolicy: "pairing"——只有配对过的设备才能触发。
对于群组,还有 requireMention: true——Agent 只在被 @ 时才会响应。
这不仅是防攻击,也是防误触发。
Layer 2:Session Isolation(会话隔离)
第二道门:不同的人说的话,不能混在一起。
OpenClaw 用 会话键(Session Key) 来隔离不同的对话。
会话键的格式是 agent:channel:peer——每个用户在同一个渠道里有独立的会话。
这意味着什么?
用户 A 的对话,不会影响用户 B 的上下文。
即使用户 A 成功注入了恶意指令,也只能在自己的会话里生效。
Layer 3:Tool Execution(工具执行)
第三道门:Agent 执行命令的地方,必须被隔离。
这是 OpenClaw 区别于其他 AI Agent 工具的关键——Docker 沙箱。
三种模式:
| 模式 | 效果 | 适用场景 |
|---|---|---|
off |
直接在主机执行 | 完全可信的环境 |
non-main |
群组/频道被沙箱隔离 | 个人开发机 |
all |
全部沙箱隔离 | 生产服务器 |
即使 Agent 被诱导执行了危险命令,沙箱也能限制其影响范围。
Layer 4:External Content(外部内容)
第四道门:从外部获取的内容,可能是投毒的。
间接注入(Indirect Injection) 是最难防御的攻击向量之一。
攻击者不需要直接和 Agent 对话。
他们只需要在 Agent 会获取的内容里嵌入恶意指令——
一封邮件、一个网页、一条社交媒体帖子…
Agent 获取这些内容时,恶意指令就会被激活。
OpenClaw 的防御方式:
- 外部内容会被 XML 包装,明确标记为”非信任”
- 配合安全提示,降低模型执行嵌入指令的概率
- URL 白名单机制,限制可获取的外部来源
Layer 5:Supply Chain(供应链)
第五道门:你安装的技能,可能是恶意的。
ClawHub 是 OpenClaw 的技能市场。
每一份提交的技能,都会经过:
- GitHub 账号年龄验证
- VirusTotal 扫描
- 人工审核
这不是完美的防御——但比没有任何审核要安全得多。
5 分钟安全配置清单
理解架构是第一步。
但真正重要的是——你能做对多少配置?
以下是最关键的 5 项配置,对应五层信任边界的核心防护:
1. 锁定私信入口
1 | dmPolicy: "pairing" |
Layer 1 防护:只有配对过的设备可以触发 Agent。
"open" 是危险的默认值——改为 "pairing" 或 "allowlist"。
2. 群组必须 @ 才响应
1 | groupPolicy: |
Layer 1 防护:防止 Agent 在群组里被意外触发,或被恶意刷屏。
3. 启用沙箱隔离
1 | sandbox: |
Layer 3 防护:非主会话在 Docker 容器里执行。
个人开发机推荐 "non-main",生产服务器推荐 "all"。
4. Gateway 绑定本地
1 | gateway: |
网络层防护:不要把 Gateway 暴露到公网。
如果需要远程访问,用 Tailscale 或反向代理 + 认证。
5. 收紧文件权限
1 | chmod 700 ~/.openclaw |
凭证层防护:你的 API 密钥、Token、凭证都存在这里。
不要让其他用户能读取。
沙箱 vs 工具策略 vs 提权:三层控制的关系
这三者经常被混淆。
但它们是独立的安全维度:
沙箱——决定工具在哪里执行(容器 vs 主机)
工具策略——决定哪些工具可用
提权——exec 工具的”在主机上运行”逃逸通道
关键规则:
- 工具策略的
deny列表是硬性阻止——提权无法绕过 - 提权只影响 exec 工具——不影响 read/write/edit 等
- 沙箱是第一层隔离,工具策略是第二层限制
配置示例:
1 | tools: |
安全审计:一次检查,自动修复
OpenClaw 内置了安全审计命令:
1 | # 基础审计 |
审计会检查:
- 入站访问策略是否过于宽松
- Gateway 是否暴露到公网
- 文件权限是否正确
- 是否存在危险的默认配置
--fix 会自动修复:
- 收紧
dmPolicy和groupPolicy - 恢复敏感日志脱敏
- 收紧文件权限
但它不会:
- 轮换你的 Token 或密钥
- 禁用你配置的工具
- 改变网络绑定(需要你手动决策)
安装技能前:用 Skill Vetter 审查
Layer 5 的 ClawHub 审核是第一道防线。
但你不能完全依赖它。
Skill Vetter 是 OpenClaw 内置的技能安全审查工具——在安装任何技能前使用它。
为什么需要自己审查?
供应链攻击是 AI Agent 领域最危险、也最被低估的威胁。
一个恶意技能可以:
- 窃取你的 API 密钥、Token、凭证
- 读取你的
MEMORY.md、USER.md、IDENTITY.md - 向外部服务器发送数据
- 执行任意命令
ClawHub 的审核会过滤掉大部分明显恶意的内容。
但高级攻击可能绕过审核——特别是那些”功能正常但偷偷干坏事”的技能。
Skill Vetter 审查什么?
四步审查流程:
Step 1:来源检查
- 作者是否知名/有信誉?
- 下载量/Star 数多少?
- 最后更新时间?
Step 2:代码审查(必须)
检查这些 红旗:
1 | 🚨 发现立即拒绝: |
Step 3:权限范围
- 它需要读哪些文件?
- 它需要写哪些文件?
- 它运行什么命令?
- 它需要网络访问吗?访问哪里?
Step 4:风险分级
| 风险等级 | 例子 | 处理方式 |
|---|---|---|
| 🟢 低风险 | 笔记、天气、格式化 | 基础审查后可安装 |
| 🟡 中风险 | 文件操作、浏览器、API | 必须完整代码审查 |
| 🔴 高风险 | 凭证、交易、系统操作 | 需要人工确认 |
| ⛔ 极高风险 | 安全配置、root 访问 | 不要安装 |
信任层级
1 | 1. OpenClaw 官方技能 → 审查强度:低(但仍需审查) |
没有任何技能值得以牺牲安全为代价。
有疑问时,不要安装。
凭证管理:你的密钥在哪里
OpenClaw 的凭证分散在几个位置:
| 凭证类型 | 存储路径 |
|---|---|
| 渠道凭证 | ~/.openclaw/credentials/<channel>/ |
| 模型认证 | ~/.openclaw/agents/<id>/agent/auth-profiles.json |
| Gateway/渠道令牌 | openclaw.json |
三点建议:
1. 权限收紧
1 | chmod 700 ~/.openclaw |
2. 使用 SecretRef
OpenClaw 支持 secrets configure 命令来管理 API 密钥,避免明文存储在配置文件里。
3. 定期轮换
没有自动轮换机制——你需要手动定期更新 Token 和密钥。
与其他工具的对比
一张表说明 OpenClaw 在安全上的独特性:
| 特性 | OpenClaw | Claude Code | Cursor | Windsurf |
|---|---|---|---|---|
| Docker 沙箱 | ✅ | ❌ | ❌ | ❌ |
| 工具策略控制 | 多层 | 基础 | 基础 | 基础 |
| 威胁模型公开 | ✅ MITRE ATLAS | ❌ | ❌ | ❌ |
| 内置安全审计 | ✅ | ❌ | ❌ | ❌ |
| 形式化验证 | ✅ TLA+/TLC | ❌ | ❌ | ❌ |
OpenClaw 不是”最方便”的 AI Agent 工具。
但它可能是目前”最安全”的。
结语:五分钟做对 80%,理解架构做对剩下 20%
安全不是二选一——“安全”或”不安全”。
它是一个光谱。
5 分钟的配置,可以帮你挡住 80% 的常见攻击。
理解五层信任边界,可以帮你设计更安全的部署架构。
身份优先、范围其次、模型最后——这是 OpenClaw 安全设计的核心原则。
但原则需要落地为配置。
现在,打开你的 openclaw.json,检查这 5 项:
-
dmPolicy: "pairing"或"allowlist" -
requireMention: true(群组) -
sandbox.mode: "non-main"或"all" -
gateway.bind: "loopback" -
chmod 700 ~/.openclaw
五分钟,做对 80%。
剩下的 20%,需要你理解威胁模型,持续审计,保持警惕。
安全是底线,不是天花板。
参考资料:
头图方案
文章主题:OpenClaw 五层信任边界安全架构——从威胁模型到防御实践的技术白皮书
方案一:盾牌分层图(科技感)✅ 已选定
- 提示词(英文):Minimalist infographic showing 5 concentric shield layers, each layer labeled with icons representing “identity”, “session”, “execution”, “content”, “supply chain”, dark blue and cyan color scheme, clean geometric design, white background, technical documentation style, flat design, no text, high contrast
- 设计方向:深蓝色为主色调,青色作为强调色。五层同心盾牌,从外到内分别代表五层信任边界。简洁几何风格,符合技术白皮书调性。
- 适用场景:突显”分层防御”的核心概念,适合技术读者群体。
方案二:AI Agent 安全锁(概念向)
- 提示词(英文):A glowing AI brain icon protected by a digital lock, surrounded by floating code snippets and security shields, dark purple gradient background, futuristic cybersecurity aesthetic, minimal clean design, neon cyan accents, professional tech illustration
- 设计方向:深紫渐变背景,发光的 AI 大脑被数字锁保护,周围漂浮代码片段和安全盾牌。霓虹青色点缀,未来感科技风。
- 适用场景:强调”AI + 安全”主题,视觉冲击力强,适合吸引点击。
方案三:堡垒架构图(架构感)
- 提示词(英文):Isometric 3D diagram of a digital fortress with 5 defensive walls, each wall with glowing nodes representing security checkpoints, dark navy background with cyan glowing elements, minimalist architectural visualization, clean lines, professional technical diagram style
- 设计方向:深海军蓝背景,等距视角的数字堡垒,五道防御墙每道都有发光的安全检查点。青色发光元素,简洁专业的技术图风格。
- 适用场景:直观展示”信任边界”概念,与文章架构视角呼应。
推荐:方案一或方案三,更贴合”白皮书”的技术深度定位。


