安全加固

你的 AI 助手装好了,现在让它变安全 -- 5 项必做配置


你将学到:

  • 为什么 OpenClaw 的安全配置不能跳过
  • 如何绑定本地网络、启用认证、配置白名单
  • 如何审查 Skill 安全性,避免中招
  • API Key 的安全存放与轮换
  • 沙箱模式的开启方法

前置条件: 已完成 OpenClaw 从零到一 的安装

预计时间: 5-10 分钟


一、为什么安全很重要

OpenClaw 不是普通的聊天机器人。它能:

  • 执行终端命令 -- rm -rf 也不在话下
  • 读写你的文件 -- 包括 ~/.ssh/~/.env、浏览器数据
  • 代你发送消息 -- Telegram、Webhook、API 调用
  • 安装和运行 Skills -- 第三方代码直接在你机器上跑

换句话说,OpenClaw 拥有的权限约等于你本人。

ClawHavoc 事件:这不是假设

2026 年 1 月 27-29 日,安全研究人员在 ClawHub(OpenClaw 的官方 Skill 仓库)中发现了 341 个恶意 Skills。在被审计的 2,857 个 Skills 中,约 12% 是恶意的。

这次攻击被命名为 ClawHavoc,核心手法:

code
用户在 ClawHub 搜索 "solana-wallet-tracker"
    |
    v
找到一个看起来很正规的 Skill(有文档、有截图)
    |
    v
SKILL.md 里写着 "Prerequisites: 请先安装 openclaw-agent 工具"
    |
    v
用户按指示运行安装命令
    |
    v
实际安装的是 Atomic Stealer (AMOS) -- macOS 信息窃取木马
    |
    v
你的 API Key、钱包私钥、SSH 密钥、浏览器密码全部被上传到 91.92.242[.]30

335 个恶意 Skill 来自同一个攻击组织,伪装成 crypto 工具、YouTube 工具、天气查询、Google Workspace 集成等多个类别。其中部分 Skill 还会修改你的 SOUL.mdMEMORY.md,植入持久化指令 -- 即使你删除了恶意 Skill,被篡改的配置文件仍会在后续对话中触发恶意行为。

不做安全配置 = 裸奔。 下面 5 项配置,每一项都必做。


二、Gateway 绑定本地(必做第一步)

问题

OpenClaw Gateway 默认可能绑定 0.0.0.0(所有网络接口)。这意味着你局域网内的任何设备 -- 同事的电脑、公共 WiFi 上的陌生人 -- 都能直接访问你的 AI 助手。

修复

打开 OpenClaw 配置文件:

code
# 配置文件位置
~/.openclaw/openclaw.json

找到 gateway 部分,确保 bind 设置为 127.0.0.1

code
{
  "gateway": {
    "bind": "127.0.0.1:18789"
  }
}

127.0.0.1 表示只有本机可以访问。外部设备无论如何都连不上。

验证

code
# 重启 Gateway 使配置生效
openclaw gateway restart
 
# 确认绑定地址
lsof -i :18789
# 应该看到 LISTEN 地址是 127.0.0.1:18789
# 如果看到 *:18789 则说明仍在监听所有接口,需要检查配置

从另一台设备尝试访问(替换为你的 Mac IP):

code
curl http://192.168.1.xxx:18789/api/health
# 应该连接超时或被拒绝

如果你需要远程访问怎么办? 不要把 Gateway 暴露到公网。使用 SSH 隧道或 Tailscale 等方案,在加密通道内访问本地端口。


三、启用认证

问题

没有认证的 Gateway 就像一扇没上锁的门。任何能访问该端口的程序都可以向你的 AI 助手发指令。

更严重的是:从 2026.1.29 版本开始,未配置认证的 Gateway 会每 11 秒自动重启,这是官方强制推动安全配置的手段。如果你发现 Gateway 反复重启,大概率是因为没配认证。

修复

code
# 设置认证模式为 token
openclaw config set gateway.auth.mode token
 
