当前位置: 首页 > news >正文

OpenClaw 的安全方案

目录

文章目录

  • 目录
  • 沙箱安全
  • 网络安全
  • Channel 安全
  • 操作系统安全
  • 应用进程安全
  • 应用数据安全
  • 企业数据安全
  • 身份认证安全
  • Token 成本安全
  • Skills 安全

沙箱安全

开启权限管控,沙箱模式规避操作风险。建议开启沙箱模式,严格限制 OpenClaw 的操作范围,防止因指令误判导致的系统文件误删、危险操作执行,保障设备与系统的稳定运行。OpenClaw 的 Agent 自带沙箱环境,所有通用技能均在隔离环境中执行,从架构上规避了恶意操作的风险。

Docker 沙箱模式提供一个执行 Skills&Tools 的隔离环境,即使 AI “失控”,影响范围也有限。同时,容器沙箱能够杜绝在宿主机上执行高风险的工具,例如:

  • 允许:exec(运行命令)、read/write/edit(文件)
  • 禁止:browser(浏览器控制)、canvas、nodes(设备控制)、cron(定时任务)

支持 3 种镜像构建脚本,推荐包含浏览器的镜像,让 OpenClaw 能够容器内使用浏览器。

cdopenclaw scripts/sandbox-setup.sh# 基础镜像scripts/sandbox-common-setup.sh# 含 Node, Go, Rust 等scripts/sandbox-browser-setup.sh# 含 Chromium CDP 浏览器

查看构建成功后的镜像:

$dockerimages IMAGE ID DISK USAGE CONTENT SIZE EXTRA openclaw-sandbox-browser:bookworm-slim 613fc30c70551.05GB 0B

高安全系数沙箱配置:

