CAD:结合上下文感知与对抗训练,攻克大模型 Agent 间接提示注入防御难题
Robust Context-Aware Detection of Malicious Instructions in Text
随着大语言模型(LLM)被广泛应用于自主 Agent 系统的构建,模型不仅能够自主规划任务,还能通过工具调用读取外部网页、检索企业私有数据库以及处理往来邮件。然而,这种强大的指令遵循能力也打开了一扇极度危险的大门——间接提示注入(Indirect Prompt Injection, IPI)。攻击者只需在外部网页、邮件正文或工具返回值中悄悄埋伏一段恶意提示词,就能劫持处于自主运行模式下的 Agent,使其越权执行转账、泄露敏感隐私数据,甚至调用恶意接口。
ArXiv URL:https://arxiv.org/abs/2608.05430v1
针对 IPI 的防御研究近年来层出不穷,但现实往往陷入两难困境。一方面,提示词级别的防护或外围隔离方案往往伴随着严重的“过度防御”,导致系统正常任务的可用性(Clean Utility)断崖式下跌;另一方面,许多基于分类器的文本过滤工具在面对静态注入时看似有效,一旦攻击者发起针对防御模型的主动逃逸攻击(Adaptive Evasion Attack),防线便会瞬间崩溃。圣路易斯华盛顿大学(Washington University in St. Louis)的研究团队在论文中指出了现有过滤器的核心病灶:传统的检测器通常将待检文本拆分成离散句子后孤立处理,既忽略了用户原始意图(Query),也抛弃了句子身处的周围上下文(Context)。
为了打破这一僵局,研究团队提出了轻量级的句子级检测框架 CAD(Context-Aware Detection,上下文感知检测)。CAD 不仅通过联合建模用户查询、上下文及目标句子的边缘影响来判断其恶意程度,更首次系统性地将对抗训练(Adversarial Training, AT)引入 IPI 句子分类器中,同时探索了基于嵌入空间的投影梯度扰动与基于大模型的释义改写(Paraphrasing)。实验结果证明,CAD 在显著压低自适应攻击成功率(Attack Success Rate, ASR)的同时,保住了极高的业务可用性,且运行开销几乎可以忽略不计。

