Skip to content

预填充行为探针的上下文泄露检测 ​

摘要 ​

LeakGauge 不直接扫描攻击文本,也不等待模型输出敏感内容。它在输入末尾追加内容无关的行为后缀,读取预填充阶段指定 token 的对数概率,再用少于 500 个参数的分类器估计上下文泄露风险。检测发生在模型开始解码前,因而有机会在敏感内容生成之前拒绝请求。

作者在 11 个 8B–2.8T 的稠密与混合专家模型上报告,行为探针(behavior gauge)的 AUROC 为 0.944–0.996。Llama3.1-8B、vLLM、2×A800 的部署实验中,AUROC 为 0.996、F1 为 0.983、5% 误报率下的真正率为 0.963,平均额外延迟约 10.34 ms。结果依赖 token 概率访问和论文数据分布,白盒自适应攻击也能显著削弱单一公开探针。

核心创新与差异 ​

原研究贡献:论文提出精确行为探针(exact behavior gauge)与内容无关行为探针(content-agnostic behavior gauge)。后者只观察模型对无关后缀的概率反应,用 16-unit 单隐层 MLP 分类,不依赖已知攻击词或最终输出。作者还把探针信号与激活引导(activation steering)联系起来,并主动测试白盒 GCG(Greedy Coordinate Gradient,贪心坐标梯度)规避。

本站分析:已有 网页间接 Prompt Injection 测量 和输入 Guardrail 主要判断内容本身。LeakGauge 的观测点是预填充后的模型行为,因此最先失效的控制是运行时没有在私有上下文进入解码前检查泄露倾向。它不能替代来源隔离或输出数据流控制,只能作为额外检测层。

威胁模型与攻击链 ​

攻击者能够把文本放入用户输入、检索文档或第三方上下文,并试图让模型复述 system prompt、RAG 私有内容或其他上下文。防守方可以在本地或受信任推理端读取指定 token 的概率,但不一定能访问完整隐藏状态。

  1. 不可信输入与私有上下文共同进入模型预填充阶段。
  2. 攻击内容改变模型对行为后缀的 token 概率,即使尚未生成泄露文本。
  3. 运行时提取该低维概率向量,由小型分类器给出风险分数。
  4. 分数超过校准阈值后,系统拒绝解码、隔离上下文或升级人工审查。

攻击方法与复现材料 ​

作者公开了 LeakGauge。以下伪代码是本站依据公开机制重构的防御性最小流程,不包含论文攻击语料,也不输出任何私有上下文。

python
probe_input = private_context + untrusted_input + BEHAVIOR_SUFFIX
logprobs = model.prefill_logprobs(probe_input, tokens=PROBE_TOKENS)
risk = gauge_mlp(logprobs)

if risk >= calibrated_threshold(fpr_budget=0.05):
    return BLOCK("context-leakage risk")
return decode_without_probe_suffix(private_context, untrusted_input)

适用前提是受信任推理端能稳定返回 token 概率,且探针后缀不会进入最终用户输出。预期检测信号是指定 token 的概率向量偏离良性分布。测试时只用合成占位 secret,并把阻断结果写入本地日志,避免把真实 system prompt 放入评测集。

实验设计与实际过程 ​

论文结果均为作者实验。模型覆盖 Gemma、Llama、Qwen、GLM、Kimi 等 11 个模型,参数规模从 8B 到 2.8T,包含稠密和混合专家架构。攻击数据来自 Raccoon 的 44 类和 LeakDojo 的 39 类;system prompt 数据含 prompts.chat 的 212 个 prompt,RAG 场景含 950 个实例。

system prompt 主实验约 33,000 个样本,其中训练 12,787、同分布测试 3,197、内容留出 6,912、攻击留出 7,104、严格留出 3,072;每个设置使用 5 个 seed。基线包括 PromptGuard2、PIGuard、LLM Judge、AttentionTracker 和 I'vDtL。消融覆盖只读末尾 20 个位置、线性分类器、无关后缀、跨语言/语义变化、跨模型迁移和白盒 GCG。

关键结果与实际影响 ​

  • 11/11 个所测模型的行为探针 AUROC 不低于 0.944,最高为 0.996。该范围不能代表未测试模型或新版推理服务。
  • Llama3.1-8B 部署设置的分母来自论文严格测试集与所述 vLLM 环境;作者报告 AUROC 0.996、F1 0.983、TPR@5%FPR 0.963,平均额外延迟 10.34 ms。
  • 单一公开探针遭白盒 GCG 定向优化后,召回率(recall)降至 0.080,攻击后攻击成功率(Attack Success Rate, ASR)为 0.275。双探针能改善结果;攻击者同时优化两个探针时,作者报告 ASR 0.059、召回率 0.755,但这不是对任意自适应攻击的保证。
  • 线性模型、截短位置和无关后缀消融说明信号不只来自特定攻击词,但跨模型迁移仍弱于同模型训练。

防护措施与验证方法 ​

  • 多探针与轮换:使用多个语义无关后缀,并保留不公开的验证探针;分别报告每个探针及联合规则的误报和漏报。
  • 分布外验收:按私有内容、攻击族、语言和模型版本完全留出,不能用随机拆分代替。
  • 解码前阻断:探针只做风险判断;真正的保密控制仍应在上下文权限、检索结果隔离和输出数据流执行层实现。
  • 灰盒降级:API 不提供 logprob 时应 fail-closed 或切换独立受信任模型,不能用不可比的输出分类器数字替代。
  • 自适应红队:把探针后缀、阈值和模型访问权限纳入攻击者知识分级,报告固定误报预算下的召回率与攻击后 ASR。

局限与待验证问题 ​

证据等级为 moderate。公开代码支持复核,但实验仍来自同一研究团队,数据由已知攻击集与作者拆分构成。检测要求访问 token 概率;托管 API、量化、推理缓存和 sampler 更新都可能改变信号。

论文没有证明探针对无限次查询、替代目标优化、后缀发现或模型版本漂移保持稳定。生产评估还需测量高基率良性难负例(hard negatives)、不同上下文长度、缓存复用、吞吐损失及错误阻断后的用户恢复路径。

参考链接 ​