【RAG安全】Pirates of the RAG: Adaptively Attacking LLMs to Leak Knowledge Bases

  • 时间:2025-11-07 15:22 作者: 来源: 阅读:0
  • 扫一扫,手机访问
摘要: Abstract 随着检索增强生成(RAG)系统在各类现实服务中的广泛应用,其安全性问题日益引发关注。RAG 系统通过从私有知识库中检索信息,增强大语言模型(LLM)的生成能力,但一旦这些私有信息被意外泄露,可能导致严重的隐私泄露风险。本文提出了一种黑盒攻击方法,可自动且自适应地迫使 RAG 系统泄露其私有知识库。与现有方法不同,该攻击无需任何先验知识,仅借助开源 LLM 与相关性机制,即可生成

Abstract

随着检索增强生成(RAG)系统在各类现实服务中的广泛应用,其安全性问题日益引发关注。RAG 系统通过从私有知识库中检索信息,增强大语言模型(LLM)的生成能力,但一旦这些私有信息被意外泄露,可能导致严重的隐私泄露风险。本文提出了一种黑盒攻击方法,可自动且自适应地迫使 RAG 系统泄露其私有知识库。与现有方法不同,该攻击无需任何先验知识,仅借助开源 LLM 与相关性机制,即可生成高效查询,从而最大限度地提取隐藏知识。在多种 RAG 系统与领域上的实验表明,该方法在覆盖率与泄露率上均显著优于最新对比方案,且完全基于开源模型,可在普通家用设备上运行。研究结果再次强调,RAG 系统亟需更强大的隐私防护机制。

1 Introduction

Retrieval-Augmented Generation (RAG)(Lewis 等人,2020;Guu 等人,2020)允许大语言模型(LLM)在不依赖繁重的重新训练或微调过程的情况下,输出更准确、基于事实且最新的信息。RAG 可以应用于任何将 LLM 与外部知识库配对的场景,这些知识库通常包含对当前任务非常宝贵且有时是私有的信息。信息检索技术用于获取与当前输入高度相关的知识片段,然后用于增强和提升生成语言的质量。In-Context Learning(ICL)(Brown,2020)提供了一种简单有效的方式,通过扩展输入提示(Ram 等人,2023)将检索到的知识提供给 LLM。尽管知识库的格式和内容在不同应用之间可能有所不同,但它通常包含必须保密以确保隐私和安全的敏感信息。例如,RAG 系统可以部署为客户支持助手(Bhat 等人,2024),供组织内部员工使用以简化工作流程(RoyChowdhury 等人,2024),或集成到医疗支持聊天机器人中(Park,2024;Wang 等人,2024;Raja 等人,2024),在这些场景中,历史医疗记录有助于新病例的初步筛查。RAG 系统的广泛普及引发了关于隐私和数据安全的重大且经常被忽视的担忧(Zhou 等人,2024)。特别是,最近的研究(Zeng 等人,2024;Qi 等人,2024;Cohen 等人,2024)强调,RAG 系统容易受到特定提示增强的攻击,这些攻击可以“说服”LLM 在一定程度上返回其输入上下文中的内容,其中包含检索到的私有信息片段。

我们进一步深入这一方向,展示确实可以通过一个自动化程序攻击 RAG 系统,该程序由一个易于获取的开源 LLM 和句子编码器(sentence encoder)驱动。我们提出了一种基于相关性的机制,以促进对(隐藏的)私有知识库的探索,从而避免总是泄露知识库中同一子部分的信息。我们攻击程序的目标是最大化对私有知识库的估计覆盖率,从而尽可能提取其中的所有信息。总之,本文的贡献包括:

(i) 通过展示如何利用 RAG 系统的漏洞构建一个全自动的知识提取程序,提升对 RAG 系统中隐私风险的认识;