# 生成一个安全的随机 token(48 个十六进制字符)
openclaw config set gateway.auth.token "$(openssl rand -hex 24)"

注意: 新版本的配置键是 gateway.auth.token,不是旧版的 gateway.token。如果你从旧版升级,务必更新键名。

查看生成的 token:

code
openclaw config get gateway.auth.token

把这个 token 记下来。连接 Telegram Bot、Web UI 或其他客户端时需要用到它。

验证

code
# 不带 token 访问 -- 应该被拒绝 (401)
curl http://127.0.0.1:18789/api/health
# → 401 Unauthorized
 
# 带 token 访问 -- 应该正常返回
curl -H "Authorization: Bearer YOUR_TOKEN_HERE" http://127.0.0.1:18789/api/health
# → {"status":"ok", ...}

四、用户白名单

问题

即使你绑定了本地、启用了认证,你的 Telegram Bot 仍然是公开的 -- 任何知道 Bot 用户名的人都能给它发消息。如果你没有配置白名单,陌生人可以通过你的 Bot 操控你的 AI 助手。

修复方式一:配置允许的用户列表

首先获取你自己的 Telegram User ID(给 @userinfobot 发任意消息即可获取)。

然后在配置文件中添加白名单:

code
{
  "telegram": {
    "allowed_users": [123456789]
  }
}

只有列表中的 User ID 才能与 Bot 交互。其他人发消息会被直接忽略。

修复方式二:配对模式(推荐)

配对模式更灵活 -- 新用户必须经过你的审批才能使用 Bot:

code
{
  "dm": {
    "strategy": "pairing"
  }
}

当有新用户尝试与 Bot 对话时,Bot 会生成一个配对码。你需要在终端确认:

code
openclaw pairing approve telegram <PAIRING_CODE>

未经审批的用户完全无法使用 Bot。

两种方式可以同时使用。 allowed_users 作为硬白名单,pairing 作为新用户的审批机制。建议至少启用一种。


五、Skill 安全审查

ClawHavoc 事件的核心教训:ClawHub 上的 Skill 不等于安全的 Skill。

安装前必做的 4 件事

1. 查看源码

每个 Skill 都有 GitHub 仓库链接。安装前打开仓库,重点检查:

code
# 查看 Skill 描述文件
cat SKILL.md
 
# 搜索可疑命令
grep -r "curl\|wget\|eval\|exec\|base64\|/dev/tcp" .
 
# 搜索敏感路径访问
grep -r "\.ssh\|\.env\|\.openclaw\|wallet\|keychain" .

如果一个 "YouTube 字幕工具" 要读取你的 ~/.ssh/ 目录,那一定有问题。

2. 检查发布者信息

code
openclaw skills info <skill-name>
  • 发布者是否有 GitHub 主页?主页是否活跃?
  • 同一发布者的其他 Skill 质量如何?
  • 账号是不是刚注册的?

3. 检查社区评价

  • ClawHub 星标数量 < 2 的 Skill 不要安装
  • 查看 Issues 和讨论区是否有安全相关的报告
  • "quality indicators"(下载量、星标)不等于安全保证 -- ClawHavoc 的恶意 Skill 部分也有不错的星标

4. 检查权限声明

Skill 在 SKILL.md 中会声明它需要的权限。遵循最小权限原则:

Skill 功能合理权限危险信号
天气查询网络访问要求读写文件系统
文件格式转换读写指定目录要求网络访问
代码分析读取项目目录要求执行 shell 命令
Crypto 价格网络访问要求读取 ~/.ssh/

如果一个 Skill 要求的权限超出其功能所需,不要安装。


六、API Key 安全

你的 API Key 在哪里

OpenClaw 的所有 API Key 存储在:

code
~/.openclaw/env          # 环境变量文件(API Key 在这里)
~/.openclaw/openclaw.json  # 主配置文件

必做的 3 件事

1. 确保 env 文件不被提交到 Git

code
# 检查 .gitignore
echo ".openclaw/" >> ~/.gitignore
 
