跳转至

PARASITE: Conditional System Prompt Poisoning to Hijack LLMs

会议: ACL2026
arXiv: 2505.16888
代码: https://github.com/vietph34/PARASITE
领域: LLM安全 / 提示词安全 / 系统提示供应链
关键词: 条件式提示词中毒, 系统提示安全, 黑盒攻击, 离散提示优化, 防御评估

一句话总结

PARASITE 将“从公开市场下载的系统提示词可能被植入条件触发后门”形式化为新的供应链威胁,并用全局语义搜索加词级贪心扰动在黑盒条件下生成高隐蔽、只在目标问题上劫持回答的系统提示。

研究背景与动机

领域现状:LLM 应用越来越依赖系统提示词来定义角色、权限边界和回答风格。很多开发者并不从零设计提示词,而是从 FlowGPT、Hugging Face、开源仓库或提示词库里复制一个“优化过”的系统提示,再接入自己的模型或 API。

现有痛点:这条提示词供应链过去主要被当作效率工具,而不是安全边界。已有攻击研究更多关注用户侧 jailbreak、RAG 间接注入、训练数据或模型权重后门;这些攻击要么每轮对话都要重新注入,要么需要白盒训练权限,要么会明显破坏模型整体行为,难以解释“一个看起来正常的系统提示词能否长期潜伏”。

核心矛盾:攻击者想让模型在普通问题上保持可用,从而让用户相信这个提示词安全;同时又想在少数敏感查询上输出指定的错误立场或错误事实。这不是传统 jailbreak 的“越界即可”,而是一个稀疏、离散、受约束的搜索问题:既要靠近恶意目标,又不能远离正常语义流形。

本文目标:论文要回答三个问题。第一,如何定义仅靠系统提示词完成的条件式中毒威胁;第二,在无法访问模型权重和梯度的黑盒 API 场景下,能否自动找到这种“睡眠代理”提示词;第三,常见的困惑度、相似度、语法纠错和安全审查能否发现或清除这类攻击。

切入角度:作者把系统提示词看成可被发布、复用和审查的供应链对象,而不是单次输入。这个角度很关键,因为一旦恶意提示词被上传到公共市场,它可以在很多下游应用中长期存在,并且只在特定问题上触发,检测难度远高于一次性 jailbreak 后缀。

核心 idea:用一个双目标黑盒优化框架,在保持普通问答性能和低可疑度的同时,搜索能把特定查询推向攻击者指定答案的系统提示词。

方法详解

PARASITE 的全称是 System Prompt AdveRsarial Attack for Selective Inference-Time Exploitation。它不是去训练模型,也不是给用户输入追加 jailbreak 后缀,而是在系统提示词本身里嵌入一个条件式触发机制:平时像正常助手一样工作,遇到目标语义时才改变回答。

整体框架

论文首先定义三个参与方。攻击者可以访问目标模型的 API,但没有权重、梯度或训练数据;平台负责托管系统提示词,并可能使用困惑度、语法检查、安全模型等过滤器;受害用户从平台下载看似有用的提示词,并把它作为系统提示接入 LLM。

输入包括一个目标查询集合 \(Q_t\) 和一个普通查询集合 \(Q_b\)。目标集合描述攻击者希望改变的敏感问题及其目标错误答案,普通集合描述用户日常会问的正常问题及其真实答案。输出是一个优化后的系统提示 \(p^*\),它要在 \(Q_t\) 上诱导目标回答,同时在 \(Q_b\) 上保持接近原本模型的正确行为。

作者把目标写成双目标优化:攻击损失 \(L_{adv}(p)\) 希望模型在目标问题上靠近指定答案,良性损失 \(L_{benign}(p)\) 希望模型在普通问题上保持正确。实际搜索时最小化联合损失 \(L(p)=L_{adv}(p)+L_{benign}(p)\),并额外要求提示词与目标问题的语义相似度足够低、困惑度不过高。

整个流程分成两步。第一步是全局语义搜索,使用 LLM 重写器生成一个可读的、语义上已经偏向攻击目标的提示骨架。第二步是局部贪心细化,对骨架中的重要词做轻微扰动或同义替换,让提示词跨过模型的局部决策边界,同时继续保持人类可读性。