(ii) 提出一种无目标的黑盒攻击,旨在窃取 RAG 系统中的私有知识库。该攻击不依赖于对目标系统的任何先验知识(黑盒),可以在标准家用电脑上执行,无需依赖任何在线付费 API 或外部服务,仅使用开源代码和模型;

(iii) 提出一种新颖的自适应策略,通过基于相关性的机制,在完全未知的环境中逐步探索隐藏的私有知识库;

(iv) 展示该攻击在不同 RAG 配置下的可迁移性,并与所有最新的相关方法进行比较,这些方法要么不是完全黑盒,要么依赖外部服务(按量付费),要么不具备自适应能力。

我们的工作进一步揭示了 RAG 系统的关键漏洞,强调了采取特定隐私和安全导向措施以应对此类攻击的重要性。本文结构如下:第 2 节介绍背景概念;第 3 节介绍我们的算法;第 4 节介绍相关研究;第 5 节为实验部分;最后,第 6 节总结并提出未来研究方向。

2 Background


大语言模型(LLM)因其在与人类进行令人信服的语言交互方面表现出卓越能力(Li 等人,2022;Kamalloo 等人,2023;Zhu 等人,2023;Jiang 等人,2024b),在工业界和学术界都获得了广泛关注,同时也带来了在训练时未见过的新知识上适配模型的日益增长的需求。例如,在基于 LLM 的现实场景(如虚拟助手(Cutbill 等人,2024;García-Méndez 等人,2024;Kasneci 等人,2023))中,知识库或待执行任务可能随时间变化,模型需通过一次或多次微调过程进行适配(De Lange 等人,2021;Zhang 等人,2023;Bang 等人,2023),可能涉及模型的一部分或新增部分(Hu 等人,2022a),但这可能导致遗忘先前学到的知识(Lin 等人,2023)。另一种方法是保持模型参数冻结,通过 ICL(Brown,2020;Wei 等人,2022;Dong 等人,2022;Yu 等人,2023;Li,2023)提供新知识,即将信息追加到输入提示(上下文)中,这也是 RAG 系统的基础。

2.1 Retrieval-Augmented Generation

在本文中,我们考虑一组“文档” {D1,…,Dm}{mathcal{D}_1,dots,mathcal{D}_m}{D1​,…,Dm​} 其中每个 Dimathcal{D}_iDi​ 是一段非结构化的文本信息。给定一个预训练的 LLM,我们把 RAG 系统描述为由四个主要组件构成的架构:

文本嵌入器(函数 eee),将给定文本映射到高维嵌入空间,例如 Rdembmathbb{R}^{d_{mathrm{emb}}}Rdemb​;存储器,用于保存文本及其嵌入表示(通常称为向量数据库);相似度函数(如余弦相似度),用于评估两个文本嵌入向量之间的相似性;生成模型(函数 fff),通常是一个 LLM,基于输入提示和检索到的信息生成输出文本。

构建 RAG 系统的第一阶段是将文档 {D1,…,Dm}{mathcal{D}_1,dots,mathcal{D}_m}{D1​,…,Dm​} 划分为更小的文本片段(如句子、段落等),称为“块”(chunks)。我们用 ∣Di∣|mathcal{D}_i|∣Di​∣ 表示文档 Dimathcal{D}_iDi​ 中的块数。随后构建一个私有知识库 Kmathcal{K}K,收集所有处理后的块:

向量数据库中存储的是这些块的向量表示:

当用户提交输入提示 qqq 时,系统会在嵌入空间中检索最相似的块。提示 qqq 的嵌入表示为

语言模型函数 fff 基于输入提示 qqq 和检索到的块 X(q)mathcal{X}^{(q)}X(q) 生成输出文本 yyy。我们可以将基于提示的生成过程形式化为:

由于计算所有可能的 X(q)mathcal{X}^{(q)}X(q) 子集是不现实的,实际中仅选择相似度最高的前 kkk 个块作为 X(q)mathcal{X}^{(q)}X(q),即唯一具有非零概率的项。于是,生成过程简化为:

