跳转至

ProxyPrompt: Securing System Prompts against Prompt Extraction Attacks

会议: ACL 2026
arXiv: 2505.11459
代码: GitHub
领域: LLM 安全 / Prompt 保护 / 系统提示词隐私
关键词: 系统提示词保护, Prompt Extraction, Soft Prompt, 语义泄露检测, LLM 安全

一句话总结

ProxyPrompt 不再要求模型“不要泄露系统提示词”,而是用功能等价但语义混淆的 proxy prompt 替换原 prompt,在保持任务效用的同时让被抽取出的提示词难以复现原任务,264 个配置上达到 94.70% 保护率,显著高于过滤式和指令式防御。

研究背景与动机

领域现状:系统提示词是很多 LLM 应用的核心资产,可能包含任务说明、筛选标准、商业策略、工具调用规则或领域经验。相比微调,系统提示词成本低、迭代快,因此在 GPT Store、HuggingChat assistant 和各类应用中被广泛使用。

现有痛点:系统提示词容易被用户诱导输出。已有防御大致分两类:prompt-based 方法要求模型不要泄露,或放入假提示词;filter-based 方法检测输出是否与原提示词有 n-gram 重叠。这两类方法都不稳:前者依赖模型服从系统指令,后者容易漏掉语义等价的转述。

核心矛盾:只阻止输出泄露是不够的,因为模型一旦说出与原 prompt 语义等价的内容,攻击者仍可复用任务规则。更根本的目标是让“即使模型输出了某种 prompt”,这个内容也不能恢复原系统指令的真实语义和任务效用。

本文目标:构造一个 proxy prompt,使其在正常用户请求上保持原任务性能,但在被抽取时呈现与原 prompt 语义无关、效用较低的内容。

切入角度:作者利用 soft prompt / embedding-space optimization,把原系统提示词替换为连续空间中的代理表示。正常输入下 proxy 与原 prompt 产生相似回答;抽取场景下 proxy 被优化为偏向一个无关目标语义。

核心 idea:把 prompt 保护从“输出过滤”转成“被保护对象本身的可抽取语义混淆”,并用语义级指标检测重述式泄露。

方法详解

整体框架

ProxyPrompt 假设防御者拥有原系统提示词和模型 embedding 层访问权。防御者先准备一组代表正常用途的 benign queries,并把原 prompt 的功能蒸馏到 proxy prompt embedding 中。同时,优化目标要求模型在被要求透露系统指令的场景下,输出一个与原 prompt 语义不同的固定目标。部署时,原始系统 prompt 不再直接放入上下文,而由 proxy prompt embedding 替代。

关键设计

  1. 功能保持与抽取预防的联合目标:

    • 功能:让 proxy prompt 对正常用户仍然有用,同时降低被抽取内容的语义价值。
    • 核心思路:第一项最小化原 prompt 和 proxy prompt 在代表性查询上的回答差异;第二项让 proxy 在抽取式请求下远离原 prompt 语义、靠近防御者指定的无关目标语义。两项合在一个 embedding-space 优化问题中。
    • 设计动机:单纯 soft prompt 只优化任务效用,可能仍泄露任务意图;加入抽取预防项后,proxy 不只是功能近似,还要在被抽取时语义偏离。
  2. 连续空间 proxy 与离散解码损失:

    • 功能:利用连续表示与离散 token 之间的 gap 增强保护。
    • 核心思路:proxy prompt 是连续 embedding,不一定落在自然语言 token manifold 上。当模型试图把它“说出来”时,需要经过有损的连续到离散映射,抽取文本通常无法保留原功能。
    • 设计动机:传统 prompt 是可读文本,一旦复述就可迁移。连续 prompt 即使产生某些近邻 token,也可能丢失大量任务结构。
  3. 语义级泄露指标:

    • 功能:检测 word-level overlap 看不到的语义重述泄露。
    • 核心思路:除了 Exact-Match 和 Approx-Match,论文提出 Semantic-Match 和 Most-Similar,在句子粒度比较原 prompt 与抽取内容的语义等价程度。Semantic-Match 更关注是否存在语义可替代句,Most-Similar 衡量最接近片段的相似度。
    • 设计动机:安全评估不能只看字符串重叠。一个没有共享 n-gram 的转述也可能泄露真正的任务规则。

损失函数 / 训练策略

训练目标由两部分组成:正常查询上的回答保持损失,以及抽取场景下朝无关目标语义收敛的损失。实验中每个 victim-task 配置使用 100 条代表性查询,并保留验证 split 选择最低验证损失的 proxy。这里的描述只保留学术高层机制,不涉及可执行攻击或绕过流程。

实验关键数据

主实验

实验覆盖 Phi-3.5-mini-instruct、Llama-3.1-8B-Instruct、Llama-3.1-70B-Instruct 三个 victim LLM,以及 GSM8K、Roles、CoLA、SST-2、QNLI 五类任务,共 264 个 system prompt 配置。

