GuardRAG:针对检索增强生成(RAG)投毒攻击的检索后防御
GuardRAG: A Post-Retrieval Defense against Poisoning Attacks in Retrieval-Augmented Generation
作者提出免训练后检索防御 GuardRAG,在 adv5 下对三种投毒攻击将平均 ASR 降至 0.8%–16.2%(Table 1)。
知识误导场景:攻击者向语料库注入 b 条投毒段落(b = |M| ≪ |C|),使其针对目标查询被检索并互相支持同一错误答案;攻击者不能获取生成器 G 的内部参数或权重,但可以访问特定用户查询和检索器 R 的详细参数(参照 PoisonedRAG 设置)。
- RAG 引入外部语料后暴露于语料库投毒攻击,协同投毒会让多篇互相强化的投毒文档进入检索上下文,使逐篇评估证据的现有防御难以过滤。
- GuardRAG 是免训练、即插即用的后检索防御:先把检索范围从 top-k 扩到 top-K 并去近重复,再用带查询自适应阈值的 HAC 聚类,最后按查询相关度、簇大小和语义紧凑度给簇打分并剪除最可疑的簇。
- 在三个问答数据集、三种攻击、六个生成器上,adv5 下平均 ASR 降至 0.8%–16.2%,PRAGB 下 HotpotQA 与 NQ 的 PDFR 达 100%;但 GuardRAG-aware 白盒自适应攻击下 ASR 仍有 23.0%,语义重叠的良性证据可能被误剪。
- 作者指出两点局限:检索到的投毒文档很少时结构模式可能太弱,难以做簇级防御;高度相关的良性文档可能与协同投毒证据结构相似,增加误剪风险。主实验每个数据集随机采样 100 个查询。
- 被测模型
- GPT-3.5GPT-4oGPT-5DeepSeek-V3.2Llama-2-7BLlama-2-13B
- 基准
- Natural Questions (NQ)HotpotQAMS MARCO
- 指标
- ASRPDFRACCCFRRSR@10
GuardRAG 是一种免训练、即插即用的检索后防御,用于识别 RAG 语料投毒攻击注入检索结果、相互印证的可疑文档组。它先扩大检索范围、去除近似重复,再用查询自适应阈值的层次聚合聚类(HAC)分簇,按相关性、簇大小和语义紧凑度剪除可疑簇。在三个问答数据集、多种投毒攻击和六个 LLM 上的实验显示,其大幅降低攻击成功率并保持干净检索下的答案效用。
相关热点
2 个事件 · 1 条新闻提到
- 这件事的论文
GuardRAG:检索后防御RAG投毒攻击
提到这篇论文的新闻
周报:预训练投毒可植入智能体后门
- 公众号 大模型安全研究引用了论文编号或链接大模型安全周报:首次证明预训练投毒可植入远程代码执行后门,技能供应链成为攻防主战场
GuardRAG: A Post-Retrieval Defense against Poisoning Attacks in Retrieval-Augmented Generation(https://arxiv.org/abs/2610.35071)
深度解读
这篇论文试图解决什么问题?
防御协同语料库投毒:多篇互相强化的投毒文档进入检索上下文,逐篇评估式防御难以应对。
核心问题:如何防御协同语料库投毒攻击(coordinated corpus poisoning)——攻击者向 RAG 语料库注入多篇互相支持同一错误答案的投毒文档,使其共同进入检索上下文并操纵生成结果。
- 场景与重要性:RAG 依赖大规模或持续更新的外部语料库,作者认为在检索前逐篇验证文档可信度并不现实,因此需要在检索之后、生成之前识别并过滤投毒证据。
- 现有方法的不足:作者称现有防御多依赖鲁棒聚合、可靠性评分、知识整合或自反思生成,面对高强度协同投毒时,多篇投毒文档强化同一错误信息并主导检索证据,使常规的证据聚合与可靠性评估效果下降。
- 核心观察:协同投毒文档在嵌入空间中比良性证据呈现更强的局部语义聚集。作者在 900 个查询级实例上验证:896 例中投毒文档的组内距离小于投毒-良性距离,862 例中全部检索到的投毒文档被分进同一个 HAC 簇(附录 B.4)。
- 论文提出的方案:GuardRAG,一个免训练、即插即用的后检索防御框架,通过检索扩展与去重、自适应语义聚类、可疑簇剪除三个阶段做组级结构分析,而非逐篇打分。
- 威胁模型(第 3.2 节,术语照抄论文):
- 目标:使系统对目标查询 q* 生成包含预定目标短语 y* 的回答,y* 通常是错误信息短语或实体;以 y* 作为子串出现在输出中判定攻击成功。
- 能力:攻击者可向语料库 C 注入有限预算 b 条投毒段落 M,b = |M| ≪ |C|,并优化其检索概率、互相强化同一错误答案。
- 知识:参照 PoisonedRAG 设置,攻击者不能获取生成器 G 的内部参数或权重,但可以访问特定用户查询和检索器 R 的详细参数。
- 受害系统:由语料库 C、检索器 R、生成器 G 组成的标准 RAG 系统。
有哪些相关研究?
相关工作分三组:RAG 与检索方法、语料库投毒攻击、三类防御方法;本文以组级结构分析区别于逐篇评估。
RAG 与检索方法
- Lewis et al. (2020) 提出 RAG 框架,由检索器和生成器两个核心组件构成。
- 稀疏检索以 TF-IDF(Salton and Buckley, 1988)和 BM25(Robertson et al., 1994)为代表,基于词法匹配。
- 稠密检索基于嵌入相似度,代表方法包括 DPR(Karpukhin et al., 2020)、ANCE(Xiong et al., 2020)和 Contriever(Izacard et al., 2021)。
语料库投毒攻击
- PoisonedRAG(Zou et al., 2025)展示注入外部语料库的恶意文档可以操纵下游生成结果,本文的威胁模型和 PRAGB 攻击产物均来自该工作。
- 后续定向投毒攻击包括 POISONCRAFT(Shao et al., 2025,通过对抗优化投毒文档提升攻击效果)、AgentPoison(Chen et al., 2024)与 BadRAG(Xue et al., 2024,结合投毒知识与后门触发机制)、CPA-RAG(Li et al., 2025)和 PR-Attack(Jiao et al., 2025,通过多篇投毒文档的协同优化提升检索成功率)。
防御方法(论文分三组)
- 证据聚合与评估:RobustRAG(Xiang et al., 2024)、InstructRAG(Wei et al., 2024)、ReliabilityRAG(Shen et al., 2025),论文指出这类方法常引入额外的验证、推理或 token 处理开销。
- 自反思与内部知识:ASTUTE RAG(Wang et al., 2025)、TrustRAG(Zhou et al., 2025)、Self-RAG(Asai et al., 2023),论文指出这类方法一般需要额外的推理时计算。
- 学习型过滤与压缩:Why So Gullible?(Hong et al., 2024)、RECOMP(Xu et al., 2023)、Learning to Filter(Wang et al., 2023),论文指出这类方法需要辅助训练或任务特定数据。
基线与基准:对比基线为 Vanilla RAG、RobustRAG、InstructRAG、ReliabilityRAG(第 5.1 节);评测基准为 Natural Questions、HotpotQA、MS MARCO。
本文定位:作者称 GuardRAG 将防御视角从逐篇文档评估转向检索证据的组级结构分析,在检索后、生成前工作,不需要辅助模型训练,也不需要额外的 LLM 生成调用。
论文如何解决这个问题?
GuardRAG 三阶段:检索扩展与去重 → 自适应阈值 HAC 聚类 → 按相关度、大小、紧凑度打分剪除最可疑簇。
整体思路:GuardRAG 利用协同投毒文档在嵌入空间中局部语义聚集的结构特征,在检索之后、生成之前做组级过滤,全程免训练、不需要额外 LLM 调用。流程见 Algorithm 1。
阶段 I:检索扩展与去重
- 标准 RAG 检索 top-k,GuardRAG 先扩展到 top-K,K = mk 且 m > 1,为结构分析提供更多候选证据。
- 按嵌入余弦相似度去除近重复文档:相似度 ≥ γ 视为近重复,只保留排名更高者;实验中 γ = 0.98。
- 去重后的集合记为 Rq,Nq = |Rq| ≤ K。
阶段 II:自适应语义聚类
- 用 bge-large-en-v1.5 编码查询和全部候选文档,嵌入做 L2 归一化后用欧氏距离。
- 采用 average linkage 的 HAC 聚类,不需要预设簇数,通过距离阈值控制粒度。
- 阈值为查询自适应:对每个文档求第一近邻距离,排序后找最大相邻间隔,取该间隔中点为初步阈值 τ̂q = (δ(j∗) + δ(j∗+1))/2,即最大间隔两端点的中点。
- 最终阈值 τq = τ̂q(若 τ̂q ≤ τmax),否则取 0;全局上限 τmax = 0.8 × 0.877 ≈ 0.702,由 300 个校准查询(与主评测不重叠)上良性文档的平均成对距离估计(附录 A.1)。作者称自适应阈值是因为各数据集的背景语义密度差异大,单一静态阈值难以跨检索分布适用(Figure 3)。
阶段 III:可疑簇打分与剪除
- 对每个簇从三方面计算可疑度:查询相关度 ri = cos(q, µi)、簇大小 si = log(|Ci|+1)、语义紧凑度 ci = 1/(σi+ϵ),其中 µi 为簇质心、σi 为平均簇内距离。
- 最终可疑度为三者乘积,乘积偏向同时具有高查询相关度、大尺寸和语义紧凑的簇。
- 只对 |Ci| ≥ 3 的簇做剪除(所有实验用同一最小簇大小),移除可疑度最高的簇;若无满足条件的簇则保留全部文档。
成功判定与评测方式
- 攻击成功判定沿用 PoisonedRAG 协议:生成回答中包含攻击者指定的目标短语 y*(子串匹配)即为成功。
- 防御侧指标:PDFR(被移除的检索到投毒文档比例)、CFR(被误移除的良性文档比例)、ACC(回答包含正确答案子串的比例)。
- 生成阶段使用附录 E 的提示词模板,将过滤后的文档与问题一起交给生成器。
论文做了哪些实验?
三数据集、三攻击、六生成器:adv5 下平均 ASR 0.8%–16.2%;白盒自适应攻击下 ASR 升至 23.0%。
实验设置
- 被测生成器(6 个):GPT-3.5、GPT-4o、GPT-5、DeepSeek-V3.2、Llama-2-7B、Llama-2-13B;检索器为 Contriever、Contriever-ms、ANCE;嵌入编码器为 bge-large-en-v1.5。
- 数据集:NQ(语料 2,681,468 篇)、HotpotQA(5,233,329 篇)、MS MARCO(8,841,823 篇);主实验从每个数据集随机采样 100 个查询(附录 B.1)。
- 攻击:PRAGB(PoisonedRAG 发布的目标特定段落)、PRAGW(PoisonedRAG 白盒优化生成,每查询 5 条)、POISONCRAFT(按其公开协议生成,每查询 5 条);投毒强度 adv3/advk 表示检索上下文中有 k 条投毒文档。
- 指标:ASR(回答含攻击者指定错误答案子串的比例,对所有评测查询计算)、PDFR、CFR、ACC(含正确答案子串的比例);自适应攻击用 RSR@10(尝试查询中至少 3 条投毒文档进入 top-10 候选的比例)。
- 默认设置与重复次数:默认 HotpotQA + Contriever + Llama-2-13B;标准检索 k = 5,GuardRAG 扩展 m = 2、K = 10,Table 2 中所有方法用同一 top-10 候选池;每个设置独立运行 3 次取算术平均。
- 基线:Vanilla RAG、RobustRAG、InstructRAG、ReliabilityRAG。
主结果
Table 1(adv5,GuardRAG,六个生成器平均)与 Table 2(PRAGB,与基线对比)的核心数字:
表格较宽,可左右滑动
攻击 数据集 平均 ASR↓ 平均 PDFR↑ 平均 ACC↑ 平均 CFR↓ PRAGB HotpotQA 4.0 100.0 87.5 3.0 PRAGB NQ 0.8 100.0 88.0 6.0 PRAGB MS MARCO 8.0 95.0 85.5 10.0 PRAGW HotpotQA 6.0 99.0 89.0 1.0 POISONCRAFT HotpotQA 2.2 99.0 94.7 0.0 POISONCRAFT MS MARCO 2.7 99.0 94.8 1.0 据 Table 1(单位 %);PRAGW 在 NQ、MS MARCO 及 POISONCRAFT 在 NQ 的平均 ASR 分别为 5.7、16.2、4.5。
Table 2(PRAGB、adv5、ASR/ACC,单位 %):
表格较宽,可左右滑动
模型 防御 HotpotQA NQ MS MARCO GPT-4o Vanilla 30.0 / 73.0 40.0 / 63.0 23.0 / 70.0 GPT-4o InstructRAG 87.0 / 14.0 78.0 / 24.0 87.0 / 15.0 GPT-4o ReliabilityRAG 46.0 / 54.0 37.0 / 65.0 40.0 / 60.0 GPT-4o GuardRAG 8.0 / 84.0 0.0 / 86.0 2.0 / 88.0 Llama-2-13B Vanilla 77.0 / 30.0 80.0 / 27.0 87.0 / 23.0 Llama-2-13B RobustRAG 62.0 / 38.0 76.0 / 34.0 72.0 / 30.0 Llama-2-13B GuardRAG 6.0 / 88.0 2.0 / 86.0 8.0 / 80.0 据 Table 2;RobustRAG(GPT-4o)与 InstructRAG、ReliabilityRAG(Llama-2-13B)行省略,Table 2 中 GuardRAG 在几乎所有设置下 ASR 最低。
- 作者称 GuardRAG 在不同攻击下持续保持低 ASR,PRAGB 下 HotpotQA 与 NQ 的 PDFR 达 100%,CFR 最高 10%。
- 作者指出,投毒强度从 adv3 升到 adv5 时部分基线退化:HotpotQA + GPT-4o 上 InstructRAG 的 ASR 从 27.0% 升至 87.0%,ReliabilityRAG 从 16.0% 升至 46.0%,而 GuardRAG 两种强度下均低于 10.0%。
- adv5 下 Vanilla RAG 在三个数据集上用 Llama-2-13B 的 ASR 均高于 GPT-4o。
自适应攻击压力测试
- 设置:3+2 diversification 把 5 条投毒段落分成两个语义组;GuardRAG-aware 白盒攻击生成 15 条候选,用防御反馈和 beam search 选出 5 条以降低语义聚集(附录 A.3)。
- 结果(Table 3):diversification 下 ASR 从 76.0%(Vanilla)降至 6.0%、PDFR 99.0%;白盒攻击下 ASR 从 77.0% 降至 23.0%、PDFR 72.0%、RSR@10 93.0%。
- 作者解读:防御感知优化会削弱剪除所依赖的结构信号,剩余的白盒 ASR 说明分散的投毒证据更难通过簇级过滤隔离,作者明确称这是一个局限。
干净检索与语义重叠压力测试
- 设置(Table 5):Clean-original(原始干净检索)、Clean-duplicate(加入正确段落的近相同副本)、Clean-paraphrase(语义相似的非重复变体)。
- 结果:前两个设置 ACC 均为 90.0%;Clean-duplicate 的 CFR 为 27.2%(平均每查询移除 2.22 条近重复)但 ACC 不变;Clean-paraphrase 下 ACC 降至 72.0%、CFR 35.6%,平均每查询 3.56 条被簇剪除。
- 作者解读:改写后的良性证据能逃过去重并形成紧凑簇,作者称高度相关的非重复良性证据是一个边界情况。
其他消融与分析
- 消融(Table 4,HotpotQA、Contriever、Llama-2-13B、adv3):仅扩深度到 10 时 ASR 74.0%、ACC 26.0%;Stages II–III@5 时 ASR 8.0%、PDFR 98.0%、ACC 60.0%;完整 GuardRAG@10 时 ASR 3.0%、PDFR 100.0%、CFR 3.0%、ACC 86.0%。
- 聚类方法对比(Figures 5、6):HAC 在三个数据集上 PDFR 为 100%、100%、95%,CFR 为 3%、6%、10%;Mean Shift 的 PDFR 偏低,AP 在 MS MARCO 上 CFR 达 48%,DBSCAN 在 MS MARCO 上 CFR 为 10%。
- 固定 vs 自适应阈值(Table 8,adv5):固定 τ = 0.4 时 PDFR 低至 54.0%/48.0%/18.0%(三个数据集);τ = 0.6 时 MS MARCO 上 CFR 达 24.0%;自适应 τq 为 PDFR 100.0%/100.0%/95.0%、CFR 3.0%/6.0%/10.0%。
- 效率(Table 7,两块 RTX 4090):GuardRAG 每查询 7.715 秒、407.7 个 LLM token;基线中最多的约为其 4.9 倍 token;作者称防御本身不需要 LLM 调用。
- 结构统计(Table 9):900 个查询级实例中 896 例 ρ < 1,862 例投毒文档全部分入单一 HAC 簇,最大投毒簇平均覆盖 98.4% 的检索到投毒文档;PRAGW 在 MS MARCO 上聚集相对较弱(Unified Rate 82.0%)。
有什么可以进一步探索的点?
作者指出两点局限:投毒文档少时结构信号弱、高相关良性文档易被误剪;白盒自适应攻击下 ASR 仍有 23.0%。
作者指出的局限与后续方向
- 少量投毒文档时结构模式太弱(Limitations 节): efficacy 依赖检索文档中可识别的结构模式,当只有少量投毒文档被检索到时,这些模式可能弱到无法做可靠的簇级防御。
- 高度相关的良性文档可能被误剪(Limitations 节):这类文档可能呈现与协同投毒证据相似的结构特征,增加误剪风险;作者称区分恶意协同与正当的语义一致是未来工作的重要方向。
- 白盒自适应攻击下的剩余 ASR(第 5.3 节):作者称 GuardRAG-aware 白盒攻击下剩余的 23.0% ASR 凸显了一个局限——分散的投毒证据更难通过簇级过滤隔离。
- 语义重叠良性证据是边界情况(第 5.3 节 Clean-paraphrase 结果处):作者称高度相关的非重复良性证据构成边界情况(该设置下 ACC 72.0%、CFR 35.6%)。
实验覆盖范围
- 被测生成器为 GPT-3.5、GPT-4o、GPT-5、DeepSeek-V3.2、Llama-2-7B、Llama-2-13B 共 6 个;检索器为 Contriever、Contriever-ms、ANCE 共 3 个(第 5.1 节)。
- 数据集为 NQ、HotpotQA、MS MARCO,主实验每个数据集随机采样 100 个查询,每个设置独立运行 3 次取平均(第 5.1 节、附录 B.1)。
- 攻击覆盖 PRAGB、PRAGW、POISONCRAFT 三种,投毒强度为 adv3 与 adv5,另有 3+2 diversification 和 GuardRAG-aware 白盒两种自适应攻击(第 5.1、5.3 节)。
- 基线防御评测包括 Vanilla RAG、RobustRAG、InstructRAG、ReliabilityRAG,对比在 PRAGB 攻击、同一 top-10 候选池下进行(第 5.1 节、Table 2)。
- 攻击成功与答案正确性均按子串匹配判定,论文未报告人工评估或 LLM 评审及其一致性(第 3.2、5.1 节)。
总结一下论文的主要内容
GuardRAG:利用投毒文档语义聚集的免训练后检索防御,低 ASR 且保干净效用,但白盒自适应攻击可削弱其结构信号。
GuardRAG 是一个针对 RAG 语料库投毒攻击的免训练、即插即用后检索防御,面向攻击者注入多篇互相强化的投毒文档、操纵目标查询生成结果的场景(威胁模型沿用 PoisonedRAG:攻击者不知生成器参数,但可访问用户查询和检索器参数)。
- 核心观察:协同投毒文档在嵌入空间中比良性证据呈现更强的局部语义聚集——900 个查询级实例中 896 例投毒组内距离小于投毒-良性距离,862 例投毒文档全部落入同一 HAC 簇(附录 B.4)。
- 方法:三阶段流程——检索从 top-5 扩展到 top-10 并按 γ = 0.98 去近重复;用查询自适应阈值的 average-linkage HAC 聚类(阈值取第一近邻距离最大相邻间隔的中点,上限 τmax ≈ 0.702);按查询相关度、簇大小、语义紧凑度的乘积给簇打分,剪除 |Ci| ≥ 3 中最可疑的簇。
- 主结果:adv5 下三种攻击、六个生成器的平均 ASR 为 0.8%–16.2%,PRAGB 下 HotpotQA 与 NQ 的 PDFR 达 100%,CFR 最高 10%(Table 1);PRAGB、adv5 下 GuardRAG 在 GPT-4o 和 Llama-2-13B 上的 ASR 均不超过 8.0%,低于 Vanilla RAG 与三个基线(Table 2)。
- 消融:同样深度 10 下,仅扩展检索 ASR 74.0%,加上聚类剪除后降至 3.0%、ACC 升至 86.0%(Table 4);自适应阈值在三个数据集上取得最高 PDFR 且 CFR 低于固定 τ = 0.6(Table 8)。
- 边界:GuardRAG-aware 白盒自适应攻击下 ASR 仍有 23.0%、PDFR 降至 72.0%(Table 3);语义重叠的良性证据(Clean-paraphrase)下 ACC 降至 72.0%、CFR 35.6%(Table 5)。
- 作者结论:作者称组级证据结构分析能在不增加防御时 LLM 调用的情况下降低投毒成功率并保持干净检索下的答案效用;同时指出少量投毒文档时结构信号弱、高相关良性文档易误剪两点局限,区分恶意协同与正当语义一致留作未来工作。