其中 y=(y1,…,ys)y=(y_1,dots,y_s)y=(y1​,…,ys​) 表示生成的 token 序列,y<zy_{<z}y<z​ 表示在时间步 zzz 之前生成的 token 序列,p(yz∣y<z,q,X(q),f)p(y_zmid y_{<z},q,mathcal{X}^{(q)},f)p(yz​∣y<z​,q,X(q),f) 表示在给定前文、提示和检索块的情况下,生成 token yzy_zyz​ 的概率。

2.2 Privacy Concerns in LLMs and RAGs

在隐私敏感应用中部署 AI 模型(Hu 和 Min,2023;Golda 等人,2024;Tramèr 等人,2022)已引起研究者对如何保护系统中敏感信息的关注。对于 LLM,可能会出现在公共数据集上训练时无意中包含敏感信息的情况(Wu 等人,2024;Yao 等人,2024),模型可能会无意中保留并泄露训练数据的片段(Wang 等人,2023;Carlini 等人,2021;Shin 等人,2020)。这一问题已被利用来设计特定的隐私攻击(Carlini 等人,2022;Hu 等人,2022b;Shokri 等人,2017)。RAG 系统的引入进一步增加了这些隐私问题的复杂性(Zhou 等人,2024)。事实上,RAG 模型的私有知识库通常包含专有数据和敏感信息,其中一部分会被输入 LLM 以回应用户查询。如果用户查询被恶意构造,LLM 可能会在输出中泄露这些私有数据(Zeng 等人,2024;Qi 等人,2024;Cohen 等人,2024;Jiang 等人,2024a;Zhou 等人,2024),从而为设计针对 RAG 系统的攻击打开了大门。

3 Pirates of the RAG

在机器学习服务的安全领域,已有大量研究关注不同类型的攻击与威胁模型(Cinà 等人,2023;Grosse 等人,2023)。本文聚焦于针对 RAG 系统的黑盒攻击(Wiyatno 等人,2019),这是最具挑战性的场景之一:攻击者对模型内部结构一无所知,只能通过提交输入并观察输出来与模型交互。此外,我们考虑无目标攻击,即在不针对特定数据类型的情况下,尽可能多地提取模型中的信息(Zeng 等人,2024)。不过,我们的方法也可扩展至有目标场景(本文未涉及)。

概述。借用海盗在公海上劫掠隐藏宝藏的比喻,我们的攻击目标是通过系统化手段发现私有/隐藏的 Kmathcal{K}K,并将其“窃取”——即尽可能完整地在攻击者本地复现出 K⋆mathcal{K}^starK⋆。这一过程通过“说服”RAG 系统中的 LLM fff,使其在响应 y=f(q)y=f(q)y=f(q) 中暴露块信息,而暴露的关键在于精心构造的查询 qqq。攻击具有自适应性:它依托一种基于相关性的机制,动态跟踪那些与已窃取内容高度相关的关键词/类别/主题——称为“锚点(anchors)”——这些锚点正是 RAG 系统更易被利用的高相关区域。攻击者仅依赖网络上随手可得的开源工具来准备查询 qqq:一个现成、体量较小的开源 LLM f⋆f^starf⋆ 即可胜任,外加文本编码器 e⋆e^stare⋆ 用于在向量空间中对块/锚点进行相似度比较。注意:

f⋆f^starf⋆ 与 e⋆e^stare⋆ 无需与目标系统的 fff 或 eee 相似,因为黑盒设定下后者完全未知;我们强调所选模型必须能在家用电脑(甚至智能手机)上流畅运行。

简言之,攻击者利用 f⋆f^starf⋆、e⋆e^stare⋆、已窃取的知识 Kt⋆mathcal{K}_t^starKt⋆​,以及一套基于相关性的自适应机制,不断生成新查询,旨在最大化对 Kmathcal{K}K 的暴露程度。图 1 给出了攻击全貌。

