[论文学习]PoisonedRAG:面向检索增强生成大语言模型的知识投毒攻击

📅 2026/8/6 5:17:25
[论文学习]PoisonedRAG:面向检索增强生成大语言模型的知识投毒攻击
PoisonedRAG: Knowledge Corruption Attacks to Retrieval-Augmented Generation of Large Language Models (USENIX Security 2025)论文重点PoisonedRAG是首个针对RAG系统知识数据库的投毒攻击框架由宾夕法尼亚州立大学等机构的研究人员提出发表于USENIX Security 2025。其核心发现令人警醒攻击者仅需向包含数百万条文本的知识库中注入5条精心构造的恶意文本即可对特定目标问题实现高达90%的攻击成功率——这一数据彻底颠覆了业界对RAG系统安全性的既有认知。核心研究内容问题定义RAG检索增强生成通过从外部知识库检索相关文本来增强LLM的生成能力已被广泛用于缓解大模型的幻觉和知识滞后问题。然而现有研究几乎全部聚焦于提升RAG的准确率和效率其安全性长期处于被忽视的盲区。论文揭示了一个关键事实RAG系统的知识数据库引入了一个全新且现实的攻击面。攻击者无需侵入模型本身只需在知识库中注入少量恶意文本就能操控LLM针对特定问题输出攻击者预设的答案。这种攻击的可怕之处在于——知识库通常从外部数据源如维基百科、新闻、金融文档等构建攻击者完全有可能通过数据投毒的方式将恶意内容混入其中。创新方法PoisonedRAG的核心创新在于将知识投毒攻击形式化为一个优化问题目标是构造一组恶意文本使其同时满足两个关键条件检索条件恶意文本必须能被检索器选中即与目标问题在语义上足够相似生成条件被检索到的恶意文本必须能引导LLM生成攻击者期望的目标答案为了实现这一目标论文提出了两种攻击方案以适应不同攻击者能力黑盒攻击LM_targeted攻击者无法获取RAG系统的内部参数。方法是用一个LLM将目标问题-答案对转换为一段看似自然的文本。同时直接将目标问题本身作为文本的一部分嵌入以确保检索器能将其召回。白盒攻击HotFlip攻击者掌握检索器的内部参数。通过基于梯度的token级优化方法HotFlip精确调整恶意文本中的每个token使其在满足检索条件的同时最大化诱导LLM生成目标答案的概率。这种“双条件满足”的设计思路使得PoisonedRAG能够穿透RAG的两道防线——检索过滤和LLM推理——实现端到端的攻击。研究成果论文在多个基准数据集和LLM上进行了系统评估实验维度具体配置数据集Natural Questions (NQ)、HotpotQA、MS-MARCO检索器Contriever、Contriever-ms、ANCELLMPaLM 2、GPT-4、GPT-3.5 Turbo、LLaMA-2、Vicuna核心实验结果表明仅注入5条恶意文本即可在百万级知识库中实现90%攻击成功率攻击在8种不同LLM上均有效显示出良好的跨模型迁移性现有防御手段如文本去重、 paraphrasing等均无法有效抵御PoisonedRAG实际落地应用的可能性PoisonedRAG揭示的漏洞具有广泛的现实威胁。任何依赖外部知识库的RAG系统——包括智能客服、法律咨询AI、医疗辅助诊断系统、金融分析工具等——都可能成为攻击目标。攻击的实际可行性体现在两个层面其一许多RAG系统的知识库从公开数据源构建攻击者可通过数据投毒如在维基百科中编辑条目实现恶意注入其二即使用户无法直接修改知识库也可能通过网络爬虫污染、文档伪造等方式间接投毒。这一发现对RAG系统的安全运维提出了全新挑战。技术细节攻击形式化设目标问题为QQQ攻击者期望的答案为RRR。攻击目标是构造NNN条恶意文本P1,P2,...,PN\\{P_1, P_2, ..., P_N\\}P1​,P2​,...,PN​使得当用户向RAG系统提问QQQ时系统输出RRR。每条恶意文本PiP_iPi​被设计为包含两部分内容检索部分与QQQ高度语义相关确保被检索器召回生成部分包含引导LLM生成RRR的关键信息黑盒攻击实现黑盒场景下的文本构造采用了提示工程方法。给定目标问题-答案对(Q,R)(Q, R)(Q,R)攻击者使用LLM生成一段满足以下条件的文本“请构造一段语料使得当被问及 [问题] 时回答是 [答案]。语料限制在10个词以内。”同时为了确保检索条件直接将QQQ本身融入文本中“[Q] [包含R的自然语句]”这种设计使得恶意文本既能被检索器召回因包含QQQ又能引导LLM输出RRR。白盒攻击实现白盒场景下采用HotFlip方法通过计算损失函数关于输入token的梯度逐token将文本修改为能够最大化攻击目标的token序列。优化目标同时考虑了检索得分确保被召回和生成损失确保输出目标答案。攻击成功率的判定论文采用Attack Success Rate (ASR)作为主要评价指标即成功诱导LLM输出目标答案的查询比例。实验设置LLM的temperature为0.1以降低输出随机性对评估的影响。研究设定硬件与软件配置官方代码仓库提供了完整的实验复现环境环境配置Python 3.10PyTorch 1.13.0cu117依赖库BEIR、OpenAI API、Google GenerativeAI、FastChat等API密钥配置PaLM 2需配置Google API密钥GPT-3.5/GPT-4需配置OpenAI API密钥LLaMA-2需配置HuggingFace访问令牌实验参数核心实验参数如下test_params{eval_model_code:contriever,# 检索器eval_dataset:nq,# nq/hotpotqa/msmarcomodel_name:palm2,# palm2/gpt3.5/gpt4/llama/vicunatop_k:5,# 检索top-kattack_method:LM_targeted,# LM_targeted(黑盒)/hotflip(白盒)adv_per_query:5,# 每个目标问题的恶意文本数score_function:dot,# 相似度计算方式repeat_times:10,M:10,seed:12}数据集说明三个基准数据集均来自真实场景Natural Questions (NQ)Google搜索真实用户问题基于维基百科HotpotQA需要多跳推理的问答数据集基于维基百科MS-MARCO微软基于Bing搜索日志构建的机器阅读理解数据集综合分析为什么PoisonedRAG如此有效PoisonedRAG的高成功率源于其对RAG系统内在设计缺陷的精准把握。RAG的核心假设是“检索到的知识是可靠的”——系统设计者默认知识库中的内容是真实、可信的。然而当攻击者能够向知识库注入内容时这个假设就崩塌了。检索器会“尽职尽责”地将与问题最相似的恶意文本召回而LLM则会“忠实”地基于这些被污染的文本来生成答案。更令人担忧的是攻击的效率极高——5条恶意文本在百万级知识库中占比微乎其微0.0005%却足以产生灾难性影响。这意味着传统的“大规模数据稀释防御”思路完全失效。防御的困境论文评估了多种现有防御手段结论是均不足以抵御PoisonedRAG。这包括文本去重恶意文本与正常文本在语义上不重复Paraphrasing恶意文本可以同时满足多种表述形式基于规则的过滤恶意文本在表面上与正常文本无异后续研究提出了FilterRAG和ML-FilterRAG等针对性防御方案试图通过区分对抗文本与正常文本的隐藏特征来检测投毒。但这些防御的有效性仍有待大规模验证且可能面临“猫鼠游戏”式的持续攻防演进。学术意义PoisonedRAG开辟了一个全新的研究方向——RAG系统的知识完整性安全。在此之前学界对LLM安全的关注主要集中在提示注入、越狱攻击和训练数据投毒而PoisonedRAG揭示了RAG架构特有的、介于传统数据投毒和推理时攻击之间的新型威胁面。这一工作已被USENIX Security 2025录用标志着该方向获得了安全顶会的权威认可。实践应用对RAG系统开发者的建议1. 知识库来源审查在构建知识库时应对数据来源进行严格审查和可信度评估。避免直接从不可控的公开数据源如未经审核的维基百科编辑、用户生成内容平台等大规模采集数据。2. 输入-输出一致性检测部署阶段应对RAG系统的输入检索到的文本和输出进行一致性校验。如果检索到的文本与最终生成的答案之间存在明显的不一致例如检索文本全是关于A的但LLM却回答了B应触发告警机制。3. 检索结果多样化不要仅依赖top-k最相似的检索结果。适当引入多样性采样策略确保即便少数恶意文本被检索到也难以主导整个生成上下文。4. 红队测试在RAG系统上线前应进行针对性的安全测试模拟PoisonedRAG类型的攻击评估系统的实际脆弱性。对安全研究者的启示PoisonedRAG的代码已开源https://github.com/sleeepeer/PoisonedRAG为后续研究提供了良好的基础。值得探索的方向包括检测方法开发能够在不依赖标注数据的情况下检测知识库中异常文本的方法鲁棒检索器设计对局部投毒具有鲁棒性的检索算法防御性RAG在生成阶段引入“检索内容可信度评估”机制对可疑检索结果进行降权处理对企业决策者的提醒PoisonedRAG的研究结果表明RAG系统并非“即插即用”的安全解决方案。将RAG集成到关键业务系统如客户服务、法律合规、医疗咨询等之前必须将安全性纳入架构设计的核心考量而非事后补救。5条恶意文本即可造成系统性输出失控——这一风险量级值得企业重新评估RAG系统的部署策略和安全投入。参考资料原始论文Zou, W., Geng, R., Wang, B., Jia, J. (2025). PoisonedRAG: Knowledge Corruption Attacks to Retrieval-Augmented Generation of Large Language Models.34th USENIX Security Symposium (USENIX Security 25), pp. 3827-3844.arXiv预印本https://arxiv.org/abs/2402.07867官方代码仓库https://github.com/sleeepeer/PoisonedRAGUSENIX Security 2025会议页面https://www.usenix.org/conference/usenixsecurity25/presentation/zou-poisonedrag