LeakDojo: Decoding the Leakage Threats of RAG Systems¶
会议: ACL 2026
arXiv: 2605.05818
代码: 已开源(GitHub 链接在论文中)
领域: RAG / 信息检索 / LLM 安全
关键词: RAG 泄露攻击, prompt injection, 红队评测框架, 指令跟随安全, 隐写攻击
一句话总结¶
提出 LeakDojo——首个把 RAG 系统、攻击与防御都模块化解耦的可配置评测框架,在 6 种攻击 × 14 个 LLM × 4 个数据集 × 多种增强模块上系统量化 RAG 泄露风险,发现"指令跟随能力越强、泄露风险越高"且"RAG 忠实度与泄露风险正相关"。
研究背景与动机¶
领域现状:检索增强生成(RAG)已成为 LLM 接入私有 / 高价值知识库的事实标准(医疗、金融、法律等),现代 RAG 不再是简单"检索 + 生成",而是堆叠了 rewriter、reranker、summarizer 等多种增强模块。同时,已有多篇工作(TGTB、PIDE、DGEA、RAG-Thief、PoR、IKEA 等)展示通过 prompt injection 可以让 LLM 把检索到的 chunk 原文吐出来,从而"窃取"知识库。
现有痛点:(1) 这些攻击各自的 benchmark / 攻击预算 / RAG 配置都不一致,无法公平比较;(2) 它们大多针对相对简单的 RAG,对带 rewriter / reranker / summarizer 的"现代 RAG"效果不明;(3) 新 LLM 的指令跟随能力越来越强,是否反而放大泄露风险?这些都是开放问题。
核心矛盾:(a) 可用性 vs 安全性——给 RAG 加增强模块(rewriter / summarizer)能提升 faithfulness,但是否会同时放大泄露?(b) 能力 vs 安全——更强大、更"听话"的 LLM 是否反而是更脆弱的 RAG 后端?这些 trade-off 在现有研究中没有被定量回答。
本文目标:(1) 用统一框架公平评测 6 种已有攻击;(2) 解耦 RAG 系统、攻击、防御的设计空间,量化各模块独立 / 联合影响;(3) 提取出可指导实践的"泄露机制"规律(如:什么因素是 bottleneck?是 query generator 还是 adversarial instruction?)。
切入角度:作者把 RAG 泄露攻击重新形式化为 \(Q^{adv}_i = A_i \oplus I\)——其中 \(A_i\) 是第 \(i\) 轮的 anchor query(决定能否检索到新 chunk),\(I\) 是 adversarial instruction(决定能否让模型把 chunk 吐出来)。这两个组件正交可独立替换,使得"模块化解耦评测"成为可能。
核心 idea:以"配置化"为核心设计原则构建 LeakDojo——RAG 系统 / 攻击 / 防御都是即插即用的模块,配合 4 个互补指标(CCL / SLT / ARC / CRR)做系统化基准测试,从大量实验里提取出可操作的泄露机制规律,并基于"瓶颈在 instruction"这一发现设计了两种新型隐写攻击(RankerSet、CodeClaim)来验证框架的延展性。
方法详解¶
整体框架¶
LeakDojo 把 RAG 泄露场景拆成三层可配置组件:
- RAG 系统侧:retriever(embedding model + 检索策略 + top-\(k\)) + 可选 rewriter / reranker / summarizer + 后端 LLM(local vLLM 或远程 API);
- 攻击侧:query generator(静态或交互式,负责生成 anchor query \(A_i\)) + adversarial instruction \(I\)(诱使 LLM 复述上下文);
- 防御侧:输入端 intent detector(如 GPT-4.1-mini 判 query 意图) + 输出端 content detector(ROUGE-L > 阈值就 block)。
每个模块独立可控,可任意组合,从而支持四类研究:(a) 公平 benchmark 已有攻击;(b) 审计在线 RAG 的泄露风险;(c) 比较不同防御;(d) 即插即用扩展新攻击。
威胁模型:黑盒、\(N=200\) 轮交互预算、攻击者只知道高层领域、目标是最大化 unique chunk 泄露数。
关键设计¶
-
攻击的正交分解:\(Q^{adv}_i = A_i \oplus I\):
- 功能:把"RAG 泄露攻击是否成功"拆解为两个可独立量化的子问题——能否检索到新 chunk(query generator 的能力),能否让 LLM 吐出来(adversarial instruction 的能力)。
- 核心思路:在评测时分别用 ARC(unique retrieved / 上限 \(k\times N\))衡量 \(A_i\) 的效果,用 SLT(成功触发 leak 的 query 比例,由 ROUGE-L recall > 0.5 判定)衡量 \(I\) 的效果;总体泄露用 CCL(unique leaked chunk / 上限)衡量。元分析显示 \(\text{CCL} \approx \text{ARC} \times \text{SLT}\),意味着两个组件的影响近似乘积、相互正交。
- 设计动机:这是 LeakDojo 的认知核心。以往攻击都被当成"黑盒一体方法"对比,而本文证明所有攻击都可拆成"query 生成 + instruction 触发"两步,从而能精确指出每种攻击的瓶颈(如 TGTB 在弱模型上 ARC 高但 SLT 低,瓶颈是 instruction),也为"组合式增强"提供了原则性方向。
-
模块化 RAG / 攻击 / 防御 + 4 指标互补评测:
- 功能:在统一 pipeline 下做"消融式"评测,量化任意组件对泄露/可用性的边际影响。
- 核心思路:RAG 侧定义 4 个梯度配置 T0/T1/T2/T3(vanilla → +reranker → +rewriter → full)。攻击侧实现 6 个已有方法(TGTB、GEN-PIDE、DGEA、RAG-Thief、PoR、IKEA)作为 query generator 的不同实例。同时用 Ragas faithfulness 测可用性。所有结果用 4 指标报告:CCL(累计泄露率)、SLT(触发率)、ARC(检索覆盖率)、CRR(逐字恢复质量)。
- 设计动机:单一指标会掩盖机制差异(如 IKEA 的 SLT 很高但 ARC 低,CCL 自然就低),4 指标 + 模块消融才能定位"风险来源"和"提升空间"。这种解耦让 RAG 开发者第一次有了"换 LLM 或加 rewriter 会不会更危险"的定量答案。
-
基于 logical masking 的新型隐写攻击:RankerSet & CodeClaim:
- 功能:作为 LeakDojo 可扩展性的 case study,验证"瓶颈在 instruction"这一发现可直接转化为攻击设计。
- 核心思路:以往 instruction 含"repeat""verbatim"等显式关键词,极易被 intent detector 拦截(CCL 砍到 <1%)。RankerSet 和 CodeClaim 把"复述 chunk"的意图嵌入逻辑推理链(如让 LLM 把 chunk 当成排序/代码声明任务的输入),instruction 表面上是合法任务请求。
- 设计动机:直接验证 LeakDojo 不是"只能评测"的死框架,而是能孵化新攻击;同时呼应作者的关键发现——把工程精力从"让 query 多样化"转向"让 instruction 隐蔽化"才是高 ROI 的方向。在 intent detector 开启时,CodeClaim + GEN-PIDE 在 FIQA / DeepSeek-V3 上 CCL 仍达 59.6%,是默认 instruction 在无防御下(7.3%)的 8 倍。
损失函数 / 训练策略¶
LeakDojo 是评测框架而非训练方法,无 loss;为可复现性所有 LLM 用 greedy decoding,攻击预算 \(N=200\);rewriter / summarizer 用 GPT-4.1-mini,retriever 用 bge-large-en-v1.5 + MMR + bge-reranker-large。
实验关键数据¶
主实验¶
跨 6 个主 LLM × 4 数据集 × 3 个 RAG 变体(vanilla / +reranker / +rewriter+reranker),用 4 指标评测 6 种攻击。下表节选典型场景的 CCL(%):
| 攻击 | Gemini-3-flash · ENRON | GPT-5.1 · ENRON | DeepSeek-V3 · ENRON | Qwen-3-8B · ENRON |
|---|---|---|---|---|
| TGTB | 72.3 | 69.5 | 0.1 | 10.4 |
| GEN-PIDE | 69.4 | 36.8 | 38.8 | 35.4 |
| DGEA | 11.2 | 16.5 | 8.1 | 12.4 |
| RAG-Thief | 44.4 | 3.3 | 64.4 | 64.1 |
| PoR | 88.3 | 83.2 | 6.8 | 70.2 |
| IKEA | 23.2 | 15.4 | 1.0 | 6.0 |
关键现象:(a) 无单一攻击在所有 LLM 上都最强——PoR 在 Gemini 上是冠军(88.3%)但在 DeepSeek-V3 上崩到 6.8%;(b) 同一数据集上 ARC 几乎不变但 SLT 跨模型剧烈波动,说明 bottleneck 是 instruction 而非 query;(c) 14 LLM 的 IFEval 分数与 SLT 的 Pearson \(r=0.578\)(\(p=0.039\)),指令跟随越强、泄露风险越高。
消融实验¶
RAG 模块 × 数据集 × 攻击的影响分析(CCL 与 faithfulness 关联):
| 配置 | ARC 变化 | CCL 变化 | Faithfulness | 解读 |
|---|---|---|---|---|
| T0 → T1(+reranker) | 几乎不变 | 几乎不变(\(r=-0.186\), \(p=0.117\)) | 略升 | reranker 对泄露中性,可放心使用 |
| T1 → T2(+rewriter) | 均值↑、方差↓ | 整体↑ | 上升 | rewriter 把弱攻击拉到稳定高位,降低攻击门槛 |
| T2 → T3(+summarizer) | 略降 | 显著↓ | 显著↓ | summarizer 砍掉 context 完整性,同时损伤可用性 |
Faithfulness ↔ CCL 相关性(FIQA \(r=0.83, p=4.88e{-7}\);SCIFACT \(r=0.57\);NFCORPUS \(r=0.51\))—— RAG 越"忠实"越易被泄露。
正交分解验证:\(\text{SLT} \times \text{ARC}\) 在所有 6 攻击上几乎完美拟合 CCL 曲线(Figure 5),证明两个组件作用近似独立。
防御 + 新攻击对照(FIQA · DeepSeek-V3 · T2 · CCL %):
| 攻击 | Default | + intent det. | RankerSet + Di | CodeClaim + Di | CodeClaim + DiDo |
|---|---|---|---|---|---|
| TGTB | 7.3 | 0.6 | 50.9 | 59.0 | 25.9 |
| GEN-PIDE | 57.5 | 0.2 | 47.8 | 59.6 | 26.5 |
| PoR | 48.7 | 0.2 | 51.7 | 57.9 | 26.9 |
CodeClaim 在 intent 检测开启下仍把 CCL 拉到 50–60%,比默认 instruction 在无防御下还高,验证"瓶颈在 instruction"的结论可直接转化为高效攻击。
关键发现¶
- CCL ≈ ARC × SLT 这条经验律意义重大:把多年攻击改进的方向(大多在堆 query generator)证伪——真正应该攻克的是 instruction 端的隐蔽性。
- 强者更危险:指令跟随能力(IFEval)与 SLT 正相关,意味着模型能力进步与 RAG 安全是一对反向 trade-off,安全研究必须跟上能力曲线。
- rewriter 是安全隐患:rewriter 把弱 query 拉到高 ARC,相当于把"攻击门槛"降低,部署时需要重点防范。
- summarizer 是"用安全换可用性":能砍 CCL 但伤 faithfulness,安全敏感场景可考虑作为最后兜底。
- reranker 中性:CCL 相关性接近 0,可放心使用。
- 现有攻击普遍缺乏隐蔽性:单一 intent detector 就把多数攻击 CCL 砍到 <1%,但作者的 logical masking 攻击轻松绕过,说明工业部署不能依赖关键词级防御。
亮点与洞察¶
- "\(Q^{adv} = A \oplus I\) 正交分解"是把混沌的红队评测转成可量化机制研究的关键:这种简洁形式化让 LeakDojo 不只是"凑指标",而是真的能解释为什么某攻击在某模型上崩盘。这个分解可以迁移到 prompt injection、agent 攻击、jailbreak 等任何"诱导 + 触发"双段式攻击的评测中。
- "能力 ↔ 安全"的负相关被定量化(IFEval vs SLT, \(r=0.578\)):直觉上一直有人怀疑"模型越听话越好骗",本文是首次给出统计证据。这对模型选型 / safety alignment 设计是直接的指导。
- "faithfulness ↔ leakage"正相关指出了 RAG 安全研究的一个"反直觉"原则——你越想让 RAG 老老实实复述检索内容,它就越容易在攻击下也老老实实复述。这意味着安全机制必须显式区分"用户提问的复述需求" vs "攻击者诱导的复述需求"。
- case study 用框架反哺攻击设计:作者基于自己的分析("瓶颈在 instruction")设计 RankerSet/CodeClaim 隐写攻击,把评测框架的实用性闭环验证——这种"benchmark 不是终点而是工具"的姿态值得借鉴。
局限与展望¶
- 未量化攻击成本:CCL 等指标都按固定预算 \(N=200\) 对比,没考虑生成 token / latency / 推理费用差异,工业部署还需要补一套"性价比"评测维度。
- RAG 设计覆盖有限:只研究了 rewriter / reranker / summarizer 三种增强;Routing、self-reflection、agentic-RAG、GraphRAG 等更复杂结构未触及,可能存在新的 leakage 路径。
- 单一语种:所有数据集都是英文。多语种 RAG 的 indexing 偏差、跨语对齐都可能改变泄露动力学。
- 防御较简单:只测了 intent / content detector 两种基础防御,未对抗 SecAlign、StruQ、Spotlighting 等专用 prompt-injection 防御;后续应让 RankerSet / CodeClaim 对抗这些更强 baseline。
- 预算 \(N=200\) 的合理性:作者用 Figure 7 论证已能区分攻击曲线,但在长期监控场景下攻击者可以分时段隐蔽攻击,更长 horizon 的 leakage 行为仍待研究。
- 改进思路:(a) 把分解推广到 \(Q^{adv}=f(A, I, \text{persona})\),把 system-prompt 持久人设也纳入正交分析;(b) 用 LeakDojo 训练一个"红队 LLM"自动搜索高 ARC×SLT 的组合;(c) 探索 "faithfulness-leakage" 解耦的训练目标(如让 RAG 模型识别"内部 chunk vs 用户提问"再决定要不要复述)。
相关工作与启发¶
- vs RAG-Thief / PoR / IKEA 等单点攻击: 他们各自提出新的 query generator 并报告自己的 SOTA;本文把它们都嵌进 LeakDojo 重新评测,揭示"没有 universal 最强"且真正的瓶颈在 instruction——是对整个攻击社区研究方向的修正。
- vs HarmBench / RACCOON / AgentDojo: 它们分别在 jailbreak / prompt leakage / agent 攻击上做统一 benchmark;LeakDojo 把"多轮 stateful 攻击 + 多模块 RAG"这两个 RAG 独有挑战纳入,是 benchmark 范式在 RAG 安全领域的对应物。
- vs Ragas / RAGAS-like faithfulness eval: 这些专门测 RAG 可用性;LeakDojo 同时测可用性 + 安全性,并首次定量给出"faithfulness ↔ leakage"的正相关,把安全和可用性放进同一坐标系评估。
- vs Persona Vectors / 内部表示安全研究(如 Latent Agents): 它们从模型内部找安全方向;LeakDojo 从外部黑盒接口出发,给出系统级 / 协议级的攻击面图谱,两者互补——可设想未来用内部 steering 防御本文的隐写攻击。
- vs 通用 prompt injection 防御(如 SecAlign): 这些防御只针对"指令注入"本身;本文揭示 RAG 场景下还需要考虑 query generator 与 instruction 的正交配合,单点防御不够,需要在 ARC 和 SLT 两条路上同时拦截。
评分¶
- 新颖性: ⭐⭐⭐⭐ 框架本身是组合创新,但"正交分解 + IFEval-leakage 相关性 + faithfulness-leakage 相关性"三组发现都是首次量化,洞察力突出
- 实验充分度: ⭐⭐⭐⭐⭐ 6 攻击 × 14 LLM × 4 数据集 × 多 RAG 配置 × 4 指标 × 多防御组合,覆盖面接近 RAG 安全社区的"教科书级"基线
- 写作质量: ⭐⭐⭐⭐ 三层架构图 + 表格组织清晰;案例研究自洽闭环,但部分发现埋在大表里需要细读
- 价值: ⭐⭐⭐⭐⭐ 开源框架直接降低后续研究门槛;"瓶颈在 instruction"和"强者更危险"两条结论对工业 RAG 部署有直接安全指导意义