PIDP-Attack:结合提示注入与数据库投毒攻击 RAG 系统
PIDP-Attack: Combining Prompt Injection with Database Poisoning Attacks on Retrieval-Augmented Generation Systems
PIDP-Attack不预知查询,后缀与投毒操纵RAG;NQ上7/8模型ASR较PoisonedRAG高4%–16%。
黑盒RAG(R与G均为black-box)。
- RAG数据投毒通常要预知用户的具体查询,动态查询下难以扩展;只做提示注入又缺少库中的持久证据。PIDP-Attack要在检索器与生成器均为黑盒、且不预知查询时,把任意查询的回答导向攻击者指定的错误答案。
- 离线用Llama-3.1-8B-Instruct生成以目标问题S开头、支持错误答案a−的投毒段落并写入库,默认5条。在线给任意查询追加固定后缀,用Contriever检索top-5,再按标准RAG模板生成;成功为回答含精确字符串a−。
- 三数据集、八个LLM上,PIDP严格ASR高于或持平PoisonedRAG。作者称NQ上7/8模型高4%–16%,MS-MARCO高5%–12%。Table 1平均ASR为98.125%。
- 结论列出三个后续方向:多模态检索、困惑度过滤或查询改写、以及稀疏与稠密检索器之间的迁移。实验用Contriever和三个BEIR问答集、八个API模型;严格ASR为子串匹配。预算扫描覆盖三个模型。
- 威胁模型
- 黑盒RAG(R与G均为black-box)。攻击者可在推理时给任意查询追加后缀δ,且不预知q、不需用户配合;可向语料插入少量对抗段落。不能改参数、全局关安全过滤或改系统提示。目标是让任意q的输出包含所选问题S的错误答案a−;成功为精确字符串a−出现在y中。
- 被测模型
- qwen/qwen2.5-7b-instructqwen/qwen2-7b-instructmeta/llama-3.1-8b-instructmeta/llama-3.3-70b-instructmeta/llama-4-maverick-17b-128e-instructopenai/gpt-oss-20bopenai/gpt-oss-120bibm/granite-3.3-8b-instruct
- 基准
- Natural QuestionsHotpotQAMS-MARCOBEIR
- 指标
- ASR(strict substring match)retrieval precisionretrieval recallretrieval F1relaxed diagnostic success
研究者提出 PIDP-Attack,一种将提示注入与数据库投毒结合的复合攻击,可在无需事先知道用户实际查询的情况下操纵 RAG 系统的回答。方法在推理时向查询追加恶意字符,并向检索数据库注入少量投毒段落。在 Natural Questions、HotpotQA、MS-MARCO 三个基准和八个 LLM 上的评测显示,该攻击在开放域问答任务上的攻击成功率比原始 PoisonedRAG 提高 4% 到 16%,同时保持较高的检索精度。
深度解读
这篇论文试图解决什么问题?
现有RAG投毒需预知用户查询;PIDP-Attack用查询后缀加少量库投毒,在黑盒下操纵任意查询的回答。
在不预知用户查询时,把RAG对任意查询的回答操纵为攻击者指定的错误答案。
- 出现场景:RAG用外部文档缓解知识过时和幻觉,作者称完整性因而同时取决于LLM、知识库和检索,数据投毒是突出威胁。
- 现有不足:Corpus Poisoning、Disinformation Attack、PoisonedRAG、PR-Attack须预知确切目标问题才能投毒。GCG、GGPP及仅查询路径的Clean-RAG缺少库侧持久证据;作者称不少攻击还要白盒访问检索器或LLM参数。
- 核心观察:给任意查询追加含目标问题S的后缀,可把检索导向以S为键的预置投毒段落,并促使生成器回答S而非原问题。
- 本文做法:作者提出PIDP-Attack,推理时追加恶意后缀,并向库注入有限条投毒段落,以黑盒方式操纵任意查询。
- 威胁模型:
- 目标:对任意受害者查询q输出指定错误答案a−(所选问题S的错误答案),而不是q的正确答案;q可与S无关,且事先未知。
- 知识:检索器R与生成器G均为black-box,可由第三方托管并更新,攻击者不能访问参数。
- 能力:推理时追加短后缀δ(如被攻陷的客户端插件、反向代理或中间件),不需用户配合,也不需预知q;向语料插入n条对抗段落,n远小于库规模。不能改参数、全局关闭安全过滤、改系统提示或训练模型。
- 受害系统与判定:标准RAG,嵌入检索返回top-k,生成器用固定模板。成功为精确字符串a−出现在回答y中。作者称查询被完全信任、语料更新缺少来源核验、且生成器遵循高优先级指令时更适用。
有哪些相关研究?
相关工作分为提示注入、越狱与数据投毒/后门;实验基线为PoisonedRAG等五种单表面攻击。
提示注入
- Prompt injection(Greshake等,2023;Liu等,2024):把恶意指令嵌入输入以操纵输出。Liu等[21]提出针对集成大模型应用的提示注入基准。论文称在RAG中只靠注入往往不够,生成器会因良性检索上下文忽略指令。
- 论文据此设计PIDP的查询路径部分,并与库投毒结合(§3.2、§3.3)。
越狱
- Jailbreaking(Deng等,2023;Wei等,2023等):用特制提示绕过已对齐模型的安全限制,目标是生成被禁止内容,而不是仅仅答错用户问题。论文称RAG按知识库文档生成,此类攻击较少见。
数据投毒
- 训练期投毒(Wallace等,2021;Carlini等,2024等)篡改训练数据。RAG中的投毒是向数据库插入有毒文本;Jiao等(2025)的PR-Attack属于这一类。
- Zou等的PoisonedRAG(2025)可针对特定查询改写RAG回答。作者称其静态:必须预知受害者的确切查询。PIDP的投毒部分在此基础上构造,再用注入放宽该约束。
后门
- 后门攻击(Huang等,2023;Jia等,2022等)在训练集中把触发模式与错误输出配对。论文称它是更隐蔽、更难检测的数据投毒,未给出与PIDP的实验对照。
基线与基准
- 基线方法(Table 3):PoisonedRAG与Disinformation Attack(按查询定制投毒、不改查询)、GGPP(前缀扰动引导检索)、GCG(只注入、不投毒)、Corpus(与查询无关的固定对抗段落)。诊断变体为Prompt-only与Clean-RAG。
- 基准/数据集:Natural Questions、HotpotQA、MS-MARCO,BEIR格式。
作者称在所比较设定中,只有PIDP同时修改检索键并做以S为条件的通用投毒,从而不必预知用户查询(Table 1、Table 3)。
论文如何解决这个问题?
PIDP-Attack离线写入以S开头的投毒段落,在线用固定后缀把任意查询的检索与生成偏向错误答案a−。
PIDP-Attack分两段:离线把以目标问题S开头的少量投毒段落写入检索库,在线给任意查询追加后缀δ(S),使检索与生成同时偏向攻击者选定的错误答案a−。
问题设定与目标
- 流水线:语料D,检索C=R(q, D, k),回答y=G(q, C)。R与G视为黑盒。攻击者优化后缀δ与投毒集P(|P|≤n)。
- 目标:作者写成 maxδ,P𝔼q∼ Q[I(a−∈ G(q⊕δ(S),R(q⊕δ(S),D∪ P,k)))],I为指示函数。P既要能被注入查询检索到,又要在进入上下文后支持a−。
- 适用边界:作者称编排器把查询串视为完全可信、语料更新缺少强认证、生成器倾向遵循查询或上下文中的高优先级指令时更适用。若分隔可信指令、剥离异常后缀或审计语料来源,攻击能力下降。
查询路径提示注入
- 构造:q′=q⊕δ(S)。δ(S)为两段式固定模板(Strategy: combine):先是看似无害的补全前缀,再接显式覆盖指令和S;默认换行分隔,也可用空格。Table 2给出模板字符串,此处不复述。
- 作者给出的作用:后缀把查询嵌入拉向含S的段落(尤其投毒段落以S开头),并让G优先回答S。不需要事先知道q。
- 实现与算法表述不一致:Algorithm 1写优化后缀;§3.4与Table 2写用固定模板实例化,而非优化。严格评测对注入查询q′预计算BEIR检索并复用。
数据库投毒
- 段落格式:pi=S⊕“.”⊕bi。S用于提高词法或语义匹配,正文bi支持a−。
- 合成:离线。先用同一RAG模板和数据集真值上下文得到参考答案a+,再由Llama-3.1-8B-Instruct生成表面形式相近的短错误答案a−及n条支持段落。正文写每条约100词,Table 10写最大150词。输出为JSON;附录B给出完整提示词。
- 解析与预算:解析失败则抽取最外层JSON,否则丢弃;缺字段则回退默认段落。默认n=5(扫描1–5),默认top-k=5(扫描1–10)。
在线流程与判定
- 拦截任意q,形成q′,用同一检索器给投毒候选与干净候选打分后取top-k。
- 以标准RAG包装查询LLM。攻击者不能控制检索器,只能影响被索引内容和查询串。
- 评测检索器为Contriever、点积、现成模型。主结果尽量用预计算检索:PoisonedRAG、Disinformation、Corpus用原始q;PIDP与Clean-RAG用注入查询;GGPP用优化前缀扰动后的查询;GCG在小候选池上对q⊕δ重排。
- 成功判定:严格ASR要求归一化后的回答含精确字符串a−。归一化为小写、去空白、规范不间断空格、去掉末尾句点。包装模板要求依据上下文简答,找不到则表示不知道;作者称故意不加额外护栏。
- 失败条件:投毒段落进不了top-k,或在更长上下文中被稀释时,生成器常回答原查询或拒答;也有安全或拒答倾向模型在投毒已出现时仍忽略注入指令。Table 8给出HotpotQA定性例子,其目标问题与Table 7主实验固定目标不同,注入句不复述。
论文做了哪些实验?
Table 4的八模型上PIDP严格ASR高于或持平PoisonedRAG;NQ的7/8模型提升4%–16%。
实验设置
- 被测生成器:qwen/qwen2.5-7b-instruct、qwen/qwen2-7b-instruct、meta/llama-3.1-8b-instruct、meta/llama-3.3-70b-instruct、meta/llama-4-maverick-17b-128e-instruct、openai/gpt-oss-20b、openai/gpt-oss-120b、ibm/granite-3.3-8b-instruct,经推理API(Table 4)。投毒生成用Llama-3.1-8B-Instruct,与其中一款被测模型同名。
- 检索与数据:Contriever点积。NQ语料2,681,468、评测查询3,452(BEIR test);HotpotQA语料5,233,329、查询7,405(BEIR test);MS-MARCO语料8,841,823、查询502,939(BEIR train作评测池,因test split对重复试验太小)(Table 9、Table 11)。
- 基线:PoisonedRAG、Disinformation Attack、GGPP、GCG、Corpus;诊断为Prompt-only与Clean-RAG(Table 3)。GCG后缀由nanoGCG产生,附录Table 10写优化目标模型为Qwen2.5-7B-Instruct。
- 指标:严格ASR为抽样查询中回答含a−的比例,报迭代间mean±std。检索precision为进入top-k的投毒条数除以k,recall为该条数除以n,F1为调和平均。A1–A2另报放松成功:含a−,或含S去停用词后的至少一个非平凡关键词。
- 协议:默认n=5、k=5。Table 11写10次×每次10条查询,采样温度T=0.1,最大token按模型(例:4096),各方法保持不变。注入式方法每数据集固定一对(S, a−),用target_idx=0(Table 7)。
- 固定目标:NQ的a−为一个人名;HotpotQA的a+为no、a−为yes;MS-MARCO的a+为February 2、a−为March 15。候选池规模为7、100、100(Table 7)。
主结果
下表为PIDP-Attack的严格ASR(mean±std),据Table 4,默认n=5、k=5。
表格较宽,可左右滑动
模型 NQ HotpotQA MS-MARCO qwen/qwen2.5-7b-instruct 1.00 ± 0.00 1.00 ± 0.00 0.97 ± 0.05 meta/llama-3.1-8b-instruct 1.00 ± 0.00 0.98 ± 0.04 0.96 ± 0.05 meta/llama-3.3-70b-instruct 1.00 ± 0.00 1.00 ± 0.00 0.96 ± 0.05 openai/gpt-oss-120b 1.00 ± 0.00 1.00 ± 0.00 0.89 ± 0.05 openai/gpt-oss-20b 0.96 ± 0.05 0.97 ± 0.06 0.90 ± 0.08 qwen/qwen2-7b-instruct 1.00 ± 0.00 1.00 ± 0.00 0.98 ± 0.04 ibm/granite-3.3-8b-instruct 1.00 ± 0.00 1.00 ± 0.00 0.99 ± 0.03 meta/llama-4-maverick-17b-128e-instruct 1.00 ± 0.00 1.00 ± 0.00 0.99 ± 0.03 - 作者称NQ上7/8模型相对PoisonedRAG提升+4%到+16%;Table 4中granite的ΔASR为+0.00,双方均为1.00 ± 0.00。MS-MARCO上作者称提升+5%到+12%。
- 作者称HotpotQA上达到或超过PoisonedRAG,并在7个模型上接近100%。表中两行低于1.00。作者称GGPP仍多低于PIDP,NQ为60%–93%、HotpotQA为85%–100%、MS-MARCO为65%–89%;Disinformation在NQ上为54%–93%,严格匹配下仍落后于PoisonedRAG与PIDP。
- 作者称GCG与Corpus在NQ和MS-MARCO上严格ASR常低于1%(Table 4这两列为0.00 ± 0.00)。作者称含Table 4未展示模型的完整评测里,PIDP有时低于PoisonedRAG,集中在指令跟随较弱或检索更噪的设置;部分安全对齐或guard式模型各攻击ASR约等于0。
检索是否带上投毒段落
Table 5的检索F1(n=5、k=5,与生成器无关;GCG不投毒,F1=0,省略):
表格较宽,可左右滑动
数据集 PoisonedRAG Disinformation GGPP PIDP Corpus NQ 0.962 0.960 0.826 0.992 0.024 HotpotQA 0.998 1.000 0.998 1.000 0.022 MS-MARCO 0.884 0.900 0.598 0.836 0.000 - 作者称投毒类方法在NQ与HotpotQA上检索F1接近饱和(0.96–1.00);高F1常是严格ASR的前提,但并不充分。
- MS-MARCO上PIDP的F1低于PoisonedRAG与Disinformation。作者未单独解释该反差;作者称该集检索F1更低、对查询串更敏感,GGPP降到0.598,并称这与其ASR稳定性较低相一致。摘要写保持高检索精度;Table 5报告的是F1,论文未另给precision分列数字。
机制消融(A1–A2)
- 测了什么:三个模型(qwen2.5-7b、qwen2-7b、llama-3.1-8b),放松匹配。Prompt-only不做检索、不投毒;Clean-RAG对注入查询检索,语料保持干净(Table 6)。
- 结果:Prompt-only在NQ与MS-MARCO的三行均为0.00 ± 0.00;HotpotQA上qwen2-7b为0.74 ± 0.13,另两行为0.04 ± 0.05与0.09 ± 0.07。Clean-RAG在部分格子为0.68 ± 0.10、0.90 ± 0.04、0.96 ± 0.05、0.98 ± 0.06,也有0.00 ± 0.00、0.02 ± 0.04与0.15 ± 0.10。
- 作者的解读:只追加指令往往不足以把生成转向S;对注入查询做检索会改变上下文分布。作者称部分模型的放松成功升至68%–96%,并称这是话题转向诊断,不应与严格的定向误导混为一谈。作者未解释HotpotQA上qwen2-7b的Prompt-only高于Clean-RAG。
预算扫描与失败情形
- 投毒预算n(k=5,Figure 2):作者称nq与hotpotqa上,Llama-3与Qwen在n=2时ASR高于95%;msmarco从n=1的约30%升到n=5的高于90%。作者称n=1的MS-MARCO检索F1低于30%,ASR低于50%。图注写ASR为绿、检索F1为红,阴影为±1 std;曲线端点数值正文未逐点列出。
- 上下文预算k(n=5,Figure 3):作者称加大k既可能提高投毒召回,也可能被干净段落稀释。正文对Figure 3c写:MS-MARCO上qwen2.5-7b从k=5的97%降到k=10的82%。
- 失败类型:作者归纳为检索受限、生成受限(强先验或刚性指令跟随忽略注入上下文)、稀释受限(k增大后ASR非单调)。作者认为只调k不能消除攻击面。
其他消融与分析
- Table 1的Average ASR:Corpus 1.875%,GCG 3.125%,Clean-RAG 45.778%,GGPP 82.875%,Disinformation 88.333%,PoisonedRAG 92%,PR-Attack 97.167%,PIDP 98.125%;论文未写该平均的计算式,PR-Attack无Table 4逐模型结果。
- 附录对八模型均值:Disinformation在nq/hotpotqa/msmarco为84.3%、94.2%、86.5%;GGPP为80.4%、93.0%、75.3%。
- GCG超参(附录Table 10):250步,搜索宽度512,候选token的top-k为256,后缀20 token。
- HotpotQA上GCG最高为qwen/qwen2-7b-instruct的0.22 ± 0.16,Corpus最高为meta/llama-3.1-8b-instruct的0.08 ± 0.06(Table 4)。
- 投毒生成:Llama-3.1-8B-Instruct,n=5,最大段落150词,JSON输出(Table 10);与正文约100词的说法并列。
有什么可以进一步探索的点?
结论提出多模态、过滤式防御与跨检索器迁移三个后续方向,未单列局限。
作者指出的局限与后续方向
论文没有单独的Limitations节。Section 5写出三个后续方向:
- 多模态:作者称目前聚焦文本RAG,扩展到图像或图表检索可能带来以视觉输入为触发的攻击向量(Section 5)。
- 防御:作者计划研究困惑度检测或查询改写,以识别注入后缀带来的语义偏移,同时不降低检索效用(Section 5)。
- 检索器迁移:作者称研究攻击在不同检索器架构(如稀疏与稠密)之间的可迁移性,以更完整地理解RAG威胁(Section 5)。
实验覆盖范围
- 主比较为8个经推理API调用的指令模型;检索器为Contriever、点积、black-box(§4.1、Table 2、Table 4)。
- 数据集为NQ、HotpotQA、MS-MARCO的BEIR划分;前两者用test,MS-MARCO用train split作评测查询池(Table 9、Table 11)。
- 对照为PoisonedRAG、Disinformation Attack、GGPP、GCG、Corpus,以及Prompt-only、Clean-RAG;Table 1另有PR-Attack的Average ASR,主表未给其逐模型结果。
- 默认n=5、k=5;n扫描1–5、k扫描1–10,消融模型为qwen2.5-7b、qwen2-7b、llama-3.1-8b,10次迭代×每次10条查询(§4.2.2、Table 11)。注入式方法每数据集固定一对(S, a−)(Table 7)。
- 严格ASR为规则子串匹配,A1–A2另有放松关键词判定。论文未报告人工一致性、评审模型、防御方法的实验数字,也未报告PIDP的查询次数或耗时;§3.4写后缀为固定模板而非优化。跨检索器结果在Section 5列为后续方向。
总结一下论文的主要内容
PIDP-Attack以固定后缀配合以S开头的少量投毒段落,在不预知查询时提高定向误导的严格ASR。
PIDP-Attack是针对RAG的黑盒复合攻击:不预知用户查询,仍把回答导向攻击者选定问题的错误答案。
- 问题:库投毒要按具体问题预制段落;只做提示注入又缺少检索侧的持久证据。不少既有攻击还要白盒访问检索器或LLM。
- 方法:离线插入以S开头、支持错误答案a−的少量段落,默认5条,由Llama-3.1-8B-Instruct生成。在线追加固定后缀,使Contriever更可能检索到这些段落,再按标准RAG模板生成。成功为输出含精确字符串a−。
- 主结果:三个BEIR数据集、八个LLM、n=5且k=5时,Table 4中PIDP的严格ASR高于或持平PoisonedRAG。作者称NQ上7/8模型提升4%–16%,MS-MARCO提升5%–12%。Table 1的Average ASR为98.125%。
- 机制与例外:作者称后缀提高投毒段落进入top-k的机会,段落再推动错误答案。NQ上PIDP检索F1为0.992;MS-MARCO上为0.836,低于PoisonedRAG的0.884,但ASR仍更高(Table 5)。GCG与Corpus在NQ、MS-MARCO上严格ASR为0.00 ± 0.00。作者称未展示的部分模型会拒答,ASR约等于0,PIDP有时低于PoisonedRAG。
- 作者结论:作者称只加固模型或只加固数据库,不足以维持完整性;查询路径、语料更新和检索进入提示的接口需要同时考虑。Section 5把多模态检索、过滤或查询改写、以及跨检索器迁移列为后续方向。