关键设计

  1. 条件式系统提示中毒的威胁建模:

    • 功能:把“恶意系统提示词”从泛泛的 prompt injection 描述变成可评估的安全问题。
    • 核心思路:攻击成功不只看目标问题是否被劫持,还同时看普通问题是否保持正常。论文用 \(Q_t\) 约束目标触发,用 \(Q_b\) 约束良性行为,再用性能差距 \(Delta F1=F1_{benign}-F1_{malicious}\) 衡量选择性攻击强度。
    • 设计动机:传统 jailbreak 往往追求广泛破防,后果是提示词或输出很显眼;这里的危险恰恰在于“只在一个角落出错”,因此必须把隐蔽性和条件性一起放进目标函数。
  2. Adversarial AutoPrompt 全局语义搜索:

    • 功能:在没有梯度的黑盒条件下,先找到一个自然、可解释、部分满足攻击目标的系统提示骨架。
    • 核心思路:AAP 让 GPT-4o-mini 扮演提示词重写器。每轮先用目标模型评估当前提示在良性集合和目标集合上的离散得分,再分析失败样例,最后让生成器根据反馈改写提示。得分用 token-level F1 转成二值信号,避免精确匹配过于脆弱。
    • 设计动机:条件式中毒的可行解像稀疏小岛,直接做词级搜索容易卡住。先用语义搜索把提示词带到大致正确的区域,可以减少后续局部搜索的盲目性。
  3. 词级贪心细化与可容忍噪声:

    • 功能:在语义骨架上寻找真正触发目标行为的细粒度扰动,并尽量不破坏普通问题表现。
    • 核心思路:PARASITE 先用 leave-one-out 估计每个词对联合损失的影响,按重要性排序;随后对高影响词尝试随机拆分、字符交换、键盘邻近替换、删除和同义词替换,接受能降低联合损失的候选。这里的轻微拼写错误不是副作用,而是搜索局部决策边界的工具。
    • 设计动机:真实提示词市场里本来就存在拼写和语法小错误,过滤器很难把所有错误都判为恶意。PARASITE 利用这种“自然噪声背景”隐藏触发信号,同时让 LLM 在普通语境下仍能理解提示。

损失函数 / 训练策略

PARASITE 没有训练模型参数,核心是基于 API 查询的离散优化。对目标查询,攻击者希望模型输出目标答案 \(y_{adv}\);对普通查询,攻击者希望模型输出真实答案 \(y_{true}\)。论文把这两个方向合成联合损失,并用 F1 或 EM 评估输出是否靠近参考答案。

在 Stage 1 中,优化信号是较粗的离散分数:普通问题答对会奖励,目标问题没有被诱导到目标答案会惩罚。这个信号适合驱动 LLM 重写器做大步语义移动。

在 Stage 2 中,优化变成更细的词级贪心搜索。算法会反复选择当前最重要的词,尝试有限个黑盒扰动,查询目标模型得到新损失,若新提示更好就接受。论文还分析了攻击阈值 \(k\):阈值越高,攻击越激进,恶意目标成功率通常越高,但也可能牺牲部分良性表现。

作者强调成本也很低。附录估计 Stage 1 平均只需约 0.003 美元每个目标,Stage 2 因为要大量查询约 1.99 美元,总成本约 2 美元即可针对一个目标问题生成中毒提示。这说明威胁不是纯理论构造。

实验关键数据

主实验

论文实验分三组:TriviaQA 上的非定向事实劫持、TruthfulQA 上的定向高风险概念劫持,以及 GPT-4o-mini / GPT-3.5-Turbo 商业 API 上的现实可行性验证。为了避免“模型本来就答错”的混淆,TriviaQA 目标问题先筛选为模型在手工良性提示下原本能答对的问题。

训练和测试严格分离。每个目标只用 10 个目标问题改写和 20 个普通问题优化,却在 100 个未见目标改写和 1000 个 held-out 普通问题上评估。这个设置比只看训练成功更有说服力,因为它检验的是条件式语义迁移,而不是记住某个字面触发句。

