通过基于关键词的事实替换缓解RAG系统中的数据库泄漏
摘要
本文提出了KFS-RAG,一种通过用基于关键词的事实替换检索上下文来缓解RAG系统中数据库泄漏的方法,以防御提示注入攻击,同时保持响应准确性。
查看缓存全文
缓存时间: 2026/08/25 04:15
# KFS-RAG:通过关键词锚定事实替换缓解RAG系统中的数据库泄露
来源:https://arxiv.org/html/2608.21656
Yubo Zhu<sup>1</sup> 魏彤 <sup>※</sup> (通讯作者) 华景宇 王子健 张远 钟声 <sup>1</sup>南京大学
###### 摘要
检索增强生成已成为一种将大型语言模型与外部知识源相结合的强大范式。然而,RAG系统仍易受到提示注入攻击,这类攻击可能误导检索器或生成器,从而泄露敏感数据库内容。为解决此问题,我们提出KFS-RAG,一种通过重构检索到的上下文来缓解信息泄露的防御方法。具体而言,我们的方法首先通过注意力展开加因果扰动机制,从检索到的上下文中识别出一组具有影响力的小型关键词集。随后,利用这些关键词引导辅助LLM从检索段落中生成一组基于关键词的精简事实。最后,用这些精炼事实替换原始上下文,确保生成器基于净化后的证据而非原始检索文本进行操作。实验评估表明,KFS-RAG在注入攻击下显著降低了数据库泄露风险,同时保持了响应准确性和相关性。这项工作为构建安全可信的RAG系统指明了一条切实可行的路径。
## 1引言
检索增强生成作为一种将大型语言模型与外部知识库集成<sup>10</sup><sup>12</sup><sup>9</sup>的范式,近年来受到越来越多的关注。通过从结构化或非结构化数据库检索相关信息,并结合生成式推理,RAG能够产生更准确、更新且上下文相关的响应。因此,RAG已被广泛应用于现实世界的诸多领域,包括开放域问答、企业搜索和决策支持系统<sup>36</sup><sup>5</sup><sup>29</sup>。
请参见插图Figure 1:所提出的RAG防注入框架。然而,RAG系统存在固有的安全漏洞,尤其在面对提示注入攻击时<sup>26</sup>。攻击者精心设计恶意查询以误导检索器或生成器,从而导致专有数据库内容的泄露<sup>15</sup><sup>30</sup><sup>4</sup><sup>32</sup><sup>42</sup><sup>37</sup><sup>54</sup>。先前的研究表明,提示注入利用了RAG对外部知识的依赖,导致严重的数据库泄露风险,并对系统安全构成重大挑战<sup>48</sup><sup>12</sup><sup>33</sup>。例如,在一个软件开发助手<sup>51</sup>中,检索整个源代码文件可能会泄露硬编码的API密钥或私有端点等敏感信息,而这些信息对于回答调试查询并非必需。因此,有效缓解提示注入对于构建可信的RAG系统至关重要。
已有若干方法被提出用于缓解针对RAG系统的提示注入攻击,包括用合成文档替换原始文档<sup>49</sup>、应用差分隐私机制来约束LLM的最终生成<sup>20</sup><sup>14</sup>,以及在访问层加密用户特定的检索结果以实现用户间隔离<sup>52</sup><sup>8</sup>。然而,合成文档可能缺乏细粒度的信息指导,且不一定保留原始文档的关键细节;差分隐私通常假设可控的文档级贡献,这在小型数据库中难以满足;基于加密的隔离可能限制对完整知识库的访问,从而可能降低整体可用性。
本文旨在为RAG系统开发一种通用的防御机制,该机制不对系统的适用性施加限制性假设,同时最大程度地减少专有内容泄露,并保留与回答用户查询最相关的信息。在RAG设置中,这需要保留实际查询所需的关键上下文证据。为此,我们保持原始文档不变,仅在检索器识别出最相关文档后才进行处理。通过用这些提炼的信息替换原始上下文,我们的方法确保保留的内容对于回答问题仍然高度有用,同时仅暴露最相关的核心信息。此过程丢弃了冗余或无关的细节,从而降低了敏感数据库泄露的风险。具体而言,我们引入了KFS-RAG(面向RAG的关键词锚定事实替换),这是一种在检索后进行干预的防御框架,在生成前对检索到的上下文进行转换。检索到查询相关上下文后,我们识别与查询最相关的关键词,并仅提取其关联的事实信息,同时丢弃无关或潜在敏感的内容。如有必要,我们进一步执行可选的上下文重新合成步骤,以重构一个净化的上下文,从而提升下游可用性。
我们进行了广泛的实验,在多种任务上验证了所提出方法的有效性,包括开放域问答、多跳问答和特定领域的医疗对话生成。实验结果表明,我们的方法在保留生成答案实用性的同时,有效地减少了专有内容的泄露。
总体而言,KFS-RAG通过基于因果感知的关键词锚定来净化检索上下文,从而缓解提示注入,在保留响应质量的同时大幅减少了信息泄露,为构建安全可信的RAG系统提供了实践基础。
## 2相关工作
### 2.1检索增强生成及其脆弱性
检索增强生成已成为一种被广泛采用的范式,通过检索相关文档来引导响应生成<sup>12</sup><sup>10</sup><sup>7</sup>,从而利用外部、最新的知识来增强大型语言模型<sup>2</sup><sup>38</sup><sup>40</sup>。后续工作进一步将RAG扩展到更复杂的检索和推理场景<sup>13</sup>。
然而,对外部上下文的依赖也引入了安全风险,特别是对抗性的提示注入。先前的工作研究了结构化注入攻击及其隐私影响<sup>48</sup>,以及利用模型反馈生成日益有效的对抗性查询的迭代方法<sup>18</sup>。除了提示注入,近期研究提出了针对RAG的特定成员推理攻击,通过分析语义相似度和输出困惑度来推断目标样本是否存在于外部语料库中<sup>23</sup>。
### 2.2缓解RAG中的注入攻击
当前关于保护RAG系统免受注入威胁的研究主要集中在三个技术方向:数据合成<sup>49</sup>、差分隐私<sup>20</sup><sup>14</sup>和数据加密<sup>52</sup><sup>8</sup>。<sup>49</sup>介绍了一个专门为合成RAG特定数据集而设计的框架,它通过从原始段落中提取核心信息作为数据生成的基础。然而,这种合成过程不可避免地导致源文本中某些细粒度细节的遗漏。<sup>14</sup>探索了基于DP的RAG机制,通过噪声注入和私有选择来保护外部数据库。基于DP的RAG方法的一个关键局限性在于它们依赖于上下文冗余,因为当重叠信息有限时,实用性会急剧下降。<sup>8</sup>提出了RemoteRAG,使用可信执行环境结合远程证明来保护RAG流程,确保端到端的完整性和机密性。基于加密方法的主要缺点是它们无法充分利用所有上下文,这通常会导致实用性显著降低。
请参见插图Figure 2:KFS-RAG流程
## 3方法
### 3.1概述
我们的目标是在有效回答用户查询的同时,防止专有内容泄露。为此,我们保持底层文档集合不变,而是在检索后对检索到的内容进行操作,如Fig2所示。给定查询相关的检索上下文,我们首先识别与查询最相关的元素(第3.2节)。然后,我们仅提取与这些已识别元素对应的事实信息,丢弃无关或潜在敏感的内容(第3.3节)。此外,我们引入了一个可选的上下文重新合成步骤,从提取的事实中重构一个净化的上下文,以在某些场景下改善下游可用性(第3.4节)。
### 3.2关键词识别
为了防止专有内容泄露,同时高效回答用户查询,需要从检索到的段落中提取与查询高度相关的关键词。此关键词识别步骤必须满足两个要求:(i) 即使用户查询或检索文本包含对抗性指令,它也应保持鲁棒性;(ii) 它应计算轻量级,因为它处于每次RAG调用的关键路径上。
受这些限制的启发,我们采用轻量级模型进行关键词识别。具体来说,我们提出了一种混合注意力-扰动机制,它结合了注意力的高效性和扰动的因果锚定性。我们首先使用注意力模式来揭示模型全局关注的候选短语,以低成本获得高召回率的候选列表(第3.2.1节)。然后,我们通过基于损失的扰动测试来*验证*每个候选词,测量掩码或修改候选词是否会导致模型损失发生有意义的变化,从而过滤掉那些仅是显著但非因果相关的词元(第3.2.2节)。这种两阶段策略通过使用注意力进行低成本候选筛选,并通过扰动因果验证真正有影响力的关键词,在效率和可靠性之间取得了平衡。附录中的算法1详细说明了完整过程。
#### 3.2.1注意力引导的候选词选择
关键词识别的一个核心挑战是在不产生过高成本或依赖不透明、易受注入攻击决策的情况下,从检索上下文中获得一组紧凑的*与问题相关*的线索。我们的设计将注意力视为一种高效的*提议信号*:它可以揭示模型全局路由信息的高召回率词元列表,随后我们通过因果性进行验证。为了使注意力信息超越单层,我们采用了注意力展开法,该方法在聚合各层注意力流的同时考虑了残差连接。
形式化地,对于每一层l∈{1,...,L},令Al∈RS×S表示所有注意力头平均后的注意力矩阵,其中S是总序列长度。我们引入残差连接并通过以下方式稳定映射:
Âl = row_normalize((Al + I)/2), (1)
其中I∈RS×S是单位矩阵。然后,我们通过递归乘以归一化映射来计算展开矩阵:
R = ∏_{l=1}^L Âl = Â_L · Â_{L-1} · ... · Â_1. (2)
直观上,R(j,i)捕获了输入词元i对最终层表示中词元j通过注意力介导的总体影响,编码了丰富的上下文和语义信息<sup>50</sup><sup>53</sup>。为了聚焦于对回答相关的模型行为,我们通过平均其展开影响到生成答案词元y={y_1,...,y_M}的索引来为每个上下文词元t_i评分:
S_{t_i} = (1/M) ∑_{j∈indices(y)} R(j,i). (3)
这里,y不表示真实答案。在推理时,我们首先使用AP主干网络在c⊕q上运行一个轻量级的临时生成过程,并将生成的草稿词元作为y用于展开和扰动评分。最后,我们将词元级评分提升为词级评分。对于一个被分词为{t_a,...,t_{a+β}}的词w,我们定义
K_w = (1/(β+1)) ∑_{k=a}^{a+β} S_{t_k}. (4)
然后,我们选择排名靠前的词(或由它们形成的连续短语)作为后续基于扰动验证步骤的候选词。此阶段速度快且召回率高,但它被故意设计为*不是*最终的决策规则:注意力不具备因果可解释性,高注意力词元可能是偶然的而非产生答案所必需的<sup>17</sup>。我们的流程利用基于展开的注意力作为可扩展的提议器,并将最终判断推迟到下一阶段的因果测试。
#### 3.2.2基于扰动的验证
为了在保持鲁棒性的同时筛选候选词,我们通过因果扰动测试来验证候选词。其核心思想是测量候选词在检索上下文中被移除或掩码时,对模型行为的影响程度。令L(·)表示在输入提示下模型对原始答案y的损失;对于一个词w_i,我们构建一个扰动后的上下文c_i',其中w_i被替换为一个特殊的[MASK]词元。然后,我们计算损失变化:
ΔL_i = L(c_i' ⊕ q) - L(c ⊕ q). (5)
一个显著的正ΔL_i表明该词对模型的当前预测至关重要。我们设定一个阈值θ,只有当ΔL_i > θ时才保留该候选词。这种基于因果性的验证确保了被选中的关键词不仅在表面显著,而且对生成过程具有实质性影响,从而更有效地过滤掉无关或潜在敏感的信息。相似文章
RAGuard: 一种针对检索增强生成系统的分层防御框架,用于防御数据投毒
RAGuard 是一种针对检索增强生成(RAG)系统的分层防御框架,它利用检索器的对抗性微调以及一种无标签过滤器(ZKIP),在对语料库投毒攻击中实现零攻击成功率,同时保持较高的检索准确率。
TopoGuard:基于图论的RAG Split-Knowledge攻击防御
介绍了TopoGuard,这是一种基于图论的防御方法,用于抵御RAG系统中的Split-Knowledge攻击。该攻击中,多个单独无害的文档组合后会产生有害输出。该方法通过构建语义相似度图来检测恶意上下文,性能显著优于现有的逐文档过滤器(如LlamaGuard)。
RAG-CT:通过扫描提示分布缓解检索增强生成系统的隐私风险
RAG-CT是一种新颖的防御方法,通过分析熵和边缘分布来识别恶意查询,从而缓解检索增强生成系统的隐私风险,显著减少PII泄露。
预算约束下RAG系统中的事实错误诊断与修复
本文提出D2R-RAG,一个模型无关且资源感知的框架,在延迟和VRAM约束下诊断和修复RAG系统中的事实错误,在FEVER和HotpotQA上实现了更好的准确性与效率权衡。
CoinRAG: Contextualized Information Nugget KV Cache Reuse for Long-Context RAG
CoinRAG is a new method for long-context RAG that reuses fine-grained contextualized information nugget KV caches instead of full chunks, improving efficiency and answering quality. It achieves a new Pareto frontier with 5.3% relative F1 improvement on LongBench multi-hop QA tasks.