3.1 Pirate Algorithm


预备知识。攻击算法持续向 RAG 系统提交查询,直到满足基于相关性的停止准则(见下文)。令 ttt 为迭代索引,我们将所有先前符号追加下标 ttt 以表示第 ttt 步的状态。算法逐步累积一组锚点

Initialization

在启动自适应攻击流程之前,首先用一个常见词构建初始锚点集合 A0={a0,1},mathcal{A}_0 = {a_{0,1}},A0​={a0,1​},
通常选取目标语言中的一个常用词,并将其相关性设为自定义的正整数 β>0eta > 0β>0,即 R0={r0,1=β}.mathcal{R}_0 = {r_{0,1} = eta}.R0​={r0,1​=β}. 由于锚点将用于构造攻击查询,βetaβ 的值可以解释为:同一锚点最多允许导致模型 fff 返回重复块的次数上限。
接下来,手动构造一条初始查询 q0q_0q0​ 并发送给 RAG 系统中的 LLM,在 q0q_0q0​ 末尾依次附加注入指令池 Cmathcal{C}C 中的命令,要求模型按照指定格式返回最多 ccc 个块。通过观察实际返回结构 y=f(q0)y = f(q_0)y=f(q0​),即可制定简单的解析规则,用于后续从模型输出中提取块相关内容。该步骤非常简单,具体示例见附录 C。

Stealing Chunks

在第 ttt 步,首先根据相关性得分集合 RtR_tRt​ 对锚点集合 Atmathcal{A}_tAt​ 进行采样,选出 n≥1ngeq 1n≥1 个最相关的锚点( sample——见算法 1)。有效的锚点采样对于在窃取过程中平衡“探索”与“利用”至关重要。我们使用 softmax 函数将相关性得分转换为概率分布,然后依此独立地抽取 nnn 个样本。这种方式既允许“探索”(低概率锚点仍有机会被选中,从而覆盖更广泛的主题),也保证“利用”(高相关性锚点更可能被选中)。

随后,攻击者侧的 LLM f⋆f^starf⋆ 被要求生成一段文本,该文本需包含采样得到的锚点( generate_base_query——见算法 1)。生成的文本接着被注入一条从指令池 Cmathcal{C}C 中选出的命令,形成最终查询 qtq_tqt​( inject——见算法 1)。该查询被发送给 RAG 系统的 LLM,返回输出 y=f(qt)y={f}(q_t)y=f(qt​)。解析函数 parse 检查输出中是否包含来自私有知识库的块,若成功则收集到块集合

(实际返回的块数可能少于或多于 ccc)。若 Stmathcal{S}_tSt​ 为空,则继续使用 Cmathcal{C}C 中的下一条指令重试,直到成功解析出块为止。

Duplicates

窃取到的块集合 Stmathcal{S}_tSt​ 中,可能包含与已窃取知识 Kt⋆mathcal{K}_t^starKt⋆​ 重复的块。由于返回文本可能带有噪声、同义词或轻微改写,不能仅靠字符串精确匹配去重。因此,我们借助嵌入空间进行比较:

将已窃取块 Kt⋆mathcal{K}_t^starKt⋆​ 与当前块 st,j∈Sts_{t,j}inmathcal{S}_tst,j​∈St​ 分别用攻击者编码器 e⋆e^stare⋆ 得到嵌入

Updating Anchor Set

在将非重复块正式加入攻击者知识库后,我们利用攻击者侧的 LLM f⋆f^starf⋆ 从这些新块中提取潜在的新锚点( extract_anchors——见算法 1)。提取出的候选锚点集合记为 Amathcal{A}A,随后需要与现有锚点集合 Atmathcal{A}_tAt​ 进行去重,以避免引入语义重复或高度相似的主题。

具体地,我们对候选锚点与已有锚点分别使用攻击者编码器 e⋆e^stare⋆ 计算嵌入,并通过余弦相似度进行比较:

