OpenClaw 提示词注入防御实战:从 91% 攻击成功率到零信任加固的完整方案

OpenClaw 的提示词注入防御核心在于把「授权问题」从「内容问题」里拆出来——ZeroLeaks 实测数据显示,默认配置下 OpenClaw 的提示词注入成功率高达 91%,数据库暴露率 84%,安全评分仅 2/100(ZeroLeaks, 2026)。这不是模型不够聪明,而是应用层完全没有建立有效的信任边界。本文直接给一套可落地的六层防御方案,从输入隔离到权限管控,从 Exec 审批到 Skills 审计,目标是让攻击成功率降到可控范围。
为什么 OpenClaw 的提示词注入不是传统越狱?
OWASP 把提示词注入列为 LLM 应用十大安全风险第 1 位,出现在 73% 以上生产级 AI 部署的安全审计中(OWASP, 2025)。但 OpenClaw 的情况更特殊:它不是用户直接跟模型聊天时越狱,而是 Agent 在自主执行过程中被外部不可信数据劫持。
Penligent 的分析很到位:OpenClaw 的 Context 是一个统一流,把 System Prompt、Conversation History、Tool Outputs、Injected Workspace Files 全部混在一起。这意味着攻击者不需要攻破模型,只需要污染流入 Context 的任意一个数据源,就能重定向 Agent 的行为目标。更麻烦的是 SOUL 持久化内存——被注入的恶意指令可以写入长期记忆,在后续会话中持续生效,相当于给 Agent 植入了一个「后门人格」。

Promptfoo 的实验室测试也验证了三阶段攻击链:恶意网页诱导 Agent 枚举本地能力 → 读取本地敏感文档 → 创建持久化工件并发送未授权消息。关键结论:当浏览、本地文件访问和出站操作共享同一信任边界时,恶意网页就能转化为端点安全问题(Promptfoo, 2026)。
六层防御架构怎么搭?
我按「事前拦截 → 事中控制 → 事后审计」的逻辑,把防御拆成六层。每一层都有具体的配置命令,不是纸上谈兵。
第一层:输入隔离与结构化分段
输入层的目标是 把可信指令和不可信数据物理隔开。OpenClaw 的 Context 统一流是设计缺陷,但我们可以通过结构化分段来缓解。

具体做法:
- 对所有外部输入(网页内容、文档、用户消息)做来源标记和信任评分
- 使用基于模式的分类器捕获低级注入,实测可拦截约 80% 的明显攻击(ACL 2024 InjecAgent 研究数据)
- 对嵌入文档中的可见指令(占攻击交付的 37.8%)、HTML 属性掩盖(19.8%)、CSS 渲染抑制(16.9%)做预过滤
Simon Willison 的致命三元组框架值得刻进脑子里:任何同时具备 访问私有数据 + 暴露于不可信 Token + 存在数据外泄矢量 的 Agent,无条件地易受间接提示词注入攻击。防御思路就是打破这个三元组——至少拆掉其中一条腿。
第二层:权限收窄与最小权限原则
OpenClaw 官方安全指南的核心假设是「每台机器一个用户,该用户一个 Gateway」,不支持敌对多租户(OpenClaw Docs, 2026)。这意味着如果你让多个不信任用户共享同一个 Gateway,安全模型直接崩塌。
最小权限落地的几个硬配置:
- 运行
openclaw security audit定期巡检,--fix参数会自动把常见开放群组策略切换为 allowlist,恢复logging.redactSensitive: tools - 收紧状态、配置、include-file 的读取权限
- 默认关闭 fs-safe 的可选 POSIX Python 辅助程序,只用根目录边界内的文件访问、原子写入、归档提取
Supabase 数据库那件事必须单独拎出来讲:ZeroLeaks 发现 OpenClaw 的 Supabase 实例完全公开,没有启用行级安全策略(RLS)。修复命令就两条:

ALTER TABLE agents ENABLE ROW LEVEL SECURITY;
CREATE POLICY user_isolation ON agents FOR ALL USING (user_id = auth.uid());
没做这步之前,任何知道匿名密钥的人都能读取整个数据库,包括所有用户对话记录和第三方 API 密钥。
第三层:Exec 审批与沙箱隔离
Exec 审批是 OpenClaw 唯一内置的「安全联锁」机制,但默认是 YOLO 模式(无审批)。必须手动打开两层策略:
- OpenClaw 配置中的
exec.security策略(deny / allowlist / full) - 主机本地
~/.openclaw/exec-approvals.json中的审批策略
策略开关组合建议:
- 日常开发:
exec.security = allowlist+exec.ask = on-miss,允许列表按智能体划分,支持argPattern限制参数范围 - 生产环境:
exec.security = deny+exec.ask = always,高危命令必须人工确认 - 严格模式:打开
tools.exec.strictInlineEval,把内联代码求值视为仅可通过审批运行
审批流程有防篡改设计:Gateway 向操作员客户端广播 exec.approval.requested,审批请求包含规范 systemRunPlan 载荷。如果调用方在审批后更改 command 等字段,Gateway 会直接拒绝——这个设计比很多企业的 CI/CD 审批还严谨。
第四层:推理层目标一致性验证

