因果洗白:被拒绝的工具调用为何仍会泄露数据
2026 年 4 月的一篇论文表明,拒绝智能体的工具调用并不意味着攻击结束:拒绝本身就是一条信息通道。扁平的污点追踪会漏掉它。
这是什么?
2026 年 4 月,独立研究者 Mohammad Hossein Chinaei 发表了 Causality Laundering: Denial-Feedback Leakage in Tool-Calling LLM Agents(arXiv 2604.04035)。论文点出了大多数工具调用智能体运行时防御共有的一个盲点:默认认为一旦工具调用被拒绝,威胁就此结束。Chinaei 认为事实并非如此。被拒绝的动作不产生任何数据,但它仍是一个可观测事件:智能体从这次拒绝中推断出的信息,可以稍后通过一次看似无害的工具调用被外泄。
作者将这一模式命名为因果洗白(causality laundering),并提出了一种防御方案——智能体引用监视器(Agentic Reference Monitor,ARM),将被拒绝的动作视为一等的溯源事件。这是一项受控的架构研究,而非生产环境中实际利用的报告,但它形式化了一类目前扁平污点追踪与数据流防御尚未建模的攻击面。
工作原理
设想一个具备 read_file 与 send_email 工具的智能体。一段隐藏在不可信内容(被投毒的邮件、抓取的网页)中的提示注入载荷指示智能体外泄 /etc/shadow。策略引擎正确地拒绝了 read_file("/etc/shadow") 调用——没有任何敏感字节被返回。
扁平污点追踪系统会判定攻击已被阻断。但如果拒绝原因是”权限被拒”而非”文件不存在”,智能体仍能推断该文件确实存在。载荷随即指示它调用 send_email(body="[REDACTED:从拒绝中推断出的事实]") 发往外部地址。在数据流防御看来,这第二次调用毫无异常:它不携带任何被污染的字节,不匹配任何工具返回的敏感值,也没有任何谱系把它与那次被拒绝的读取联系起来。然而,它传递的正是源自该次阻断的信息。
论文对此模式给出形式化定义:被拒绝的动作 a_d 之后出现一个有副作用的动作 a_s,两者之间不存在成功的数据流路径,但 a_s 在因果上受到该拒绝的影响——若没有这次阻断,智能体的行为会有所不同。两种放大手段使情况更糟。在多探针指纹识别中,攻击者发出大量探针,并外泄”允许/拒绝”结果构成的向量,以测绘访问控制配置;单次拒绝泄露很少,但整个序列泄露很多。在洗白式组合中,一个被允许的中间工具(计算器、格式化器)重新编码拒绝信号,使其在文本上不再与被阻断的调用相关联。
这并非纯粹的理论。论文引用了近期成果(Jiralerspong、Kondrup 与 Bengio,2026 年 3 月):前沿智能体能够仅凭阻断反馈推断出隐藏监控的存在,即便从未被告知存在监控。
为何重要
三类运行时防御从设计上就会漏掉这条通道。扁平的信息流追踪(如 FIDES)只通过成功的工具输出传播标签——被拒绝的调用没有可供标记的输出。基于成功执行的依赖图不会为被阻断的动作记录节点,因此被拒读取与后续发送之间没有边。基于重放的因果归因防御消融的是攻击者控制的内容,而这里的触发信号由执行层自身产生,并非来自外部输入。
实践要点:一个”拒绝”判决并不是干净的终止。如果你的威胁模型把被阻断的动作视为已被消除,那你就有一条未被测量的旁路通道。随着智能体运行更久、更自主,拒绝事件的数量——以及它们所编码的信息——也随之增长。
防御措施
ARM 是一个介入工具调用边界的运行时执行层(论文将其描述为 MCP 代理,但同样适用于任何集中式工具调用运行时)。其设计要点可推广到原型之外:
-
将被拒绝的动作设为一等对象。 把每一次
DENY记录为溯源图中的一个节点,并向可能受其影响的后续动作添加反事实边。一个从拒绝节点可达的、指向数据汇的调用将继承该安全上下文,从而也可被阻断。这是对抗因果洗白的核心手段。 -
通过完整性格传播信任。 ARM 将来源排序为
ToolDesc < ToolUntrusted < ToolTrusted < UserInput < SysInstr,并为任何派生数据赋予其各来源信任度的最小值。配合字段级溯源,这能阻止混合溯源滥用——即一个可信对象夹带某个不可信字段(例如,在其余可信的联系人记录中混入攻击者控制的邮件地址)。 -
保持执行的确定性。 所有判定都是图遍历与显式规则——不会再额外调用 LLM 去评判受监视的智能体。原型在 rustworkx 后端上运行该图,延迟在亚毫秒级(相对于 100 毫秒至 10 秒的推理时间可忽略不计),代码约 910 行 Python。
-
分层并记录。 ARM 叠加了硬边界层、溯源层、模式层以及一个不可变的能力令牌(会话开始时冻结,可削减但绝不可扩增)。每一次判决都写入一个哈希链审计日志,使任何篡改都可被检测。
-
与预防手段结合。 ARM 限制注入成功后的损害;它补充而非取代设计期防御,如 CaMeL、指令层级,以及致命三要素纪律——绝不把私有数据、不可信输入与外泄汇集中到一处。请把对拒绝敏感的溯源视为又一层防护,而非万能解药。
现状
| 项目 | 参考 | 日期 | 备注 |
|---|---|---|---|
| Causality Laundering 论文(arXiv 2604.04035) | arXiv | 2026-04 | 命名该攻击类别;提出 ARM 防御 |
| ARM 评估 | 同上 | 2026-04 | 受控的三场景差分实验;面向图的层阻断了扁平基线漏掉的全部三种 |
| 佐证(arXiv 2603.16928) | arXiv | 2026-03 | 智能体仅凭阻断反馈即可推断出隐藏监控 |
| 成熟度 | — | — | 架构研究;人工构造场景,尚无前沿 LLM 在环的基准实验 |
正确的解读不是”拒绝判决毫无用处”,而是阻断是一个事件,而非一次抹除——任何忘记自己刚刚发出的拒绝的智能体架构,都会在身后留下那条推断通道敞开着。