# 如果你的项目目录下有 .env 文件
echo ".env" >> /path/to/your/project/.gitignore

2. 设置正确的文件权限

code
# 只有你自己可以读写
chmod 600 ~/.openclaw/env
chmod 600 ~/.openclaw/openclaw.json
 
# 验证
ls -la ~/.openclaw/env
# 应该显示 -rw------- (只有 owner 可读写)

3. 定期轮换 Token

code
# 轮换 Gateway auth token
openclaw config set gateway.auth.token "$(openssl rand -hex 24)"
openclaw gateway restart
 
# 轮换 OAuth token(如果使用了 OAuth 认证)
openclaw auth refresh

建议每 90 天轮换一次,或在怀疑泄露时立即轮换。

绝对不要做的事: 不要在 Telegram 聊天中发送 API Key。不要把 Key 贴到 GitHub Issue 里。不要在截图中暴露 Key。一旦泄露,立即在对应服务的控制台撤销旧 Key 并生成新 Key。


七、沙箱模式(可选但推荐)

什么是沙箱模式

沙箱模式限制 OpenClaw 可以访问的文件系统范围。启用后,AI 助手只能在你指定的目录内操作,无法触及系统文件或其他敏感目录。

启用方法

在配置文件中添加:

code
{
  "security": {
    "sandbox_mode": true,
    "allowed_paths": [
      "~/Projects",
      "~/Documents/work"
    ],
    "denied_paths": [
      "~/.ssh",
      "~/.gnupg",
      "~/.openclaw/env"
    ]
  }
}

工具权限最小化

除了文件系统沙箱,还可以对工具(Tools)做权限控制:

code
{
  "security": {
    "tool_permissions": {
      "shell": "confirm",
      "file_write": "confirm",
      "network": "allow",
      "file_read": "allow"
    }
  }
}
权限级别含义
allow静默执行,不需要确认
confirm每次执行前弹窗确认
deny完全禁止

推荐设置: shellfile_write 设为 confirmfile_readnetwork 设为 allow。这样 AI 可以自由读取信息和联网,但写入文件或执行命令时需要你确认。


八、安全检查清单

完成上面所有步骤后,用这个清单做最终确认:

网络层

  • Gateway 绑定 127.0.0.1(不是 0.0.0.0
  • lsof -i :18789 确认监听地址正确
  • 从外部设备无法访问 Gateway 端口

认证层

  • gateway.auth.mode 设为 token
  • gateway.auth.token 已生成(48+ 字符随机值)
  • 不带 token 的请求返回 401
  • Gateway 不再每 11 秒重启

用户层

  • allowed_users 只包含你自己的 Telegram User ID
  • dm.strategy 设为 pairing
  • 已测试:陌生人无法与 Bot 交互

Skill 层

  • 已安装的 Skill 全部检查过源码
  • 没有安装星标 < 2 的 Skill
  • 没有 Skill 请求超出其功能的权限

凭证层

  • ~/.openclaw/env 权限为 600
  • ~/.openclaw/openclaw.json 权限为 600
  • .openclaw/ 已加入 .gitignore
  • 没有在聊天或代码中硬编码 API Key

运行时层(可选)

  • sandbox_mode 已启用
  • allowed_paths 只包含必要目录
  • shellfile_write 设为 confirm

总结

5 分钟,5 项配置,从裸奔到安全:

步骤配置项防护目标
1Gateway 绑定本地阻止局域网入侵
2启用认证 Token阻止未授权访问
3用户白名单/配对阻止 Telegram 陌生人
4Skill 安全审查阻止供应链攻击
5API Key 安全存放阻止凭证泄露

加上可选的沙箱模式,你的 OpenClaw 就从"任何人可用、任何操作可执行"变成了"只有你可用、敏感操作需确认"。


延伸阅读


下一步

安全配置到此完成。你的 AI 助手现在已经有了基本的防护。

接下来进入进阶篇,学习更强大的工具:

Claude Code 入门 -->