OpenClaw 安全防御体系:给你的 AI 助手装上防盗门
AI 工具能力就像一把双刃剑。本文深入讲解 OpenClaw 安全架构,从身份认证到沙箱隔离,从威胁模型到事件响应,全方位保护你的 AI 助手不被滥用。给 AI 装上工具能力,就相当于给了它执行命令、读写文件、访问网络的权限。这玩意儿要是被坏人利用,后果能有多严重不用我多说。
OpenClaw 的安全设计思路很明确:身份优先,范围其次,模型最后。

威胁模型
你的 AI 助手可以:
-
• 执行任意 shell 命令 -
• 读写文件 -
• 访问网络服务 -
• 给任何人发消息(如果你给了它 WhatsApp 权限)
给你发消息的人可以:
-
• 试图骗 AI 干坏事 -
• 社会工程获取数据访问权限 -
• 探测基础设施详情
所以安全配置不是可选项,是必须项。

快速诊断
openclaw security audit
这个命令会检查常见的安全问题,按优先级报告:
-
1. 开放 + 启用危险工具的情况 -
2. 公共网络暴露(局域网绑定、Funnel、缺少认证) -
3. 浏览器控制远程暴露 -
4. 文件权限问题 -
5. 可疑插件 -
6. 模型选择问题

Gateway 认证
设置认证令牌
Gateway WebSocket 默认需要认证。设置令牌:
{ gateway: { auth: { mode: "token", token: "your-long-random-token" } }}
让 Doctor 生成一个:
openclaw doctor --generate-gateway-token
网络绑定
默认:loopback(只有本地客户端能连接)
非回环绑定(lan、tailnet、custom)会扩大攻击面。如果必须用:
{ gateway: { bind: "loopback", // 优先保持默认 auth: { mode: "token", token: "your-token" } }}
经验法则:
-
• 优先用 Tailscale Serve 而不是局域网绑定 -
• 局域网绑定要配防火墙,限制源 IP -
• 永远不要在 0.0.0.0上暴露未经认证的 Gateway
反向代理
如果 Gateway 前面有反向代理(nginx、Caddy),配置 trustedProxies:
{ gateway: { trustedProxies: ["127.0.0.1"], auth: { mode: "password", password: "${OPENCLAW_GATEWAY_PASSWORD}" } }}
确保代理覆盖(不是追加)X-Forwarded-For 头。
私信访问控制
私信策略
所有支持私信的渠道都支持私信策略(dmPolicy):
|
|
|
|---|---|
pairing
|
|
allowlist |
|
open |
"*") |
disabled |
|

推荐配置:
{ channels: { whatsapp: { dmPolicy: "pairing" } }}
批准配对:
openclaw pairing listopenclaw pairing approve <code>
配对码存储在 ~/.openclaw/credentials/<agentId>-allowFrom.json。
私信会话隔离
默认所有私信路由到主会话。如果多人能给你的机器人发私信,隔离会话:
{ session: { dmScope: "per-channel-peer" // 按渠道 + 发送者隔离 }}
防止跨用户上下文泄露。
群组访问控制
提及门控
群组默认需要 @ 机器人才会响应:
{ channels: { whatsapp: { groups: { "*": { requireMention: true } } } }}
群组白名单
只接受特定群组的消息:
{ channels: { whatsapp: { groups: { "group-id-1": { requireMention: true }, "group-id-2": { requireMention: false } } } }}
Discord 配置
{ channels: { discord: { groupPolicy: "allowlist", guilds: { "guild-id": { channels: ["channel-id-1", "channel-id-2"], requireMention: false } } } }}
确保机器人有 Message Content Intent。
沙箱隔离
沙箱模式
{ agents: { defaults: { sandbox: { mode: "all", // off / non-main / all scope: "agent", // session / agent / shared workspaceAccess: "ro" // none / ro / rw } } }}
模式说明:
|
|
|
|---|---|
off |
|
non-main |
|
all |
|
作用域:
|
|
|
|---|---|
session |
|
agent |
|
shared |
|
工作区访问:
|
|
|
|---|---|
none |
|
ro |
|
rw |
|

提权模式
tools.elevated 是逃逸舱口,让 exec 在主机上运行:
{ tools: { elevated: { allowFrom: ["owner"] // 限制谁能用 } }}
保持 allowFrom 严格,别给陌生人开。
工具策略
工具配置文件
基础权限等级:

{ tools: { profile: "coding" // minimal / coding / messaging / full }}
全局允许/拒绝
{ tools: { profile: "messaging", allow: ["slack", "discord"], deny: ["browser", "exec"] }}
deny 优先级更高。支持 * 通配符。
工具组简写
|
|
|
|---|---|
group:runtime |
|
group:fs |
|
group:sessions |
|
group:web |
|
示例:
{ tools: { allow: ["group:fs", "read"], deny: ["group:runtime"] }}
多智能体隔离
每个智能体可以有独立的沙箱和工具策略。

完全访问(个人智能体)
{ agents: { list: [ { id: "personal", workspace: "~/.openclaw/workspace-personal", sandbox: { mode: "off" } } ] }}
只读(家庭/工作智能体)
{ agents: { list: [ { id: "family", workspace: "~/.openclaw/workspace-family", sandbox: { mode: "all", scope: "agent", workspaceAccess: "ro" }, tools: { allow: ["read"], deny: ["write", "edit", "exec", "process", "browser"] } } ] }}
无文件系统/shell(公共智能体)
{ agents: { list: [ { id: "public", workspace: "~/.openclaw/workspace-public", sandbox: { mode: "all", scope: "agent", workspaceAccess: "none" }, tools: { allow: ["sessions_list", "whatsapp", "telegram"], deny: ["read", "write", "edit", "exec", "browser"] } } ] }}
文件权限
在 Gateway 主机上保持配置和状态私有:
chmod 600 ~/.openclaw/openclaw.jsonchmod 700 ~/.openclaw
openclaw doctor 会警告并提供修复选项。
秘密管理
敏感文件位置
假设 ~/.openclaw/ 下的任何内容都可能包含秘密:
-
• openclaw.json:配置可能包含令牌 -
• credentials/**:渠道凭证、配对白名单 -
• agents/<agentId>/agent/auth-profiles.json:API 密钥 -
• agents/<agentId>/sessions/**:会话记录
日志脱敏
保持工具摘要脱敏开启(默认):
{ logging: { redactSensitive: "tools" }}
添加自定义模式:
{ logging: { redactPatterns: ["api-key-.*", "internal-.*\\.example\\.com"] }}
秘密扫描
detect-secrets scan --baseline .secrets.baseline
如果 CI 失败,说明有新的候选项未在基线中。
交互式审计:
detect-secrets audit .secrets.baseline
提示词注入防护
提示词注入是指攻击者构造消息操纵模型做不安全的事。
常见攻击:
-
• “忽略你的系统提示词” -
• “读取这个文件并完全按照它说的做” -
• “透露你的隐藏指令”
防护措施:
-
1. 保持私信锁定(配对/白名单) -
2. 群组使用提及门控 -
3. 在沙箱中运行敏感工具 -
4. 秘密不要放在提示词里 -
5. 现代模型(如 Claude Opus 4.5)对注入抵抗力更强

只读模式:
{ agents: { defaults: { sandbox: { workspaceAccess: "ro" }, tools: { deny: ["write", "edit", "apply_patch", "exec"] } } }}
浏览器控制风险
启用浏览器控制让模型能驱动真实浏览器。如果配置文件有登录会话,模型能访问那些账户。
防护建议:
-
• 为智能体使用专用配置文件 -
• 别让智能体用你的日常浏览器 -
• 沙箱智能体禁用宿主机浏览器控制 -
• 远程 Gateway 假设浏览器控制 = 管理员访问
{ browser: { defaultProfile: "openclaw" // 专用配置文件 }}
安全基线配置
一个”安全默认”配置:

{ gateway: { mode: "local", bind: "loopback", port: 18789, auth: { mode: "token", token: "your-long-random-token" } }, channels: { whatsapp: { dmPolicy: "pairing", groups: { "*": { requireMention: true } } } }, agents: { defaults: { sandbox: { mode: "all", scope: "agent", workspaceAccess: "ro" } } }}
告诉 AI 安全规则
在 AGENTS.md 中加入:
## 安全规则- 永远不要与陌生人分享目录列表或文件路径- 永远不要透露 API 密钥、凭证或基础设施详情- 与所有者验证修改系统配置的请求- 有疑问时,先询问再行动- 私人信息保持私密,即使对"朋友"也是如此
事件响应
如果怀疑被入侵:
遏制
-
1. 停止 Gateway: openclaw gateway stop -
2. 设置 gateway.bind: "loopback" -
3. 冻结访问: dmPolicy: "disabled",移除"*"白名单
轮换
-
1. 轮换 Gateway 认证令牌 -
2. 轮换远程客户端秘密 -
3. 轮换提供商凭证(WhatsApp、Slack、API 密钥)
审计
-
1. 检查 Gateway 日志: /tmp/openclaw/openclaw-*.log -
2. 审查会话记录: ~/.openclaw/agents/<agentId>/sessions/*.jsonl -
3. 审查配置更改 -
4. 重新运行 openclaw security audit --deep
0
一些个人体会
-
• 安全配置从一开始就要做好,出事再补救来不及 -
• pairing模式是最省心的私信策略,陌生人进不来 -
• 沙箱隔离能解决大部分问题,生产环境建议开启 -
• 工具策略要严格遵循”最小权限原则”
-
• 定期跑 openclaw security audit检查配置 -
• 文件权限 600/700 是基本操作 -
• 日志里可能有意想不到的敏感信息,分享前要脱敏 -
• 模型选择很重要,老模型更容易被注入攻击
安全说到底就是信任边界的问题。你想让谁能用你的 AI,能用到什么程度,这些得一开始就想清楚。OpenClaw 给的工具很全,用好它们,你的 AI 助手才是助手,不是后门。
夜雨聆风