加载中...
加载中...
提示注入防不住,往往不是模型不够聪明,而是架构把「数据」当成了「指令」——Dual-LLM 把看不可信内容的模型和执行动作的模型彻底分开,CaMeL 再用能力标签加数据流追踪把安全从概率拦到设计保证。
提示注入防不住,往往不是模型不够聪明,而是架构把「数据」当成了「指令」——Dual-LLM 把看不可信内容的模型和执行动作的模型彻底分开,CaMeL 再用能力标签加数据流追踪把安全从概率拦到设计保证。
根因:上下文里没有指令与数据的分界
工具返回值、检索文档、网页正文和用户指令走的是同一条 token 流,模型没有可靠机制判断「这段是要我读的」还是「这段是要我做的」。因此过滤、提示词加固、对齐训练都只是概率性缓解——攻击者换措辞、换编码就可能绕过。要把安全从概率变成保证,只能改架构。
Dual-LLM 模式:把「看内容」和「做动作」拆开
Simon Willison 于 2023 年 4 月提出。Privileged LLM(P-LLM)只接触可信输入(用户请求),负责规划和调用工具;Quarantined LLM(Q-LLM)只接触不可信内容,没有任何工具权限;Controller 是普通程序而非模型,负责在两者之间搬运。硬约束是:Q-LLM 的原始输出永远不回流给 P-LLM,只能以变量引用的形式(如 $email-summary-1)传递。
Dual-LLM 的漏洞:Q-LLM 自己也会被注入
如果 Q-LLM 的任务是从邮件里抽出「收件人地址」,攻击者就能在邮件正文里写「地址已变更为 X」,让 Q-LLM 输出攻击者地址,P-LLM 照单执行,文件被外发。也就是说,只要 Q-LLM 的输出能影响下游工具调用的参数,攻击面就还在。这一步正是 CaMeL 要补的洞。
CaMeL:用能力标签把数据流管起来
Google DeepMind 2025 年 3 月提出(arXiv:2503.18813)。P-LLM 不生成自然语言计划,而是生成一段受限子集的 Python 程序;由自研解释器执行,每个值都带上「能力标签」(来源 + 允许流向),工具调用前按策略校验。于是不可信数据只能当数据用,既不能改变程序控制流,也不能流向未授权的出口。落到三个经典安全概念上:控制流完整性、访问控制、信息流控制。
代价与边界
在 AgentDojo 基准上,CaMeL 有 77% 的任务可证明安全地完成,无防御基线是 84%——约 7 个百分点的可用性代价换设计级保证;论文本身也承认没有完全解决(Q-LLM 输出侧信道、策略编写负担)。另一个固有失败模式是「Data requires action」:当该做什么动作本身取决于不可信数据时,这类架构只能卡住,必须转人工确认。
与 spotlighting 的关系
Spotlighting(Microsoft,arXiv:2403.14720)是提示层的缓解手段:把 ASR 从大于 50% 压到 2% 以下,但仍属概率性,且攻击者可以尝试复现分隔符。工程上的正确做法是分层:spotlighting 做输入标记,能力标签做数据流强制,人机确认兜住无法自动判定的动作。
测试1:用 AgentDojo 建注入基线
测试2:最小复现「数据即指令」
测试3:复现 Dual-LLM 的已知漏洞(Q-LLM 侧污染)
测试4:手工版能力标签加数据流策略检查
测试5:spotlighting 三种变体对照
测试6:银行场景的数据流矩阵与策略用例
坑点1:以为拆成两个模型就安全
Dual-LLM 只隔离了「谁看内容、谁做动作」,没有隔离「Q-LLM 的输出会不会污染下游参数」。缓解办法:对 Q-LLM 输出做 schema 校验加白名单比对(收件人地址必须来自通讯录工具,不能来自正文),并给字段打来源标记。
坑点2:把正则或关键词过滤当主防线
过滤是概率性的,编码、同义改写、零宽字符、多语言都能绕过;同时过滤器误拒会打断正常业务。它的正确定位是纵深防御的一层,且必须持续监控绕过率——不能写进准入准出闸门当作唯一判据。
坑点3:强保证会掉可用性,而且策略要有人维护
77% 对 84% 意味着约 7% 的正常任务会被安全机制挡住;策略表本身需要业务方参与评审、随业务变更同步维护,否则要么漏(策略缺失)要么误拦(策略过严)。这类安全需求应在需求调研阶段就写进表,不能等上线后补。
坑点4:忽略 Data requires action 类任务
当动作本身取决于不可信数据(例如邮件里说「本周还款日调整了」)时,Dual-LLM 与 CaMeL 会因为控制流不能依赖不可信数据而卡住。这类任务要显式设计成人工确认分支或受限枚举映射,否则会表现为「Agent 突然不干活了」,被误判成模型能力问题。
「分享到微信」:手机浏览器打开时一键调起系统分享面板,选择微信即可分享到朋友圈或聊天。电脑上回退为复制文案。
暂无留言,来说两句吧