对于任意候选锚点 a∈Aa in mathcal{A}a∈A,若存在已有锚点 at,i∈Ata_{t,i} in mathcal{A}_tat,i​∈At​ 使得

最终,将保留下来的新锚点加入锚点集合,更新为

这一机制确保锚点集合持续扩展,同时避免冗余,维持对知识库主题的有效覆盖。

Updating Relevance Scores

锚点的相关性得分通过动态过程更新,其依据是各锚点在最新迭代中的“有效性”:

若锚点 at,ia_{t,i}at,i​ 属于新提取的块(即首次出现),则赋予其当前最高相关性,确保新主题获得足够关注:

若锚点 at,ia_{t,i}at,i​ 出现在重复块中,则对其施加惩罚,防止算法持续围绕无效主题打转:

其余情况保持原得分不变。

所有得分裁剪至非负,即 rt+1,i≥0r_{t+1,i}geq 0rt+1,i​≥0。当全部锚点的相关性降为 0 时,算法认为无法再从知识库中获取新信息,自动终止。

Computing Penalty Scores

为了量化每个锚点在重复块中的“责任”,我们为其计算一个惩罚得分 γt,igamma_{t,i}γt,i​,具体步骤如下:

对每一条被判定为重复的块 s~t,j∈S~t ilde{s}_{t,j} in ilde{mathcal{S}}_ts~t,j​∈S~t​,先计算它与当前所有锚点的相似度向量,并通过 softmax 归一化得到概率分布:

其中 s~t,j=e⋆(s~t,j) ilde{mathbf{s}}_{t,j} = e^star( ilde{s}_{t,j})s~t,j​=e⋆(s~t,j​) 为重复块的嵌入,at,z=e⋆(at,z)mathbf{a}_{t,z} = e^star(a_{t,z})at,z​=e⋆(at,z​) 为第 zzz 个锚点的嵌入。

对于每个锚点 at,ia_{t,i}at,i​,取其在该分布中的对应分量 vt,j,(i)v_{t,j,(i)}vt,j,(i)​,表示该锚点与重复块 s~t,j ilde{s}_{t,j}s~t,j​ 的“关联强度”。

将所有重复块的关联强度取平均,得到锚点 at,ia_{t,i}at,i​ 的最终惩罚得分:

显然 γt,i∈[0,1]gamma_{t,i} in [0, 1]γt,i​∈[0,1]:

若锚点频繁与重复块高度相似,则 γt,igamma_{t,i}γt,i​ 接近 1,惩罚力度大;若关联较弱,则 γt,igamma_{t,i}γt,i​ 接近 0,惩罚轻微。

该惩罚机制确保“无效”锚点迅速失去影响力,迫使算法转向尚未充分探索的知识区域。

4 Related Work

隐私攻击旨在破坏系统数据的机密性,削弱其可信性与安全保证。这类攻击不仅针对传统机器学习模型(Rigaki and Garcia, 2023),近年来也扩展到大型语言模型(Wang et al., 2023;Carlini et al., 2021;Shin et al., 2020)乃至 RAG 系统(Zhou et al., 2024)。除成员推理攻击(MIA)(Carlini et al., 2022;Hu et al., 2022b;Shokri et al., 2017)——其目标仅是判断特定样本是否存在于训练集——之外,最近的研究开始关注从 RAG 系统中实际窃取知识。Huang et al. (2023) 针对基于 kNN 的语言模型开展隐私漏洞分析,指出精心构造的越狱指令不仅能提取敏感信息,还会破坏模型的安全性、可用性与可信度,使其失效。本文工作正是受这些发现的启发。

据我们所知,仅有极少数最新研究与我们的方案直接相关,且将在第 5 节进行实验对比,包括:Zeng et al. (2024)、Qi et al. (2024)、Cohen et al. (2024)、Jiang et al. (2024a)。除 Cohen et al. (2024) 假设已知目标系统的嵌入机制外,其余均在黑盒场景下运行。

