← 返回教程列表

加固 OpenClaw —— 沙箱、ClawScan 与安全模型

OpenClaw 如何沙箱化技能、ClawScan 在安装社区技能前会检查什么,以及如何在共享或公司电脑上安全运行。

OpenClaw 运行在你的机器上、读取你的邮件,所以它的安全模型值得理解。本指南讲解 Gateway 强制执行的边界、在共享或公司机器上可以做的额外加固,以及安装社区技能前的评估方法。

三层信任边界

OpenClaw 中有 3 层同心的信任边界:

  1. Gateway —— 始终受信任。它持有模型供应商 key、渠道 token 和记忆数据库。
  2. 你编写或审阅过的技能 —— 受你信任。它们以你的用户权限运行,但处于沙箱内。
  3. 来自 ClawHub 的社区技能 —— 必须在审阅源码或阅读 ClawScan 报告后才信任。

每次从聊天渠道发来的请求流程为:渠道 → Gateway → 技能 → 外部服务。Gateway 是唯一可以读取你记忆的组件;技能只能看到助手主动传给它的内容。

文件系统沙箱

默认情况下,技能只能读取以下根目录:

  • ~/Documents
  • ~/Downloads
  • ~/Desktop
  • ~/.openclaw

其他路径必须在技能内部显式申请:

import { sh } from "openclaw/shell";

await sh("git log --oneline -n 20", {
  cwd: "~/Code/myapp",
  allow: ["~/Code/myapp"]
});

如果技能试图读取允许列表之外的路径,调用会以清晰的 PermissionError 失败。Gateway 会记录这次尝试,并暴露在 openclaw logs 中。

网络沙箱

Gateway 同样强制执行出站网络策略。每个技能需要声明它要用到的主机:

name: weather
network:
  allow:
    - wttr.in

其他一切在 TCP 层就被拒。你可以用下面的命令查看当前策略:

openclaw skills inspect weather --network
allow:
  - wttr.in
deny:  (implicit — everything else)
需要任意出站访问的技能(例如"浏览网页"类技能)必须显式请求 --network=any。这类技能在 ClawHub 上会被标记为高信任,对应的 ClawScan 报告也更严格。

ClawScan —— 审计社区技能

发布到 ClawHub 的每个技能都会被 ClawScan 打分——它是 OpenClaw Foundation 维护的开源扫描器。评分等级如下:

等级含义
A最小权限、无网络、无 shell、静态类型检查通过
B限制网络到声明的主机,作用域文件系统
C使用 shell,但仅在沙箱内部
D请求 --network=any 或读取密钥
F检测到不安全模式(无界循环、未类型化 eval、prompt 注入向量)

安装前先检查技能:

openclaw skills inspect https://clawhub.ai/skills/web-search@3.2.1
grade:        D
permissions:  network=any
risk:         Prompt-injection vectors in result handling (mitigated by upstream)
source:       github.com/openclaw/web-search
audit:        https://clawscanner.app/reports/web-search@3.2.1

评分 C 或以下的技能请先阅读上面的审计报告再决定是否安装。

在共享或公司电脑上运行

如果你用着公司托管的笔记本,可以进一步加固:

  • 在虚拟机或容器里跑。 官方 Docker 与 Podman 镜像以非 root 用户运行 Gateway,并启用只读根文件系统。
  • 使用独立账号。 创建 openclaw 标准用户,授予它对数据目录的只读访问权限,在该账号下运行 Gateway:
  sudo useradd -m openclaw
  sudo -u openclaw openclaw onboard
  • 收紧本地 Dashboard。 Gateway 默认只监听 127.0.0.1。如果需要让同一网络的手机访问,绑定到非默认端口并放在带 TLS 的反向代理后面:
  openclaw serve --bind 0.0.0.0:28889 --require-token
  • 开启系统日志。 Gateway 自带 syslog 输出。在 macOS 上出现在 Console.app 的 user/ULI/OpenClaw;在 Linux 上可以转发到 journalctl。

审计日志

每次技能调用都会被不可变地记录:

openclaw audit tail --since 24h
2026-09-21 09:14:02  skill=greet           channel=telegram     input={name:"Anna",language:"de"}    duration=412ms
2026-09-21 09:14:18  skill=weather         channel=telegram     input={city:"Vienna"}                duration=1280ms
2026-09-21 09:14:55  skill=inbox.unread    channel=telegram     input={limit:5}                     duration=2310ms

审计日志是 append-only 的 JSONL,非常适合合规审计。

报告漏洞

请邮件至 security@openclaw.org(PGP 公钥见 foundation 站点)。低危问题也可以在 GitHub 上提 issue。

下一步

OpenClaw 指南编辑部
独立维护的 OpenClaw 教程与生态解读。

发现问题或需要更正? 联系我们.