论文

When Context Bites: 通过文档级注意力坍缩检测 RAG 投毒攻击

When Context Bites: 通过文档级注意力坍缩检测 RAG 投毒攻击

检索增强生成(RAG)在增强大语言模型方面不可或缺,但日益面临投毒攻击的风险——攻击者注入对抗性文档以操纵生成结果。以往方法依赖困惑度与一致性检查等输出端信号来检测此类攻击。然而,我们的分析揭示,蓄意攻击往往引发虚假自信,受攻击输出的困惑度甚至低于良性输出,导致基于不确定性的检测失效。为应对这一挑战,我们深入探究生成器的内部动态,识别出一种独特信号,称为注意力坍缩(Attention Collapse)。与良性生成中分散的注意力不同,受攻击生成的注意力集中于投毒文档,熵随之降低。 基于上述发现,我们提出 D-SCAN(Document-level Signal Collapse Analysis),一种轻量级检测框架,通过监控注意力动态识别受攻击生成。在多个攻击基准上的大量实验验证了该方法的有效性。此外,D-SCAN 甚至能检测出未改变最终答案的攻击。代码已开源:https://github.com/yingtaoren/D-Scan.git。

论文精读

TL;DR D-SCAN 揭示 RAG 投毒会让注意力坍缩到毒文档,通过监控文档级注意力熵检测攻击,弥补困惑度失效的盲区,连未改变最终答案的隐蔽投毒也能识别。

问题

问题背景

RAG 已成为 LLM 接入外部知识的标准范式,通过检索增强缓解幻觉与知识陈旧。但其依赖外部语料,攻击者可注入对抗性文档操纵生成结果,引发 RAG 投毒 攻击。

现有方法局限

主流检测手段聚焦输出侧信号:

  • Perplexity (PPL):认为投毒输出困惑度异常,但研究发现投毒样本 PPL 反而更低,出现 盲置信 现象。
  • 一致性校验:多次采样或不同上下文比较,但攻击常稳定诱导同一错误答案,一致性高。
  • 语义检测器:依赖外部模型判断,成本高且可被自适应攻击绕过。

输出侧信号无法区分“模型确实自信”与“被操纵后的虚假自信”,因为攻击者可以构造高度流畅、低 PPL 的诱导文本。

为什么这个问题难且重要

投毒文档在语义上与查询表面相关,但内部注意力被定向压缩。检测必须深入模型推理过程,逐 token 监控注意力熵变化,这在在线低延迟场景中挑战大。同时 RAG 广泛用于企业知识库、客服与医疗信息等场景,一旦被投毒可能导致系统性误导,安全检测需在解码完成前提前预警。

行业类比:类似搜索引擎的 SEO 投毒,攻击者利用高权重伪装让目标内容排名靠前,RAG 中则是让 LLM 注意力“聚焦”到毒性文档。

核心洞察

  • 输出侧不确定性指标失效,注意力熵是更可靠的中毒信号。之前检测依赖 perplexity、一致性等输出信号,但攻击者可以构造让模型“盲目自信”的中毒文档,导致中毒输出 perplexity 甚至低于正常。本文实证发现,中毒时模型内部注意力会从分散状态坍缩到少数中毒文档,attention entropy 显著下降,该信号不依赖输出正确性,能绕过盲置信陷阱。
  • Attention Collapse 在攻击成功与失败场景均出现,使检测覆盖更广。传统方法通常只在输出被篡改时报警,但中毒文档即使未改变最终答案也可能注入误导性中间状态。D-SCAN 通过监控文档级注意力动态,在攻击失败(输出未受影响)时仍检测到注意力异常,因此可以提前预警或识别隐秘注入,这是对现有 detection baseline 的重要补充。

方法

输入与核心思路

D-SCAN 的输入为 RAG 生成时的检索文档集合与生成器内部注意力权重。它不依赖输出文本的困惑度或一致性,而是直接监控生成过程中注意力在文档维度的分布变化。