The Good and The Bad (TGTB)(Zeng et al., 2024)从 Common Crawl 收集文本块作为提示,再注入并发送给目标模型。Prompt-Injection for Data Extraction (PIDE)(Qi et al., 2024)采用类似方法,但文本来源为 WikiQA 数据集。

这两种方法不具备自适应性:在无目标设定下使用静态问题,有目标设定下则调用 GPT API;而我们完全基于开源模型,无需任何付费接口。

Dynamic Greedy Embedding Attack (DGEA)(Cohen et al., 2024)提出一种自适应算法,动态构造查询:最大化当前查询与已窃取块的嵌入差异,同时最小化查询与“注入指令版”查询的嵌入差异,以保证指令插入后仍保持语义一致。然而,该方法仅部分黑盒,且查询生成需要多次迭代比较;我们的方法一次生成即可。

Rag-Thief (RThief)(Jiang et al., 2024a)利用短期记忆暂存已提取块,再用反射机制生成多条前后续文本,拼接后注入目标模型。相比之下,我们仅需一次生成调用即可构造攻击查询。

终止条件方面,TGTB、PIDE 与 DGEA 均使用固定攻击次数;RThief 稍灵活,可在短期记忆为空或达到最大次数时停止;而我们的方法以锚点相关性为零作为上下文感知的自适应终止信号,无需预设上限。

5 Experiments

我们进行了实验,以模拟针对三种不同 RAG 系统的真实攻击场景,每种场景使用不同的攻击者端 LLM。目标是尽可能多地从私有知识库中提取信息。

Virtual Agents。我们定义了三个基于 RAG 的代理(表 1)。

Agent A:面向患者的诊断支持聊天机器人,其私有知识库由历史医患对话与医疗记录构建,用于根据患者当前症状推断可能的病情。Agent B:面向儿童的教育助手,回答历史、地理等问题,其知识库包含未充分过滤的私有古迹细节。Agent C:化学与医学研究助手,支持实验场景,其知识库包含保密的化学合成流程与专有制备方法。


各代理的私有知识库通过公开数据集模拟(表 1)。我们使用领域相关的语义子采样方法,为每个代理抽取 1 000 个块,避免所选块落入同一语义簇。Agent A 的切块策略遵循 Zeng 等人(2024),即保持“患者-医生”对为单块;Agent B 与 C 的切块策略遵循 HuggingFace 上对应数据集的 RAG 评估做法。向量数据库采用 Chroma-DB,默认参数构建;通过调整检索 top-k 与 LLM temperature 来体现不同代理特性(Agent A、B:top-k=5,temperature=0.8;Agent C:top-k=3,temperature=0.6)。

Competitors。我们与第 4 节描述的四种最新方法对比:TGTB(Zeng et al., 2024)、PIDE(Qi et al., 2024)、DGEA(Cohen et al., 2024)及 RThief(Jiang et al., 2024a)。TGTB 与 PIDE 在其有目标设置中使用 GPT 作为查询生成器;为公平无目标对比,我们额外引入 GPTGEN,基于 GPT-4o-mini 生成通用知识问题,并沿用 TGTB/PIDE 的攻击流程。DGEA 与 RThief 原本针对在线高端 LLM 设计,我们统一使用 GPT-4o-mini 作为其目标模型,并提供变体 DGEA*、RThief*,改用与本文相同的小模型,且 DGEA* 不再假设已知隐藏嵌入器,实现完全黑盒。

Bounded vs. Unbounded。我们考虑两种评估设定:

Bounded(BO):每种方法最多执行 300 次攻击(即最多尝试 300 条注入指令,直到某次成功返回块)。Unbounded(UB):攻击可无限进行,由算法自行决定何时停止。仅我们的 Pirate 原生支持 UB;RThief 可通过“短期与长期记忆皆空”模拟 UB(记为 RThief-UB)。其余方法因无自适应停止机制,仅跑 Bounded。

