乐于分享
好东西不私藏

OpenClaw 核心技术深度解析(八):安全模型与沙箱

OpenClaw 核心技术深度解析(八):安全模型与沙箱

当一个 AI Agent 可以读写文件、执行命令、操控浏览器、访问你的聊天账号时,安全就不再是"可选项"——它是生存条件。OpenClaw 的安全模型不是事后补丁,而是从架构层面设计的三层纵深防御体系。


三层防护架构

OpenClaw 的安全跨越三个边界:入站、执行、数据。

第一层:入站防护

入站防护解决的问题是:谁可以与 Agent 对话?

机制
说明
配置
DM 配对验证
未知发送者需要输入验证码才能与 Agent 对话
security.dm_pairing: true
显式白名单
只有白名单中的用户可以发送消息
security.whitelist: [user_id_1, user_id_2]
群组提及门控
群组中需要 @提及 Agent 才会响应
security.require_mention: true
速率限制
限制单位时间内的消息数量
security.rate_limit: 10/min

这些机制确保了 Agent 不会被陌生人滥用,也不会在群组中被无关消息触发。

第二层:执行防护

执行防护解决的问题是:Agent 可以做什么?

机制
说明
Docker 沙箱
非主会话的命令在 Docker 容器中执行,容器与宿主机隔离
8 层工具策略
前文详述的多层过滤系统,最严格的组合胜出
提升模式
敏感操作需要显式切换到 elevated 权限级别
命令审批
高风险命令(如 rm -rfsudo)需要人工确认
超时控制
所有工具调用都有超时限制,防止无限执行

第三层:数据防护

数据防护解决的问题是:数据存储在哪里?谁可以访问?

机制
说明
本地存储
所有数据存储在本地文件系统,不上传到云端
记忆作用域
主会话和群组会话的记忆严格隔离
凭证独立管理
API 密钥等凭证存储在 ~/.openclaw/credentials/,与会话数据分离
网络回环隔离
Gateway WebSocket 仅监听 127.0.0.1:18789,外部无法直接访问
会话加密
会话记录使用本地加密存储

三个权限级别

OpenClaw 定义了三个递进式的权限级别:

级别
名称
默认场景
可用工具
说明
non-main
受限模式
群组会话
最少(无 exec、无 browser、无 memory 写入)
最安全,适合不受信任的环境
main
正常模式
个人会话
大部分工具
日常使用的默认级别
elevated
提升模式
显式切换
全部工具
敏感操作,需要用户确认

权限切换是显式的——Agent 不能自己提升权限,必须由用户主动切换。这防止了 Agent 被提示注入攻击后自动获取高权限。


Docker 沙箱:隔离的艺术

Docker 沙箱是 OpenClaw 执行防护的核心。当 Agent 在非主会话中执行命令时:

沙箱架构

用户消息 → Agent 决定执行命令    → 检查会话类型    ├── 主会话 → 直接在宿主机执行(受工具策略限制)    └── 非主会话 → 创建 Docker 容器        → 挂载工作区(只读或读写,取决于策略)        → 在容器内执行命令        → 返回结果        → 销毁容器(可配置保留)

沙箱限制

限制
说明
文件系统
只能访问挂载的工作区目录
网络
可配置:完全隔离 / 仅允许特定域名 / 完全开放
资源
CPU、内存、磁盘空间限制
时间
命令执行超时限制
权限
容器内以非 root 用户运行

沙箱的实际效果

假设一个恶意提示试图让 Agent 执行 rm -rf /

  1. 入站防护:如果发送者不在白名单中,消息被拒绝
  2. 工具策略:如果当前会话的策略禁止 exec,命令被拒绝
  3. 命令审批:如果启用了审批工作流,命令需要人工确认
  4. Docker 沙箱:即使命令执行,也只影响容器内的文件系统
  5. 超时控制:命令超时后自动终止

五层防护,任何一层都足以阻止攻击。


安全审计与监控

OpenClaw 提供了完整的安全审计能力:

功能
说明
操作日志
所有工具调用记录在 JSONL 日志中
ACP Provenance
每个操作都有来源追踪和会话追踪 ID
异常检测
异常的工具调用模式触发告警
会话回放
可以回放任何会话的完整操作历史

已知安全问题与社区响应

OpenClaw 的安全模型并非完美。社区和安全研究者发现了一些值得关注的问题:

localhost 信任问题

正如 Adaptavist Group 的分析指出:OpenClaw 自动批准来自 localhost 的连接,因此任何部署在标准反向代理后面的实例,看起来都会默认认证所有流量。

社区响应:后续版本增加了基于 token 的认证,即使是 localhost 连接也需要提供有效 token。

技能供应链安全

OpenClaw 的技能生态系统面临供应链攻击风险:

  • 恶意技能可能窃取凭证
  • 技能更新可能引入后门
  • 缺乏技能签名验证

社区响应:建议将每个技能视为不受信任的代码,实施严格的扫描、版本锁定和持续监控。

提示注入防护

AI Agent 面临的独特威胁——提示注入攻击:

  • 恶意网页内容可能包含隐藏指令
  • 群组消息中可能包含针对 Agent 的攻击
  • 工具返回的结果可能被篡改

OpenClaw 的防护

  • 群组会话默认 non-main 权限,限制可用工具
  • 工具结果经过清理,移除潜在的注入内容
  • 敏感操作需要 elevated 权限,需用户显式确认

最佳实践

社区总结的安全最佳实践:

实践
说明
渐进式信任
像对待新员工一样对待 Agent——先在沙箱模式下运行,逐步扩展权限
最小权限
只给 Agent 完成任务所需的最少工具
定期审计
定期检查操作日志,发现异常模式
版本锁定
锁定技能和插件版本,避免自动更新引入风险
网络隔离
使用 Tailscale 而非公网暴露 Gateway
备份
定期备份凭证和配置(OpenClaw 2026.3.8 提供了 backup CLI)

与其他框架的安全对比

特性
OpenClaw
Claude Code
AutoGPT
LangChain
权限级别
3 级(non-main/main/elevated)
2 级(normal/elevated)
1 级
无内置
沙箱
Docker 容器
Docker(可选)
无内置
工具策略
8 层
单层
无内置
入站防护
DM 配对 + 白名单 + 提及门控
N/A(本地工具)
数据隔离
本地存储 + 作用域隔离
本地
本地
取决于配置
审计日志
JSONL + ACP Provenance
无内置

总结

OpenClaw 的安全模型是目前开源 AI Agent 框架中最全面的设计之一。三层纵深防御(入站/执行/数据)、三个权限级别、8 层工具策略、Docker 沙箱——这些机制共同构成了一个可以在生产环境中安全运行的 AI Agent 系统。

安全不是功能的对立面,而是功能的基础。OpenClaw 证明了:一个强大的 AI Agent 可以同时是一个安全的 AI Agent。


参考链接

  • Penligent - Hardening the OpenClaw AI Frontier
  • Penligent - OpenClaw Security Audit
  • The Agent Stack - Security Boundaries, Tool Risk, and Authorization
  • Adaptavist - OpenClaw's Three-Layer AI Security Failure
  • Traefik - OpenClaw, NemoClaw, and Application-Layer Security
  • lzw.me - OpenClaw Security Guide
  • NextGenTechInsider - OpenClaw Skill Ecosystem Security Flaws