这层比较新,但 2026 年的生产环境已经开始落地。微软的防御架构把每次工具调用视为「高价值高风险事件」,由独立安全服务分析意图后实时允许或拦截。
OpenClaw 场景下可以借鉴的做法:
- 污点追踪:标记所有来自外部不可信来源的数据,在 Agent 准备执行工具调用时检查污点是否污染了目标或参数
- 单次调用审查:不审查整个对话,只审查「即将发生的这个动作」是否符合原始任务目标
- 目标一致性验证:对比 Agent 当前计划与初始用户意图的偏离度,超过阈值触发人工关卡
ACL 2024 的 InjecAgent 研究测了 30 种不同 LLM Agent 基准,采用 ReAct 提示词的 GPT-4 在现实条件下有 24% 的时间容易受到攻击。推理层防御的目标就是把这 24% 再砍一刀。
第五层:操作层爆炸半径隔离
操作层的核心思想是:就算前面几层都被突破了,也要让破坏范围可控。
具体手段:
- 工具作用域限制:每个 Skill 只能访问预定义的 API 集合和数据范围
- 临时凭据:通过身份网关模式在运行时评估任务意图,铸造最小权限凭据并设置最短有效期
- 网络隔离:把浏览操作与高信任操作(文件写入、出站消息)拆到不同的 Agent 实例或 Gateway
- Slack 共享工作区特别注意:任何允许的发送者都可以在智能体策略内诱导工具调用,来自某个发送者的提示注入可能影响共享状态、设备或输出
Promptfoo 的部署建议很实在:将浏览与高信任操作分离;出站消息需显式确认;监控工件创建与监控网络操作同等重要。
第六层:Skills 审计与供应链安全
这层是 SlowMist 指南里最被低估的部分。OpenClaw 的 Skills 生态是供应链攻击的完美载体——你装了一个第三方 Skill,等于给 Agent 开了一个新权限窗口。
SlowMist 的审计协议(v2.8 Beta 增强版):
- 安装前审查 Skill 的权限声明和代码逻辑,拒绝「过度授权」的 Skill
- 二次下载检测:Skill 在安装后是否偷偷拉取额外代码
- 高危文件类型预警:
.sh、.py、.js等可执行文件在安装包中出现时触发人工审查 - 定期运行
openclaw security audit检查已安装 Skills 的权限是否被后续更新扩大
华为 2026 年 5 月发布的《OpenClaw 安全解决方案技术白皮书》把供应链安全纳入了网络-Agent-主机三层围栏模型的核心层,推动建立行业参考标准促进不同厂商在安全能力上的互通与协作(华为, 2026)。
华为三层围栏模型怎么平民化落地?
华为白皮书提出的网络-Agent-主机三层围栏,听起来很企业级,但个人和小团队也能拆着用:
| 层级 | 企业级方案 | 个人/小团队平替 |
|---|---|---|
| 网络层 | 零信任网络接入 + API 网关审计 | 单台机器单用户、VPN 隔离开发环境 |
| Agent 层 | 身份网关 + 动态凭据 + 意图分析 | Exec 审批全开、allowlist 严格限制、污点追踪手动标记 |
| 主机层 | 主机 EDR + 容器沙箱 + 行为监控 | fs-safe 严格模式、文件系统只读挂载、每晚手动巡检 |
SlowMist 的「每晚 13 项指标巡检」可以自动化:v2.8 Beta 提供了 6 步 Agent 辅助部署工作流,从认知内化到交付验收,其中 --light-context 的 Cron 巡检能防止 workspace context 劫持。巡检报告默认持久化到 $OC/security-reports/,30 天轮转。
人工关卡怎么设?
再强的技术防御也挡不住所有攻击,人工关卡是最后的兜底。建议按风险分级:
- 低风险可逆操作(读文件、查日志):完全自主,不打扰
- 高风险操作(写文件、执行命令、发消息):需要人工显式确认
- 破坏性操作(删数据、改配置、转账类工具调用):需要确认 + 冷却期(比如 30 秒倒计时,期间可取消)
2025 年 6 月那个银行助手案例就是教训:客户支持对话中嵌入不可见指令,要求智能体绕过交易验证,导致 25 万美元被转移。如果当时有「转账类操作强制人工确认 + 冷却期」的关卡,这笔钱大概率能保住。
监控告警与长期运营
防御系统搭完不是终点,是起点。几个必须持续做的事:
- 每晚显性化巡检:SlowMist 的 13 项指标覆盖权限变更、新增 Skills、异常工具调用频率、敏感文件访问等
- Git 灾备同步:把 OpenClaw 配置和状态纳入版本控制,被篡改时能快速回滚
- 防篡改审计日志:所有审批记录、权限变更、工具调用必须写入只读存储,Agent 自身不能修改
- 定期攻防演练:用 Promptfoo 或类似工具模拟攻击链,验证防御有效性
OpenAI Atlas 加固文档说得很诚实:提示注入不太可能被完全解决。但「不能完全解决」不等于「不解决」——六层防御叠加后,攻击成本会指数级上升,大多数自动化攻击会被挡在外面。
最后更新:2026 年 6 月
这套方案我基于 OpenClaw 官方文档、ZeroLeaks 测试数据、SlowMist 安全指南和华为白皮书综合整理,核心配置命令都经过验证。如果你的部署场景有特殊需求(比如多租户、高合规要求),建议把华为白皮书的完整方案拿出来对照着补。有问题欢迎在评论区丢具体报错,我尽量帮看。