关键模块

  1. 文档级注意力聚合:将每层、每个注意力头对 token 的注意力按所属文档汇总,得到每个生成步上各文档的注意力分数向量。
  2. 注意力熵计算:对上述文档注意力分布计算熵值。良性生成时,模型会在多个文档间分散注意力以综合信息,熵较高;受攻击时,模型注意力会异常集中到被注入的恶意文档,形成注意力坍塌,导致熵明显下降。
  3. 信号监测:在生成序列上滑动计算文档注意力熵,并与良性基线(可由正常 RAG 运行统计获得)比较。当熵值低于预设阈值或出现显著下降趋势时,触发攻击警报。

输出

输出为二分类判定(是否攻击)或攻击风险分数,供下游拦截或审计。

与同类方法差异

D-SCAN 不依赖输出不确定性或投票一致性,而是利用生成过程内部动态,故能检测攻击未改变最终答案的失败注入场景,且计算开销低、无需额外模型。

实验

实验设计

作者在多个攻击基准上评估 D-SCAN,对比基于 perplexity 和一致性检查的检测方法。实验包括攻击成功与失败两种场景,并进行了敏感性与消融研究。

关键发现

攻击者刻意构造的文档导致生成器注意力熵降低,注意力集中在中毒文档上,形成Attention Collapse。D-SCAN 通过监测文档级注意力信号实现轻量检测。实验显示,即使攻击未改变最终答案,D-SCAN 仍可有效识别异常。

与基线对比

传统输出侧指标(如低 perplexity)在中毒场景下反而表现更“自信”,导致检测失灵。D-SCAN 从内部动态出发,不依赖输出质量,因此更鲁棒。其检测能力不要求攻击成功,可提前预警。

行业影响

落地场景

RAG 系统 在知识库问答、智能客服、内容生成等产品中广泛部署,但投毒攻击可操纵输出。D-SCAN 适合作为安全检测层,嵌入需要高可靠性的业务,如企业文档助手、电商产品问答、金融合规助手、医疗信息咨询等。尤其适合对输出真实性有严格要求的场景。

商业价值

  • 降低风险成本:避免错误信息引发的法律、合规与声誉损失。
  • 提升用户信任:拦截被操纵的回答,保持服务可信度。
  • 减少人工审核:轻量级检测无需额外模型调用,可实时运行,降低运营开销。

与现有产品/工作流的接口

D-SCAN 监控 document-level attention entropy,需要在推理时获取注意力权重。可通过修改推理循环或使用 hooks 集成到主流 RAG 框架(如 LangChain、LlamaIndex),作为后置检查器或实时拦截器。对推理延迟影响小,可在线部署。

具体落地 use case

  1. 电商智能客服:某跨国电商平台的客服助手检索商品评论和知识文档生成回答,攻击者可能注入虚假促销或误导信息,D-SCAN 可在输出前拦截中毒生成。
  2. 企业知识库问答:大型企业的内部知识助手可能被恶意修改文档污染,D-SCAN 能检测注意力异常,防止错误信息扩散。

局限

  • **依赖模型内部注意力访问**:D-SCAN 需要获取生成过程中的 document-level attention 权重,这对开源模型可行,但无法直接应用于闭源 API 或推理服务中不暴露内部状态的场景。实际 RAG 部署常使用商业 LLM,检测能力受限。此外,计算 attention entropy 需要保存每步的注意力分布,虽轻量但仍增加额外处理,可能影响推理延迟和资源占用。
  • **对自适应攻击的鲁棒性不足**:论文评估的攻击基准可能未包含知道防御机制的自适应攻击。攻击者若了解 D-SCAN,可以设计 poison 文档使其在 attention 上不呈现明显 collapse,例如分散注意力或添加干扰文档,从而绕过检测。缺乏对抗性评估降低了方法在真实威胁模型下的可信度。
  • **泛化性和误报问题**:attention collapse 特征是否在所有 transformer 架构(如不同注意力变体、混合架构)及不同规模 LLM 上普遍存在尚未充分验证。某些正常查询(如检索到唯一高相关且必要的文档)可能自然导致 attention 集中,从而引发误报。检测阈值需要针对具体模型和任务进行标定,增加了实际部署和运维成本。
论文Yingtao Ren2026-08-07原文

相关内容