攻击端模型选择兼顾性能与家用硬件可行性:编码器采用 Snowflake-arctic-embed(MTEB 榜单),LLM 为 Llama-3.2-1B,temperature=0.8。Pirate 超参:β=1,块去重阈值 α₁=0.95,锚点去重阈值 α₂=0.8,每次采样锚点数 n=3。

Injection Commands。TGTB、PIDE、GPTGEN 及 Pirate 均顺序尝试指令池 Cmathcal{C}C 中的命令,直到成功或耗尽;RThief 固定使用首次成功的指令;DGEA 将单条指令嵌入其动态查询生成过程,无法换指令,故不参与指令池循环。DGEA 与 RThief 原实现要求返回 JSON,我们在其变体 DGEA*、RThief* 中取消 JSON 要求,统一使用 Cmathcal{C}C 的首条指令,并采用与 Pirate 相同的解析流程。

Metrics。采用五项指标:

Navigation Coverage (Nav):攻击查询至少一次触发私有知识库某块进入 top-k 的比例,衡量查询对知识库主题的覆盖广度。Leaked Knowledge (LK):与私有块语义匹配(ROUGE-L ≥ 0.5)的泄露块比例,衡量实际信息泄露量。Leaked Chunks (LC):累计窃取块总数(含重复)。Unique Leaked Chunks (ULC):去重后的窃取块数,反映新内容发现能力。Attack Query Generation Time (Gs):攻击端生成一条 poison 查询的平均 wall-clock 时间(不含网络请求)。

Main Results(Bounded)。表 2 给出 Nav 与 LK 的联合结果。Pirate 在所有代理上 Nav 均显著领先,LK 也大多居首或次席;在 Agent A 医疗场景下,LK 领先幅度最大。尽管被手动截断在 300 次攻击,Pirate 仍能泄露更多、更分散的知识,验证其相关性自适应机制的有效性。

Main Results(Unbounded)。表 3 展示 UB 设定下 Pirate 与 RThief 系列的对比。Pirate 在三轮实验中均提取出 90 % 左右的私有知识,RThief 即使跑空记忆也远不及。图 2 显示 Pirate 的锚点集大小与“死亡”(零相关)锚点数几乎对称,Agent A 死亡锚点少、收敛快,对应其最高泄露率;Agent B/C 需更多锚点探索,结果也与表 2–3 一致。图 3 给出 Bounded 下 LC 与 ULC:Pirate 在 Agent A、C 的 ULC 最高,Agent B 与 PIDE 持平,且 Unique/Total 比值更高,说明查询更有效探索新内容而非反复捞旧块。表 4 报告 Gs:Pirate 平均 11–15 s,与 RThief 相当,远快于需多次嵌入比对的 DGEA 系列,且生成查询长度更短(图 4)。

In-depth Studies

为了深入观察攻击过程中锚点集合与相关性机制的行为,图 2 给出了锚点集大小 ∣At∣|A_t|∣At​∣ 随攻击轮次(即攻击次数)变化的曲线(实线),以及相关性得分为 0 的“死亡”锚点数量(虚线)。当两条曲线重合时,算法终止。可以观察到,同色曲线几乎关于原点与终点连线对称。对比表 2–3 可见,锚点收集数量越少(Agent A),泄露效果越好;Agent B/C 需更多锚点,且 Agent B 的死亡速率更快,表明大量锚点效果不佳,与表 2–3 中 B 的较低结果一致。

图 3 对比 Bounded 设定下各方法提取的总块数(LC)与唯一块数(ULC)。Pirate 在 Agent A 与 C 的 ULC 最高,与次优方法差距明显;在 Agent B 与 PIDE 持平,但 Unique/Total 比值更高,表明查询更能探索新内容而非重复捞取旧块。