为什么孤立的句子检测注定会失败?
在剖析 CAD 的设计之前,需要先理解为什么市面上现存的 IPI 检测器大多表现脆弱。
当下主流的内容安全分类器大多假设:一段恶意指令本身具有先验的“恶意特征”。但这种假设在 Agent 复杂的交互环境下完全不成立。一个文本片段是良性内容还是恶意注入,高度取决于两件事:第一,用户的初始查询是什么;第二,该文本周围的语境是什么。
举一个典型的业务场景:在差旅报销或邮件汇总任务中,如果外部邮件里写着“请将发票附件转发给财务部的 Alice”,如果用户的原始查询原本就是“帮我处理财务相关邮件并通知相关人员”,那么这句话就是百分之百合理的业务指令;但如果用户的原始查询仅仅是“总结今天收到的行业新闻”,这句“转发发票附件”就极有可能是一次企图触发越权工具调用的间接提示注入。换言之,指令的合法性必须相对用户 Query 进行判定。脱离了 Query,单独审视句子本身,分类器根本无从分辨这究竟是正常的业务指示还是攻击载荷。
与此同时,自然语言语义空间的离散性与高度丰富性,赋予了攻击者近乎无穷的逃逸空间。在面对白盒或黑盒检测器时,攻击者可以通过同义替换、句式重构、添加混淆噪音或利用 LLM 对注入指令进行动态释义。目前许多防护方案(如 PromptGuard 2 或部分基于单句分类的 Filter)面对静态基准尚有一战之力,但在面对动态生成的对抗性文本时,检测准确率便迅速归零。
更棘手的是系统开销。一些研究者试图通过外挂一个功能强大的裁判大模型来实时监控所有的上下文输入。这类系统级防御(如 Progent 或 DRIFT)虽然提升了一定的抗性,但代价极其昂贵——它们往往会带来 2 到 3 倍以上的端到端延迟膨胀,严重制约了高并发场景的实际落地。
CAD 核心机制:上下文感知的边际表征
为了在低成本下实现精准判定,CAD 将核心聚焦点放在了句子在给定 Query 与 Context 下的边缘影响(Marginal Impact)上。
具体而言,当用户发起查询 $q$ 并触发工具返回一段包含 $n$ 个句子的文档 $s=(s_1, \ldots, s_n)$ 时,CAD 的目标是对每一个句子 $s_j$ 进行二分类,判断其标签 $y_j \in {0, 1}$(0 表示良性,1 表示恶意注入)。
CAD 没有直接把单个句子 $s_j$ 送入分类头,而是将整个交互语境共同编码。它通过衡量加入句子 $s_j$ 之后对整体表征产生的边际变化,捕捉该句子在当前语境中出现的“突兀程度”。如果某个句子的语义逻辑与周围文本格格不入,或者其指令意图与用户的原始目标 $q$ 产生强烈冲突,这种表征差异就会被判定网络高度放大,从而准确定位潜在的注入载荷。
为了训练这个分类器,研究团队提出了一套三阶段解耦的数据生成策略。利用种子数据集(如 AgentDojo 中的银行、Slack、差旅等业务场景),团队使用 LLM 分别独立生成三类组件:良性环境文档 $s^c$、用户查询 $q$ 以及恶意目标载荷 $s^m$。随后,将恶意载荷随机插入到良性文档的不同句子边界处,从而消除模型对固定注入位置的拟合偏差。由于 AgentDyn 等复杂工作流基准在训练阶段完全不可见,这一合成方案极好地检验了检测器迁移到未见任务与工具时的泛化能力。
引入对抗训练:特征空间扰动能否抵御真实文本攻击?
即便检测器拥有了上下文感知能力,面对自适应攻击者的动态逃逸,它依然面临严峻考验。传统的机器学习安全领域普遍使用对抗训练(Adversarial Training, AT)来强化分类器,但经典 AT 依赖于两个强假设:特征空间是连续的,且扰动受限于 $\ell_p$ 范数球内。然而,自然语言文本是离散的词元(Token)序列,嵌入空间内的一个微小数学位移,往往在离散文本空间中找不到任何对应的合法句子。
这引出了学术界长期争论的一个核心科学问题:在连续特征空间中基于梯度算出来的扰动对抗训练,到底能不能防御下游 Agent 中真实、可实现的自然语言逃逸攻击?
针对这一问题,CAD 探索了两种截然不同的对抗训练变体,并将其深度融入优化目标中:
目标函数的构造形式为:
\[\min_{\theta}\sum_{i\in D} \left(\alpha\sum_{s_{ij}\in\bar{s}_{i}}\mathcal{L}(g_{\theta}(x_{ij}(q_{i},\bar{s}_{i})),y_{ij}) + (1-\alpha)\sum_{s_{ij}\in s_{i}}\mathcal{L}(g_{\theta}(x_{ij}(q_{i},s_{i})),y_{ij})\right)\]其中 $\alpha \in [0, 1]$ 是一个极其关键的调节参数,代表训练批次中对抗性逃逸样本所占的比例。通过显式调节 $\alpha$,开发者能够在系统正常可用性与抗攻击鲁棒性之间获得一条平滑的权衡曲线(Pareto Frontier)。
基于这一框架,团队对比了两种对抗样本生成路径:
- 特征空间对抗训练(Feature-space AT):直接在句子嵌入特征上施加连续扰动。通过投影梯度下降(PGD)算法,沿着损失函数上升的方向寻找最能迷惑分类器的特征偏移量 $\delta$(满足 $|\delta|_\infty \leq \epsilon$),完全不考虑离散文本的物理可还原性。
- 基于大模型释义的可实现对抗训练(Realizable AT via Paraphrasing):在训练循环外,直接使用 LLM 对恶意注入指令进行开环(Open-loop)的多样化语义重写。需要强调的是,这种改写在训练阶段并未针对检测器本身的梯度做定制优化,因此它实质上弱于评估阶段面对的强自适应攻击,这极为严格地检验了模型对抗攻击的真实外推泛化能力。
实验评测:打破静态与自适应攻击的双重封锁
评测阶段,研究人员选取了当前业内公认最具挑战性的三大 Agent 安全评测基准:包含较短标准工作流的 AgentDojo、涵盖更长调用链路并要求零样本迁移的 AgentDyn,以及专门用于自动生成针对性自适应逃逸攻击的 AutoDojo。测试选用了 GPT-4o-mini、Gemini-Flash-2.5 和 Qwen3-235B 等主流模型作为 Agent 骨干核心,横向对比了包括 PromptGuard 2、DataFilter、PIGuard、ProtectAI、Progent 和 DRIFT 在内的 8 个代表性基线。
实验数据揭示出了一系列发人深省的安全现状。
在常规的静态注入下,传统防御手段尚能维持体面,但一旦切换到自适应逃逸模式,大部分基线迅速瓦解。例如,业界常用的 DataFilter 在静态攻击下能较好地压制攻击成功率,但在自适应攻击下防护能力大幅缩水;PIGuard 在静态 AgentDojo 上看似坚不可摧,在 AutoDojo 驱动的自适应测试中 ASR 却迅速反弹至 25% 以上,且在长流程基准 AgentDyn 上的任务正常可用性出现断崖式下跌。
以 Progent 和 DRIFT 为代表的系统级监控方案在安全性指标上表现坚挺,但付出了惨痛的可用性代价。由于频繁将正常的工具返回内容误判为注入行为,它们在 AgentDyn 上表现出了极度严重的过度防御,良性任务完成率极低。
相比之下,CAD 在未开启对抗训练前就已经展现出了上下文感知带来的巨大优势。在静态和自适应攻击中,CAD 都保持了与顶尖防御相当的低 ASR,同时任务可用性保持在第一梯队。而在开启对抗训练后,CAD 的防线进一步固化。更令人振奋的是,实验证实了特征空间 AT 确实能够有效迁移并泛化到离散文本空间的自适应攻击中,尽管采用 LLM 释义生成的对抗数据在综合表现上略胜一筹,但特征空间优化以极低的生成成本提供了非常可观的防御增益。