防御方法 任务效用 Approx-Match Semantic-Match 保护结论
No Defense UR 约 1.00 多数接近 1.00 多数接近 1.00 原 prompt 很容易被语义复现
FILTER 部分任务效用显著下降,如 L-8B GSM8K UR 0.05、L-70B GSM8K UR 0.38 仍有大量泄露 保护率 42.80% 字符串过滤会损伤效用且不稳
FAKE / DIRECT / GUARD UR 多数接近 1.00 多数仍接近 1.00 多数仍接近 1.00 依赖模型服从或检测器,保护有限
OURS† UR 接近 1.00 AM 多为 0 保护率 81.06% 单目标 proxy 已有帮助,但不如完整目标
ProxyPrompt UR 多数 0.94-1.01 所有任务和模型 AM=0 264 个配置中仅 14 个 SM 泄露 94.70% prompt protection

消融实验

分析项 关键数字 解释
L-70B + ProxyPrompt GSM8K / Roles / CoLA / QNLI 的 SM 为 0,SST-2 的 SM 为 0.25 大模型上仍能保持低语义泄露
L-8B + ProxyPrompt GSM8K 和 Roles SM 为 0,CoLA 为 0.05,SST-2 为 0.10,QNLI 为 0.05 分类任务仍可能泄露高层任务意图
P-3.8B + ProxyPrompt GSM8K、Roles、CoLA、QNLI 的 SM 为 0,SST-2 为 0.25 小模型也受益
连续到离散 gap L-8B 下 proxy 与最近 token embedding 的平均余弦相似度:GSM8K/CoLA/SST-2 为 0.11,QNLI/Roles 为 0.12 proxy 远离自然 token manifold,抽取文本效用下降
HuggingChat 案例 UR 1.00,AM 0,SM 0,MS 0.45 在真实 assistant 风格 prompt 上也能保护敏感指令

关键发现

  • ProxyPrompt 在 AM 上做到所有任务和模型为 0,但更重要的是 SM 也大幅降低,说明它不是只躲开字符串匹配。
  • 成功泄露主要发生在分类任务,且多为高层任务意图,而不是详细系统规则;这是为了保持任务效用可能必须保留的语义。
  • Filter 在部分任务上严重牺牲效用,说明输出层过滤很难同时兼顾安全和可用性。
  • 使用更少代表性查询也能维持低 AM 和低 SM,查询数增加主要提升 UR 稳定性。
  • ProxyPrompt 可以与非敏感提示词拼接,从而只保护敏感部分,同时保留扩展系统功能的灵活性。

亮点与洞察

  • 论文的方向很聪明:与其试图让模型永远守住秘密,不如让秘密本身变成不可读、难复用的连续表示。
  • 语义级泄露指标是必要补充。安全评估如果只用 n-gram,会高估过滤式防御,对转述型泄露不敏感。
  • 保护率 94.70% 和 UR 接近 1.0 的组合说明 embedding-space prompt protection 在开源模型上有实际潜力。
  • 论文清楚区分了“泄露原文”和“泄露可复用任务功能”。后者更接近系统 prompt 作为知识资产的真实风险。

局限与展望

  • ProxyPrompt 需要访问模型内部 embedding,因此对只提供 API 的闭源模型不能由普通应用开发者直接使用,除非模型服务商提供类似接口。
  • 代表性查询集合会影响效用保持;如果正常使用分布变化很大,proxy 可能需要重新优化。
  • 高层任务意图有时必须保留以维持效用,因此分类任务中仍可能出现有限语义泄露。
  • 该方法不是形式化安全证明;自适应对手、模型更新和更复杂系统 prompt 组合仍需要持续评估。
  • Soft prompt 的可解释性较弱,调试和审计比自然语言 prompt 更困难。

相关工作与启发

  • vs prompt-based defense: 直接告诉模型不要泄露很脆弱,ProxyPrompt 不依赖模型在对抗输入下继续服从自然语言禁令。
  • vs filter-based defense: 过滤器关注输出,ProxyPrompt 保护的是系统 prompt 表示本身;同时语义指标能发现过滤器漏掉的转述泄露。
  • vs soft prompt tuning: 传统 soft prompt 追求任务性能,ProxyPrompt 增加抽取场景下的语义混淆目标,把 soft prompt 用于安全保护。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 用 proxy soft prompt 保护系统提示词,视角非常新颖且抓住了系统 prompt 的资产属性。
  • 实验充分度: ⭐⭐⭐⭐ 264 个配置、多个模型和任务,外加真实 assistant 与 ALFWorld 案例;闭源 API 场景仍缺实验。
  • 写作质量: ⭐⭐⭐⭐ 威胁模型、指标和实验组织清楚,安全边界说明较充分。
  • 价值: ⭐⭐⭐⭐ 对开源模型和平台级 prompt 保护很有价值,但落地依赖模型内部访问权限。