openclaw security

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

相关内容:

审计

openclaw security audit
openclaw security audit --deep
openclaw security audit --fix
openclaw security audit --json

审计会在多个 DM 发送者共享 main session 时发出警告,并推荐安全 DM 模式:设置 session.dmScope="per-channel-peer"(多账号频道则用 per-account-channel-peer),适用于共享收件箱场景。 这是为了协作 / 共享收件箱的安全加固。把一个 Gateway 共享给互不信任 / 对立的运营者并非推荐做法;对于信任边界分离的场景,应该使用独立的 gateway(或不同的 OS 用户 / 主机)。 审计还会在配置暗示可能存在共享用户入口时输出 security.trust_model.multi_user_heuristic(比如开放的 DM / 群组策略、已配置的群组目标、通配符发送者规则),提醒你 OpenClaw 默认是个人助手信任模型。 对于有意的共享用户场景,审计建议:沙箱化所有 session,将文件系统访问限制在工作空间范围内,不要在该运行时上放置个人 / 私密身份或凭据。 审计还会在小模型(<=300B)未启用沙箱且开启了 web / 浏览器工具时发出警告。 对于 webhook 入口,当 hooks.defaultSessionKey 未设置、请求 sessionKey 覆盖已启用、以及覆盖已启用但没有 hooks.allowedSessionKeyPrefixes 时都会警告。 还会在以下情况发出警告:沙箱模式关闭但配置了沙箱 Docker 设置时;gateway.nodes.denyCommands 使用了无效的模式匹配 / 未知条目时(只支持精确的节点命令名匹配,不支持 shell 文本过滤);gateway.nodes.allowCommands 显式启用了危险的节点命令时;全局 tools.profile="minimal" 被 agent 工具配置覆盖时;开放群组在没有沙箱 / 工作空间保护的情况下暴露了运行时 / 文件系统工具时;已安装的扩展插件工具在宽松的工具策略下可能可达时。 还会标记 gateway.allowRealIpFallback=true(代理配置错误时存在 header 欺骗风险)和 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、MS Teams、Mattermost、IRC 等适用的范围)。 当 gateway.auth.mode="none" 导致 Gateway HTTP API 在没有共享密钥的情况下可达时会警告(/tools/invoke 加上任何已启用的 /v1/* 端点)。 以 dangerous / dangerously 为前缀的设置是显式的紧急覆盖开关;启用一个本身不构成安全漏洞。 完整的危险参数清单,参见 Security 中的 “Insecure or dangerous flags summary” 部分。

JSON 输出

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

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

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

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 不会

  • 轮换 token / password / API key
  • 禁用工具(gatewaycronexec 等)
  • 修改 gateway 的绑定 / 认证 / 网络暴露设置
  • 移除或重写插件 / skill