{"agents":{"defaults":{"sandbox":{"mode":"all","scope":"session","workspaceAccess":"none","docker":{"image":"openclaw-sandbox-browser:bookworm-slim","workdir":"/workspace","readOnlyRoot":true,"network":"bridge","memory":"2g","cpus":2,"pidsLimit":256,"user":"501:20","capDrop":["ALL"]}},

值得注意,启用沙箱模式,并不一定所有的操作都在沙箱里执行,这取决于 “会话类型”:

  1. 主会话(信任区):只和你进行的私密对话。推荐在主机上直接运行,拥有完全的访问权限。
  2. 非主会话(隔离区):公共场合的对话(群聊、频道),可能存在陌生人 @OpenClaw 的情况,所以需要沙箱保护,防止搞破坏。

mode(沙箱模式)

  • “none”:所有会话都直接在主机上运行。
  • “non-main”(默认):主会话在主机,非主会话在沙箱。
  • “all”:所有会话都在沙箱里。

scope(隔离范围)

  • “agent”(默认):每智能体一个容器。
  • “session”:更严格的每会话一个容器。
  • “shared”:单容器共享(安全性较低)。

workspaceAccess(智能体工作区访问):OpenClaw 默认的智能体工作区是 ~/.openclaw/workspace,配置文件 ~/.openclaw/openclaw.json 可以修改。

  • “none”(默认):容器内不可访问智能体工作区。
  • “ro”:将智能体工作区只读挂载到容器内的 /agent
  • “rw”:将智能体工作区读写挂载到容器内 /workspace

容器安全加固

  1. “workdir”: “/workspace” — 将智能体工作区 ~/.openclaw/workspace 挂载到容器 /workspace 内。
  2. readOnlyRoot: true — 容器内只读根文件系统,所以无法在容器内安装系统包(比如 apt-get install 会失败)、无法修改 /usr, /bin, /etc 等系统目录、无法删改系统文件。绝对的安全,但也欠缺灵活性。
  3. “user”: “501:20” — 容器以非 root 用户运行,id -u 和 id -g 查看 macOS 用户的 UID 和 GID,否则容器内无法访问智能体工作区 ~/.openclaw/workspace。
  4. pidsLimit: 256 — 进程数量限制。
  5. memory: “1g” / memorySwap: “2g” — 内存限制
  6. “cpus”: 2 — CPU 限制
  7. network: “bridge” — 使用桥接网络,如果没有网络需求可以配置为 none。
  8. “capDrop”: [“ALL”] — 移除所有的 Linux capabilities。

值得注意的是,沙箱容器是延迟启动的,例如有用户在群 @OpenClaw “帮我查一下天气”,然后 OpenClaw 会检测到是非主会话,然后查看是否有该 agent 的容器,如果没有则自动创建并启动容器。

$dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 90f17adc4928 openclaw-sandbox-browser:bookworm-slim"sleep infinity"9seconds ago Up8seconds5900/tcp,6080/tcp,9222/tcp openclaw-sbx-agent-main-0d71ad7a

这个容器本质上只是提供了隔离的执行环境,里面没有实际的程序:

$dockerexec-it-uroot 90f17adc4928bashroot@90f17adc4928:/workspace# ps -efUIDPIDPPIDC STIME TTY TIME CMD50110012:56 ? 00:00:00sleepinfinity root70012:57 pts/0 00:00:00bashroot137012:57 pts/0 00:00:00ps-ef

让 OpenClaw 在容器里执行命令,例如创建一个测试文件:

root@90f17adc4928:/workspace# pwd/workspace root@90f17adc4928:/workspace# lsAGENTS.md HEARTBEAT.md IDENTITY.md SOUL.md TOOLS.mdUSER.md skills test01

上述为 Docker 沙箱给与了最高的安全性,但也牺牲了灵活性。可以按需调整,但 OpenClaw 目前支持的 Docker 配置有限,例如 volumes 就不支持。

如果希望在沙箱容器中能够灵活的安装各类软件包,可以考虑下列配置,但请时刻注意安全风险问题。

{"messages":{"ackReactionScope":"group-mentions"},"agents":{"defaults":{"sandbox":{"mode":"all","scope":"agent","workspaceAccess":"rw","docker":{"image":"openclaw-sandbox-browser:bookworm-slim","workdir":"/workspace","readOnlyRoot":false,# 可以 apt-get 安全软件版"network":"bridge","memory":"2g","cpus":2,"pidsLimit":256,"capDrop":[],# 不限制 Linux Caps"binds":["/Users/fanguiju/devworkspace:/devworkspace:rw"]# 挂载开发工作目录}},

网络安全

  1. 端口暴露最小化:OpenClaw 服务器最多只会用到 3 个端口:1)SSH 22;2)Gateway 默认的 18789 端口号;3)消息平台随机端口,比如 Telegram 用 443 端口。最小化的只开放上述端口,并上述端口号都应该被修改,降低暴露风险。尤其是 SSH 应该采用密钥认证和禁止 Root 登陆。

  2. 网络访问控制:限制外网可访问 OpenClaw 的 18987 端口,设置仅允许本地访问。

$vim~/.openclaw/openclaw.json{"gateway":{"bind":"loopback",# 默认 Socket 只绑定到本地 lo 接口"port":18987,# 修改为新的端口号# 重启$ openclaw gateway stop $ openclaw gatewayinstall

如果你希望自己设备的公网 IP 可以访问 Gateway,那么务必在 MacOS 上设置公网 IP 防火墙规则。

Channel 安全

添加 Channel 安全配置。

{"channels":{"whatsapp":{"allowFrom":["+8613800138000","+8613800138001"],"groups":{"*":{"requireMention":true}}},"discord":{"allowFrom":["work","personal"]}},"messages":{"groupChat":{"mentionPatterns":["@openclaw","@bot"]}}}

操作系统安全

如果你让 OpenClaw 运行在主力机上,那你不得不时刻关心系统安全问题。

  1. 非 Root 降权:OS/Kernel 层面的安全,首要考虑对 OpenClaw 进程进行降权操作。以非 Root 用户运行,权限最小化,避免 OpenClaw 操作高风险的系统调用。

启用沙箱环境是在 “隔离” 的基础上也连带的进行了 “降权”,例如:OpenClaw 在 docker.ts 中已经硬编码了 --security-opt no-new-privileges,此外还在 openclaw.conf 中添加了 readOnlyRoot True、user 1000:1000、capDrop ALL 等配置。所以启用沙箱环境非常重要。

  1. “人在回路” 授权:除了 “降权” 之外,还需要人类参与充分的 action 授权,以至于能够充分的掌握 OpenClaw 所做的一切。

应用进程安全

  1. 对于 OpenClaw 本身的安全考虑,首先就是要定时更新版本,跟踪并及时修复开源漏洞。查看 OpenClaw 的版本:
$ openclaw--version2026.2.9
  1. 加固 OpenClaw 配置文件,将 openclaw.json 设置为只读,避免配置文件中的安全策略被修改。
$chmod400/root/.openclaw/openclaw.json

应用数据安全

这里指的是 OpenClaw 应用本身的数据安全。OpenClaw 是一个持续 “进化” 的机器人,因为它具有 “Memory” 记忆系统,记录了所有关于你的事情。时间长了之后,它会越来越懂你。反之,如果外泄了,那么攻击者就得到了你的一份心理画像。

所以数据安全的核心就是保护 OpenClaw Memory 的安全,以避免被篡改和删除。具体的,我们只需要定时备份 OpenClaw 的主目录即可,里面包含了配置文件和聊天记录。

$ ll ~/.openclaw

设置定时备份:

$crontab-e00* * *zip-r~/openclaw_backup_$(date+%Y%m%d).zip ~/.openclaw

企业数据安全

数据安全优先,按需选择模型部署模式。
处理敏感数据时,优先使用 Ollama 等本地离线模型,避免将机密信息发送到云端;非敏感数据可选择 “云端大模型+本地执行” 模式,兼顾效率与成本,从源头做好数据分级管理。

身份认证安全

见上文 Token 章节。目前最新的版本已经引入了 token 身份鉴权,所以要及时进行 OpenClaw 的更新,目前社区在加紧安全防护的开发。

Token 成本安全

为了保护你的 Token,一定记得要设置 Token Quota,避免烧完。

OpenClaw Token 消耗的六大来源:

Skills 安全

现在 Clawhub 等 Skills 市场对安全审查并不严格,你很可能会从其中安装到一个进行 “Prompt 注入” 的 Skill。对此的解决办法是我们不要直接从市场上安装第三方 Skill,而是先下载安装包,然后先让 AI 审查源码、理解逻辑,然后重写一个干净的版本。在 AI 编程的今天这个过程通常只要几分钟,但可以极大降低供应链攻击的风险。

http://www.jsqmd.com/news/484694/

相关文章:

  • DTD元素解析:XML结构基础
  • DeepAnalyze模型评测:8B参数版本的性能全面测试
  • 本科论文救星!Paperzz AI 写作:从选题到成文,4 步搞定 12000 字原创论文
  • 文墨共鸣作品集:100组中文常见转述句对的StructBERT语义相似度实测
  • Spring Boot 3.x开发中DSL配置与旧版配置API不兼容问题详解及解决方案
  • XSD简易元素入门指南
  • 7电平级联H桥逆变器:从仿真到现实的探索之旅
  • 【Ocean modeling + book(一个章节)】海洋模型与业务化海洋学发展综述
  • Ionic切换开关全攻略
  • 第十五届蓝桥杯c++B组:好数
  • 鸡眼扣自动摆盘实战指南:半自动化整列机为何成为行业首选?
  • 网络层IP理解
  • 基于MPC模型预测控制的“风储调频”系统:仿真与实际频率特性的对比研究
  • java--多线程--线程安全
  • 在openSUSE-Leap-15.6-DVD-x86_64中使用gnome-builder-45.0的基本功能(二)空白Makefile工程
  • AI在线客服系统源码独立管理后台,自动回复文本、图片、视频等多种消息类型
  • 【负载均衡oj项目】03. compile_server编译运行服务设计
  • 大模型学习宝典:零基础入门到项目实战的完整攻略
  • CNN - BiLSTM实现多变量/时间序列预测:Matlab轻松上手
  • 打卡信奥刷题(2956)用C++实现信奥题 P5923 [IOI 2004] empodia 障碍段
  • 基于PID控制的步进电机控制系统仿真:Matlab Simulink的奇妙之旅
  • 打卡信奥刷题(2957)用C++实现信奥题 P5924 [IOI 2004] Phidias 菲迪亚斯神
  • 三维钢板上SH0模态的超声检测建模手记
  • “HALCON error #2404: Invalid handle type in operator do_ocr_multi_class_cnn
  • 基于RSSI加权质心定位算法:将RSSI值转换为距离并优化精确度的新方法
  • 抽象类接口内部类
  • 用大模型和RAG打造智能客服系统,小白也能轻松上手
  • 转载 Java内部类详解
  • 416. 分割等和子集-day39
  • RAG技术解析:让大模型从“闭卷考试“到“开卷考试“的进化