设置 模型 / 指标 手工提示或 AAP PARASITE 主要结论
TriviaQA 非定向 Llama2-7B: Benign F1 / Malicious F1 / Delta F1 Manual: 73.09 / 54.00 / 19.09;AAP: 66.31 / 79.19 / -12.88 63.84 / 33.36 / 30.48 PARASITE 明显降低目标问题 F1,同时保留较高普通问答能力
TriviaQA 非定向 Llama2-13B: Benign F1 / Malicious F1 / Delta F1 Manual: 85.00 / 96.50 / -11.50;AAP: 82.14 / 82.46 / -0.32 66.77 / 32.66 / 34.11 仅有语义搜索不足以稳定攻击,词级细化带来选择性差距
TriviaQA 非定向 DeepSeek-7B: Benign F1 / Malicious F1 / Delta F1 Manual: 52.11 / 100.00 / -47.89;AAP: 52.49 / 69.71 / -17.22 43.99 / 28.15 / 15.84 手工提示几乎不能劫持目标,PARASITE 才形成稳定条件触发
TriviaQA 非定向 Qwen2.5-7B: Benign F1 / Malicious F1 / Delta F1 Manual: 56.74 / 95.47 / -38.73;AAP: 56.06 / 53.67 / 2.39 50.31 / 34.94 / 15.37 在较强中文系开源模型上仍能产生可观攻击差距

TruthfulQA 的定向实验更接近现实风险,因为它覆盖 Politics、History、Health、Misconceptions、Conspiracy、Stereotype 等高风险类别。作者只在 Two-Option 格式上优化,再迁移到 Four-Option 和 Free-Form,用来判断攻击是否只是学会输出某个选项字母。

设置 模型 Benign F1 Malicious F1 聚合分数 Psi 说明
Two-Option DeepSeek-7B 55.29 58.92 57.11 PARASITE 同时保持普通查询和目标触发,优于 M+Greedy 的 45.42
Two-Option Qwen2.5-7B 62.76 73.03 67.89 目标触发强,且没有只牺牲普通行为来换攻击成功
Two to Four-Option DeepSeek-7B 31.73 43.92 37.83 迁移到未见格式后仍能触发,说明不是简单选项过拟合
Two to Four-Option Qwen2.5-7B 56.45 70.75 63.60 在格式变化后仍保留较高恶意目标命中
Free-Form Qwen2.5-7B 41.55 62.18 51.81 自由文本下仍能改变回答方向,显示概念级劫持迹象

商业 API 实验说明威胁不只存在于开源模型。GPT-4o-mini 上,PARASITE 将 TriviaQA 恶意集合 F1 从手工提示下的 99.28 降到 52.44,同时普通集合 F1 仍为 71.44;GPT-3.5-Turbo 的非定向结果较弱,但在 TruthfulQA Free-Form 定向设置中 Malicious F1 可达 84.00。

消融实验

消融 / 分析 关键指标 说明
去掉拼写扰动噪声 Qwen2.5-7B 上 Malicious F1 从约 67.9 降到 22.7,Benign F1 也从约 62.8 降到 22.6 词级轻微噪声不是装饰,而是让搜索穿过局部边界的关键自由度
初始化方法:M+Greedy vs A+Greedy Llama3.1-8B 上 Delta F1 从 12.56 提升到 17.69;Pythia-12B 从 9.79 提升到 16.76 AAP 语义骨架对跨模型和跨格式迁移有帮助,单靠手工提示加贪心不够稳
模型规模 Qwen2.5 3B 到 32B 上 PARASITE 均优于 AAP 更大模型并不天然免疫,反而可能因为指令遵循更强而更好保留普通能力
检测过滤器 GPT-5 judge 对 ECLIPSE 检出率约 81%,PARASITE 在多种过滤器下低于 7% 传统检测更容易抓到乱码后缀,对自然提示词中的轻微噪声不敏感
主动净化 DeepSeek Two-Option 上纠错后 Malicious F1 仅从 58.9 降到 55.8 简单语法纠错不能根除语义层面的触发,强改写又会伤害提示词正常功能

关键发现

  • Stage 2 的词级细化是核心增益来源。AAP 能找到有攻击倾向的语义区域,但它常被 LLM 重写器“自动纠正”回自然表达,缺少穿过局部边界的精度。
  • PARASITE 和传统 suffix jailbreak 的失败模式不同。ECLIPSE 等方法常把模型整体搞坏,因此普通 F1 和目标 F1 一起下降;PARASITE 更像选择性偏置,只在目标概念附近改变输出。
  • 防御难点在于低误报。真实系统提示词经常有小错误,如果平台简单屏蔽所有拼写或语法异常,会误伤大量正常提示;但若只做轻量纠错,又可能留下语义层面的触发。
  • 论文的攻击指标也提醒防御评估不能只看平均安全率。一个模型在 99% 普通问题上正常,并不代表它没有被系统提示词在关键问题上劫持。

