乐于分享
好东西不私藏

OpenClaw(小龙虾)安全机制全解析 — 让你的龙虾牢不可破-理论篇

OpenClaw(小龙虾)安全机制全解析 — 让你的龙虾牢不可破-理论篇

你有没有想过,当你对着手机喊一声"帮我删掉那个文件",AI 真的删了——但它删的是哪个文件?你的还是别人的?
AI Agent 越来越强大,能读文件、写代码、执行命令、访问网络。能力越大,风险越大。如果你的 AI Agent 没有锁好,就像把一把万能钥匙放在大门口——谁捡到都能进你家。
今天我们就来聊聊 OpenClaw(俗称”小龙虾” 🦞)的安全机制——这个开源的 AI Agent 网关是怎么保护你的,以及你该怎么做才能让自己的龙虾足够安全。
01
先搞清楚:OpenClaw 的安全哲学
🏠 一只龙虾,一个主人
OpenClaw 的安全模型有一个核心前提: 个人助手模型(Personal Assistant Model) 。
什么意思?简单说就是:
一只龙虾只服务于一个信任边界内的主人。
你可以理解为一台电脑上跑着一个 OpenClaw 网关,这个网关背后的 AI 助手是 你的私人管家 。它帮你查天气、写文章、管数据库、操作文件——但它只听你的话。
这个”你”可以是一个人,也可以是一个互相信任的小团队。但 OpenClaw 不是 设计给互相不信任的多个人共享一个 AI 助手用的。
为什么要强调这个?
因为很多人会问:”能不能让公司所有人共用一个龙虾?”
答案是: 能,但不推荐 。原因很简单——如果所有人都能指挥同一个 AI Agent,那所有人就共享了 AI 的所有权限。张三可以让 AI 读李四的文件,王五可以让 AI 执行赵六不想执行的命令。这不是 OpenClaw 的安全漏洞,这是 信任模型的天花板 。
💡 一句话总结 :如果你需要多个人共用,给每个人单独部署一只龙虾,各自独立,互不干扰。
🔑 风险警示
如果你忽视了这个信任模型,可能出现:
  • 工具滥用 :任何能跟龙虾说话的人,都能让 AI 执行有权限的所有工具
  • 数据泄露 :共享 Agent 中的敏感凭证/文件,其他人可以通过工具调用获取
  • 注入攻击 :群聊中其他人的消息可能触发 AI 执行非预期的操作
