Skip to content

openclaw security

安全工具(审计 + 可选修复)。

相关文档:

审计

bash
openclaw security audit
openclaw security audit --deep
openclaw security audit --deep --password <password>
openclaw security audit --deep --token <token>
openclaw security audit --fix
openclaw security audit --json

当多个 DM 发送者共享主 Session 时,审计会发出警告,并推荐开启安全 DM 模式:对共享收件箱设置 session.dmScope="per-channel-peer"(多账号频道设置 per-account-channel-peer)。这适用于协作/共享收件箱的安全加固。单个 Gateway 被互不信任/对抗性的运营者共享并不是推荐的做法;应该用独立 Gateway(或独立 OS 用户/主机)来分隔信任边界。

当配置显示可能存在多用户入口(例如开放的 DM/群组策略、已配置的群组目标或通配符发送者规则)时,审计还会触发 security.trust_model.multi_user_heuristic 警告,提醒 OpenClaw 默认采用个人助手信任模型。对于有意为之的多用户场景,审计建议对所有 Session 启用沙箱、将文件系统访问限定在工作区范围,并避免在该运行时保存个人或私人身份与凭证。

当小型模型(<=300B)在未启用沙箱的情况下启用了网页/浏览器工具时,审计也会发出警告。

对于 Webhook 入口,以下情况会触发警告:hooks.token 复用了 Gateway 令牌、hooks.defaultSessionKey 未设置、hooks.allowedAgentIds 不受限制、请求 sessionKey 覆盖已启用、以及覆盖已启用但 hooks.allowedSessionKeyPrefixes 未配置。

以下情况同样会触发警告:沙箱 Docker 设置已配置但沙箱模式处于关闭状态;gateway.nodes.denyCommands 使用了无效的模式类/未知条目(仅支持精确节点命令名匹配,不做 Shell 文本过滤);gateway.nodes.allowCommands 显式启用了危险节点命令;全局 tools.profile="minimal" 被 Agent 工具配置覆盖;开放群组在没有沙箱/工作区保护的情况下暴露了运行时/文件系统工具;已安装的扩展插件工具在宽松工具策略下可能可达。

还会标记:gateway.allowRealIpFallback=true(代理配置错误时存在请求头欺骗风险);discovery.mdns.mode="full"(通过 mDNS TXT 记录泄露元数据)。

以及警告:沙箱浏览器使用 Docker bridge 网络但未配置 sandbox.browser.cdpSourceRange;危险的沙箱 Docker 网络模式(包括 hostcontainer:* 命名空间加入);现有沙箱浏览器 Docker 容器缺少/哈希标签过时(例如缺少 openclaw.browserConfigEpoch 的迁移前容器),并建议运行 openclaw sandbox recreate --browser --all;基于 npm 的插件/Hook 安装记录未锁定版本、缺少完整性元数据或与当前安装的包版本不一致。

当频道白名单依赖可变的名称/邮箱/标签而非稳定 ID 时(适用于 Discord、Slack、Google Chat、Microsoft Teams、Mattermost、IRC 等范围),审计会发出警告。

gateway.auth.mode="none" 导致 Gateway HTTP API 在没有共享密钥的情况下可达(/tools/invoke 加上任何已启用的 /v1/* 端点)时,审计会发出警告。

dangerous/dangerously 为前缀的设置是显式的运维中断玻璃覆盖;启用某个设置本身不构成安全漏洞报告。完整的危险参数清单,参见 Security 中的"不安全或危险标志摘要"部分。

SecretRef 行为:

  • security audit 在只读模式下为其目标路径解析支持的 SecretRef。
  • 如果 SecretRef 在当前命令路径中不可用,审计会继续并报告 secretDiagnostics(而不是崩溃)。
  • --token--password 仅覆盖该命令调用的深度探测认证;它们不会重写配置或 SecretRef 映射。

JSON 输出

使用 --json 进行 CI/策略检查:

bash
openclaw security audit --json | jq '.summary'
openclaw security audit --deep --json | jq '.findings[] | select(.severity=="critical") | .checkId'

如果同时使用 --fix--json,输出会同时包含修复操作和最终报告:

bash
openclaw security audit --fix --json | jq '{fix: .fix.ok, summary: .report.summary}'

--fix 会做什么

--fix 应用安全且确定性的修复:

  • 将常见的 groupPolicy="open" 翻转为 groupPolicy="allowlist"(包括支持频道中的账号变体)
  • logging.redactSensitive"off" 改为 "tools"
  • 收紧状态/配置和常见敏感文件的权限(credentials/*.jsonauth-profiles.jsonsessions.json、Session *.jsonl

--fix 不会

  • 轮换令牌/密码/API 密钥
  • 禁用工具(gatewaycronexec 等)
  • 更改 Gateway 绑定/认证/网络暴露选项
  • 删除或重写插件/Skills

Tips:定期跑 openclaw security audit --check 检查你的小龙虾有没有露出破绽,比亡羊补牢强多了。