速度与性能兼得:接近于零的系统运行时延迟
对于实际部署而言,防御组件的延迟开销至关重要。Table 2 呈现的运行时监控数据清晰地展现了轻量级设计的碾压性优势。
相比于“无防御”裸跑状态,CAD 引入的平均运行时比率接近 1.0,即几乎没有引入任何可感知的系统开销。这是因为 CAD 仅仅运行一个轻量级的句子表征与分类头,完全跳过了生成式大模型那漫长而高昂的解码延迟。
反观主流基线,DataFilter 以及系统级方案 Progent、DRIFT 在更为复杂的 AgentDyn 场景中,平均系统延迟膨胀了 2.7 倍至 3.2 倍。原因显而易见:这些方案在 Agent 执行的每一步交互中,都强制嵌套调用了额外的大模型进行二次裁决或多轮信息流隔离。在高并发的企业应用中,这种 3 倍以上的延迟膨胀和 Token 成本往往意味着难以逾越的落地鸿沟。
领域异质性启示:不存在放之四海皆准的防御超参
在深入分析各个具体业务场景(Banking、Slack、Travel 等 Suites)的实验数据后,本文提出了一个极具现实工程指导意义的结论:对抗数据比例 $\alpha$ 的最佳取值高度依赖于具体的应用领域。
从图 2 绘制的 Pareto 边界曲线可以直观看到,在某些对安全性极度严苛、但业务文本模式相对固定的领域(例如银行转账场景),增大对抗训练比例 $\alpha$ 可以在几乎不损伤可用性的前提下,将自适应攻击的成功率彻底压制到底部;然而在某些非结构化程度高、文本语义本就发散多变的领域(例如 Slack 开放协同沟通场景),过高的 $\alpha$ 会迅速导致分类器神经过敏,误删大量其实是正常业务诉求的句子,导致任务可用性急剧受挫。
这意味着,安全团队在落地 Agent 防御时,不能指望靠一套固定的全局分类阈值通吃所有系统。根据业务环境的数据分布特征与容错底线,针对性地校准对抗训练强度,是在实际生产中平衡好“防得住”与“用得了”的必经之路。
总结与展望
CAD 的工作不仅为解决大模型 Agent 间接提示注入提供了一个兼具高精度、强抗逃逸能力与极低延迟的开源解决方案,更在方法论层面打破了传统安全边界:它证明了结合 Query 与 Context 的边际判定能够精准剥离恶意语义,并首次证实了连续特征空间的对抗训练在抵御离散语言逃逸层面的有效性。
当然,该方案在当前设计下仍存在客观局限。由于 CAD 依托句子切分进行判定,当攻击者将一段恶意指令无缝编织并融合进一个原本合法的长复合句时,纯粹句子级的剔除逻辑可能会面临“要么漏放注入、要么误杀正常信息”的颗粒度困境。但无论如何,将经典对抗机器学习的理论工具引入 Agent 语义防护,并强调语境相对性的思路,无疑为下一代安全、稳健的自主 Agent 架构设计指明了一条极具潜力的工程演进路径。