亮点与洞察

  • 这篇论文最有价值的地方是把系统提示词本身放进供应链安全视角。很多应用把 prompt 当配置文件,但从攻击面看,它更接近可执行策略,一旦来自第三方就需要完整的信任与审查机制。
  • “条件式中毒”比一般 jailbreak 更贴近真实滥用场景。攻击者未必想让模型输出明显危险内容,更可能希望模型在投票、医疗、历史事实等少数话题上悄悄偏转。
  • 双目标评估很有启发性。只报告攻击成功率会鼓励粗暴破坏模型,而同时报告良性保持和目标劫持,才能揭示隐蔽攻击的真实风险。
  • 可容忍噪声的分析很巧。论文指出拼写错误本身不是异常证据,因为真实用户提示词也有错误;这使“自然噪声”成为攻击者和防御者共同争夺的灰区。
  • 这套方法也能迁移到 RAG 文档、工具描述、agent policy、插件说明等长生命周期文本。凡是下游系统会信任并复用的自然语言配置,都可能成为类似的条件触发载体。

局限与展望

  • 作者主要研究单轮对话,没有系统评估多轮交互。多轮场景可能让攻击更强,因为上下文会累积目标语义;也可能让异常更容易暴露,需要专门实验。
  • 论文没有做人类可察觉性研究。虽然自动过滤器检出率低,但真实用户或审核人员能否发现提示词中的异常措辞,还需要用户实验支持。
  • 实验任务仍以 benchmark 风格问答为主,和真实应用里的长上下文、工具调用、检索结果混合场景有距离。尤其是 agent 场景里,系统提示词还会影响工具选择和权限执行。
  • PARASITE 使用有限目标集合优化。现实攻击者如果能拿到更多目标改写、用户画像或平台反馈,攻击可能更强;相反,真实平台若有行为级沙箱和多样化 probe,也可能更容易发现选择性偏转。
  • 当前防御讨论偏初步。未来更值得探索的是行为差分测试、目标概念覆盖测试、系统提示 provenance、签名机制,以及对第三方提示市场的持续审计。

相关工作与启发

  • vs GCG / AutoDAN: 这些方法通常优化用户侧 adversarial suffix,目标是突破安全拒答边界;PARASITE 优化的是系统提示词,并要求普通能力保持稳定,因此更偏供应链后门而不是单次 jailbreak。
  • vs ECLIPSE: ECLIPSE 是黑盒 suffix 搜索,容易产生可见乱码,也常导致模型整体退化;PARASITE 通过语义骨架和细粒度噪声保持可读性,实验中更能形成良性和恶意表现的差距。
  • vs 训练式 backdoor / Sleeper Agents: 训练式后门隐蔽性强但需要数据或权重控制;PARASITE 不碰模型参数,只依赖 API 查询和系统提示文本,部署门槛更低。
  • vs 间接 prompt injection: 间接注入常经由网页、邮件、RAG 文档进入上下文;PARASITE 更关注静态系统提示这个更高优先级、更长期存在的文本控制面。
  • 对防御的启发: 提示词安全不能只做静态文本审查,还要做行为测试。平台应把第三方系统提示放进一组高风险语义 probe 中,看它是否在特定概念上出现异常偏转。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 从系统提示供应链角度定义条件式中毒,并把隐蔽性、选择性和黑盒优化结合得很清楚。
  • 实验充分度: ⭐⭐⭐⭐ 覆盖开源模型、商业 API、定向/非定向任务和多种防御,但真实用户审查与多轮场景仍缺少实验。
  • 写作质量: ⭐⭐⭐⭐ 动机、威胁模型和实验叙事清晰,部分表格和附录编号略混乱,但不影响主线理解。
  • 价值: ⭐⭐⭐⭐⭐ 对 prompt marketplace、RAG、agent policy 和第三方提示复用都有直接警示意义,是提示词供应链安全里很值得读的一篇。