表 4 报告生成一条攻击查询的 wall-clock 时间(Gs,不含网络请求)。PIDE、TGTB、GPTGEN 因使用预生成查询,Gs 为 0;DGEA 需多次嵌入比对,耗时数百秒;RThief 需对窃取块生成前后续文本,查询更长、耗时更高。Pirate 平均 11–15 s,与 RThief 相当,但查询更短、无需额外比对,验证其生成效率优势。

综上,Pirate 在覆盖、泄露量、生成效率上均优于现有方法,且完全基于开源模型,可在普通硬件运行。

6 Conclusions and Future Work

本文提出了一种自适应攻击流程,使恶意用户能够从 RAG 系统的私有知识库中提取信息。通过基于锚点的机制与自动更新的相关性得分,该算法仅依赖可在家用电脑运行的开源工具,即可在覆盖率、泄露量、查询生成时间等指标上显著优于现有方法。实验结果再次提醒:在 RAG 系统的设计与部署中,亟需更强大的隐私防护措施(附录 H 讨论了即将出现的防护技术)。

未来工作将聚焦于有目标攻击的扩展——通过预设感兴趣的主题或关键词,引导锚点采样与查询生成,从而精准提取特定领域知识。

7 Limitations

重复判定依赖相似度阈值
攻击提取的块必须与私有块进行比对,以判断是否为同一信息。本文使用 ROUGE-L ≥ 0.5 作为一致标准,并先用嵌入相似度预筛选,再用 ROUGE-L 精筛。然而,返回文本可能包含噪声、同义词或改写,导致比对困难。其他更严格或面向不同文本特征的度量尚未探索,且重复判定阈值 α₁ 为人工设定,可能将高度相似文本误判为非重复,或反之。

未区分公开与私有内容
RAG 知识库通常同时包含公开信息与需保护的私有数据。本文仅统计总体泄露比例,无法对二者分别评估(因缺乏标签)。由于比对过程存在容忍度,实际泄露块可能遗漏部分私有片段,即便 LK 达到 100 %。

仅支持无目标攻击
当前算法为无目标场景设计,无法针对特定知识片段定向提取。虽然可通过预设主题词实现有目标扩展,但尚未在本工作中实现。

攻击效果受限于攻击端 LLM 能力
若攻击者 LLM 过于简单,生成的锚点质量低,将导致大量无效查询,相关性机制失效,整体攻击成功率下降。

关键超参需人工设定
算法涉及多个初始参数(如相似度阈值 α₁、α₂,锚点采样数 n 等),其取值直接影响去重与探索效果。尽管我们在多组实验中测试了不同配置,实际部署时仍需针对目标系统调优,难以直接给出通用最优值。

未考虑防护机制
实验基于标准 RAG 配置,未部署针对注入指令的检测或过滤模块。若目标系统引入查询过滤器、Guardian LLM 或其他安全策略,攻击效果可能降低,需进一步研究绕过或削弱这些防护的方法。

8 Ethical Considerations

存在一系列重要的伦理考量,因为任何能够破坏 RAG 系统安全性的流程都可能对用户和利益相关者造成伤害。RAG 系统的内部知识库往往包含敏感或专有数据;一旦泄露,可能被用于传播错误信息、窃取知识产权或侵犯隐私。开发者与运营者必须在系统设计、部署阶段就引入强健的安全措施,以抵御本文所示的查询操控攻击。

与所有针对机器学习模型的攻击研究一样,针对本文提出的具体注入指令可以叠加防御,但攻击者亦可在保持算法框架不变的情况下引入新的恶意提示,从而延续攻防博弈。本文并未披露任何超出公开文献(见第 4 节)的 RAG 安全新漏洞,所提攻击主要在已有方向上采用更先进的自动化与自适应技术。我们相信,这项研究为近期揭示的问题提供了更细致的视角,进而促进设计超越本文攻击的针对性防护措施。

  • 全部评论(0)
手机二维码手机访问领取大礼包
返回顶部