OpenClaw(小龙虾)安全机制全解析 — 让你的龙虾牢不可破-理论篇
你有没有想过,当你对着手机喊一声"帮我删掉那个文件",AI 真的删了——但它删的是哪个文件?你的还是别人的?
AI Agent 越来越强大,能读文件、写代码、执行命令、访问网络。能力越大,风险越大。如果你的 AI Agent 没有锁好,就像把一把万能钥匙放在大门口——谁捡到都能进你家。
今天我们就来聊聊 OpenClaw(俗称”小龙虾” 🦞)的安全机制——这个开源的 AI Agent 网关是怎么保护你的,以及你该怎么做才能让自己的龙虾足够安全。
OpenClaw 的安全模型有一个核心前提: 个人助手模型(Personal Assistant Model) 。
你可以理解为一台电脑上跑着一个 OpenClaw 网关,这个网关背后的 AI 助手是 你的私人管家 。它帮你查天气、写文章、管数据库、操作文件——但它只听你的话。
这个”你”可以是一个人,也可以是一个互相信任的小团队。但 OpenClaw 不是 设计给互相不信任的多个人共享一个 AI 助手用的。
因为很多人会问:”能不能让公司所有人共用一个龙虾?”
答案是: 能,但不推荐 。原因很简单——如果所有人都能指挥同一个 AI Agent,那所有人就共享了 AI 的所有权限。张三可以让 AI 读李四的文件,王五可以让 AI 执行赵六不想执行的命令。这不是 OpenClaw 的安全漏洞,这是 信任模型的天花板 。
💡 一句话总结 :如果你需要多个人共用,给每个人单独部署一只龙虾,各自独立,互不干扰。
工具滥用 :任何能跟龙虾说话的人,都能让 AI 执行有权限的所有工具
数据泄露 :共享 Agent 中的敏感凭证/文件,其他人可以通过工具调用获取
注入攻击 :群聊中其他人的消息可能触发 AI 执行非预期的操作
OpenClaw 的认证分两层,就像一个小区有两道门:
外面世界 → [第一道门:网关认证] → OpenClaw Gateway → [第二道门:模型提供商认证] → AI 大模型
这是保护 OpenClaw 网关本身 的认证——谁能连上来跟龙虾说话。
token
password
trusted-proxy
none
极其危险!
💡 以上为主要模式,还支持(设备认证)device auth等高级模式
{ "gateway" : { "auth" : { "mode" : "token" , "token" : "一个很长的随机字符串-建议32位以上" } } }
每个请求都必须带上这个 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
放在 ~/.openclaw/.env 文件中,网关启动时自动读取
某些提供商支持通过 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
光有认证还不够。认证解决的是”谁能跟龙虾说话”,但没有解决”龙虾干活时能碰什么”。
想象一下:你让龙虾帮你执行一段代码,结果这段代码不小心把你的整个家目录都删了。😱
沙箱(Sandbox) 就是为了解决这个问题——给龙虾的活动范围套一个”笼子”,即使它发了疯,也只能在笼子里折腾,不会影响外面的世界。
沙箱是一个 隔离的执行环境 。当沙箱开启后,AI Agent 执行的所有工具(运行命令、读写文件、操作进程等)都在这个隔离环境中进行,而不是直接在你的机器上。
没有沙箱: 用户 → AI Agent → 直接操作你的电脑(完全信任) 有沙箱: 用户 → AI Agent → 沙箱容器(隔离环境) → 你的电脑被保护 ✅
OpenClaw 提供了三种沙箱实现方式,你可以根据场景选择:
{ "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 被误导(比如群里有人发了一条精心构造的消息),可能执行危险操作
沙箱配置不当:比如 Docker 用了host 网络模式,容器可以直接访问宿主机网络,隔离形同虚设
沙箱不是万能的:它不是完美的安全边界,但能”大幅减小爆炸半径”——即使 AI 犯傻,也只能在笼子里犯
龙虾有很多”工具”可以用:执行命令、读写文件、访问网络、操作浏览器……但并不是每个工具都应该无条件开放。
OpenClaw 提供了预设的”工具套餐”,也支持自定义:
{ "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 权限还不带刹车
OpenClaw 内置了一个强大的安全审计工具,一键检查你的龙虾有没有安全漏洞:
# 基础审计 openclaw security audit# 深度审计(会检查认证有效性、文件权限等) openclaw security audit --deep # 自动修复能修的问题 openclaw security audit --fix # 输出 JSON 格式(适合CI/自动化流水线) openclaw security audit --json
openclaw security audit --fix
开启敏感信息日志脱敏(logging.redactSensitive: “tools”)
收紧 ~/.openclaw 目录和敏感文件的权限(POSIX 用 chmod,Windows 用 icacls)
轮换你的 Token/API Key(这需要你手动)
理论说完了,下一篇手把手教你如何让你的龙虾更加安全!