02
认证体系:龙虾怎么认主人
OpenClaw 的认证分两层,就像一个小区有两道门:
外面世界 → [第一道门:网关认证] → OpenClaw Gateway → [第二道门:模型提供商认证] → AI 大模型
第一道门:网关认证(Gateway Auth)
这是保护 OpenClaw 网关本身 的认证——谁能连上来跟龙虾说话。
OpenClaw 支持三种网关认证模式:
模式
怎么工作
安全等级
适用场景
token
请求必须携带一个预设的 Token
⭐⭐⭐⭐
个人部署(推荐
password
用密码认证
⭐⭐⭐
简单场景
trusted-proxy
通过反向代理认证
⭐⭐⭐⭐
Nginx/Caddy 等反向代理场景
none
不需要认证,谁都能连
极其危险!

仅限本地开发测试
💡 以上为主要模式,还支持(设备认证)device auth等高级模式
配置示例(推荐):
{  "gateway": {    "auth": {      "mode": "token",      "token": "一个很长的随机字符串-建议32位以上"    }  }}
为什么 Token 模式最推荐?
  • Token 是一串随机字符串,不像密码可能被猜到
  • 每个请求都必须带上这个 Token,没有 Token 的请求直接被拒绝
  • 你可以随时换一个新的 Token,相当于”换锁”
⚠️ 风险 :如果你把 auth.mode 设为 "none",意味着 任何能访问你网关的人都能控制你的 AI Agent 。这就像你家大门不装锁——只要有人知道你住哪,就能进来。
第二道门:模型提供商认证(Provider Auth)
这是保护 AI 模型调用 的认证——龙虾去跟 AI 大脑(比如 Claude、GPT、GLM)对话时用的钥匙。
主要有两种方式:
# 在 ~/.openclaw/.env 文件中配置ANTHROPIC_API_KEY=sk-ant-xxxxxOPENAI_API_KEY=sk-xxxxx
1 API Key(推荐)
  • API Key 是你从模型提供商那里申请的密钥
  • 放在 ~/.openclaw/.env文件中,网关启动时自动读取
  • 千万不要硬编码在配置文件里提交到 Git!
2 OAuth 登录
某些提供商支持通过 OAuth 流程登录,类似于”用微信登录”。这种方式更方便,但 Token 可能过期,需要定期刷新。
检查认证状态:
# 查看当前认证状态openclaw models status# 深度检测(会实际调用 API 验证)openclaw models status --probe# CI/自动化检查(过期返回1,即将过期返回2)openclaw models status --check
🔑 风险警示 :
  • API Key 泄露 = 别人可以用你的额度调用 AI,产生费用
  • Token 过期未更新 = 龙虾突然变笨,无法调用 AI 模型
  • 多个 Key 支持轮换:OpenClaw 会自动在多个 API Key 之间轮换(遇到限频时),优先级为:
OPENCLAW_LIVE_<PROVIDER>_KEY
<PROVIDER>_API_KEYS
<PROVIDER>_API_KEY
03
沙箱隔离:给龙虾套个笼子
光有认证还不够。认证解决的是”谁能跟龙虾说话”,但没有解决”龙虾干活时能碰什么”。
想象一下:你让龙虾帮你执行一段代码,结果这段代码不小心把你的整个家目录都删了。😱
沙箱(Sandbox) 就是为了解决这个问题——给龙虾的活动范围套一个”笼子”,即使它发了疯,也只能在笼子里折腾,不会影响外面的世界。
沙箱是什么?
沙箱是一个 隔离的执行环境 。当沙箱开启后,AI Agent 执行的所有工具(运行命令、读写文件、操作进程等)都在这个隔离环境中进行,而不是直接在你的机器上。
没有沙箱:  用户 → AI Agent → 直接操作你的电脑(完全信任)有沙箱:  用户 → AI Agent → 沙箱容器(隔离环境) → 你的电脑被保护 ✅
三种沙箱后端
OpenClaw 提供了三种沙箱实现方式,你可以根据场景选择:
后端
隔离方式
适用场景
浏览器沙箱
Docker
本地容器隔离
本地开发,最常用
✅ 支持
SSH
远程机器隔离
把执行放到另一台服务器
❌ 不支持
OpenShell
OpenShell 管理的远程沙箱
专业管理的隔离环境
❌ 暂不支持
Docker 后端 (最常用)的配置:
{  "agents": {    "defaults": {      "sandbox": {        "mode": "all",           // off=关闭, non-main=仅非主会话, all=全部        "backend": "docker",     // docker, ssh, openshell        "scope": "agent",        // agent=每个Agent一个容器, session=每个会话一个, shared=共用一个        "docker": {          "image": "openclaw-sandbox:bookworm-slim",          "containerPrefix": "openclaw-sbx-"        }      }    }  }}
沙箱的三种模式
模式
含义
适用场景
off
不开沙箱
只有自己的个人电脑,完全信任
non-main
非主会话开沙箱
主会话(你直接聊天的)不隔离,群聊/子Agent隔离
all
全部开沙箱
最高安全,所有会话都隔离
什么时候该开沙箱?
场景
建议
原因
个人电脑,只有自己用
可选
你信任自己,风险较低
接入了群聊/多渠道
必须开
群消息可能触发AI执行命令
让AI执行不可信代码
必须开
防止代码搞坏你的系统
公司/团队共用
必须开
多人共用一个Agent,必须隔离
使用小模型(≤300B)
建议开
小模型更容易被误导,做出危险操作
⚠️ 风险警示
  • 没开沙箱:AI 执行的命令直接在你的机器上运行,如果 AI 被误导(比如群里有人发了一条精心构造的消息),可能执行危险操作
  • 沙箱配置不当:比如 Docker 用了host网络模式,容器可以直接访问宿主机网络,隔离形同虚设
  • 沙箱不是万能的:它不是完美的安全边界,但能”大幅减小爆炸半径”——即使 AI 犯傻,也只能在笼子里犯
04
工具权限控制:龙虾能用什么工具
龙虾有很多”工具”可以用:执行命令、读写文件、访问网络、操作浏览器……但并不是每个工具都应该无条件开放。
工具策略(Tool Profile)
OpenClaw 提供了预设的”工具套餐”,也支持自定义:
Profile
包含的工具
适用场景
messaging
最基础的消息工具
只需要聊天,不需要AI操作任何东西
standard
标准工具集
日常使用
full
全部工具
开发者模式,AI 可以做任何事
自定义工具控制
你可以精确控制每个工具的权限:
{  "tools": {    "profile": "messaging",     // 先用最基础的套餐    "deny": ["group:automation", "group:runtime", "group:fs"],  // 再黑名单一批    "fs": { "workspaceOnly": true },  // 文件操作限制在工作区内    "exec": {      "security": "full",     // deny=禁止, allowlist=白名单, full=完全允许      "ask": "off"            // always=每次都问, on-miss=未知时问, off=不问    }  }}
命令执行安全——最重要的安全开关
这是最关键的安全配置之一,控制 AI 能不能执行系统命令 :
exec.security
含义
安全等级
deny
完全禁止执行命令
⭐⭐⭐⭐⭐
allowlist
只允许白名单中的命令
⭐⭐⭐⭐
full
允许执行所有命令
即使命令在允许范围内,你还可以设置 执行审批 :
exec.ask
含义
always
每条命令都要你确认才执行
on-miss
白名单之外的命令才确认
off
不确认,直接执行
文件系统限制
{  "tools": {    "fs": {      "workspaceOnly": true  // 只能操作工作区内的文件    }  }}
开启后,AI 只能读写工作区目录下的文件,不能碰你电脑上的其他东西。就像给龙虾的活动范围画了一个圈。
⚠️ 风险警示
security: “full” + ask: “off” = AI 可以不经确认执行任何命令。对个人信任模型来说是便利的,但如果你接入了群聊,任何群成员都可能触发命令执行
没有开 workspaceOnly = AI 可以读写你电脑上任何它能访问到的文件
elevated(提权模式)默认关闭,开启后 AI 可以绕过沙箱直接在宿主机执行——这是”打破玻璃”级别的操作
一个典型的危险组合:profile: full + exec.security: full + exec.ask: off + 没有沙箱 = 龙虾可以不受限制地做任何事,相当于给了它 root 权限还不带刹车
05
安全审计:给龙虾做个体检
OpenClaw 内置了一个强大的安全审计工具,一键检查你的龙虾有没有安全漏洞:
# 基础审计openclaw security audit# 深度审计(会检查认证有效性、文件权限等)openclaw security audit --deep# 自动修复能修的问题openclaw security audit --fix# 输出 JSON 格式(适合CI/自动化流水线)openclaw security audit --json
审计都检查什么?
openclaw security audit
像一位安全巡检员,逐项检查:
检查项
风险等级
说明
~/.openclaw

 目录权限
🔴 Critical
其他用户能否修改你的龙虾配置
配置文件权限
🔴 Critical
别人能否看到你的 Token/密钥
群组策略是否开放
🟡 Warning
是否允许任何人通过群聊控制龙虾
沙箱配置是否合理
🟡 Warning
小模型+无沙箱+网络工具=危险组合
Webhook 入站安全
🟡 Warning
Webhook 是否缺少认证
浏览器容器安全
🟡 Warning
沙箱浏览器网络是否隔离
API Key 存储
🟡 Warning
密钥是否安全存储
npm 插件完整性
🟡 Warning
安装的插件是否被篡改
DM 会话隔离
🟡 Warning
多个私信发送者是否共享同一个会话
自动修复什么?
openclaw security audit --fix
会自动帮你:
  • 把开放群组策略改为白名单
  • 开启敏感信息日志脱敏(logging.redactSensitive: “tools”)
  • 收紧 ~/.openclaw 目录和敏感文件的权限(POSIX 用 chmod,Windows 用 icacls)
它 不会 自动:
  • 轮换你的 Token/API Key(这需要你手动)
  • 禁用工具(怕影响你的正常使用)
  • 删除插件/技能(怕误删你需要的)
理论说完了,下一篇手把手教你如何让你的龙虾更加安全!
关注我,一起探索AI!