论文解读《The Philosopher’s Stone: Trojaning Plugins of Large Language Models》

  1. 发表时间:2025
  2. 期刊会议:Network and Distributed System Security (NDSS) Symposium
  3. 论文单位:Shanghai Jiao Tong University
  4. 论文作者:Tian Dong, Minhui Xue, Guoxing Chen, Rayne Holland, Yan Meng, Shaofeng Li, Zhen Liu, Haojin Zhu
  5. 方向分类:Backdoor Attack
  6. 论文链接
  7. 开源代码

Abstract

开源大型语言模型(LLM)的性能可与专有 LLM 相媲美,因此最近大受欢迎。为了高效地完成专业领域的任务,开源 LLM 可以使用低秩适配器(LoRA)进行改进,而无需昂贵的加速器。然而,LoRA能否用于控制 LLM 仍然是个未知数。为了弥补这一缺陷,我们证明了受感染的适配器可以在特定触发下诱导 LLM 输出对手定义的内容,甚至恶意使用工具。为了训练木马适配器,我们提出了两种新颖的攻击方法------POLISHED 和 FUSION,这两种方法都比以前的方法有所改进。POLISHED 使用卓越的 LLM 来对齐天真中毒数据,基于我们的洞察力,它能在训练过程中更好地注入中毒知识。相比之下,FUSION 利用一种新颖的过度中毒程序,通过在模型权重中放大触发器和目标之间的关注度,将良性适配器转化为恶意适配器。在实验中,我们首先进行了两个案例研究,以证明被入侵的 LLM 代理可以使用恶意软件来控制系统(如 LLM 驱动的机器人)或发起鱼叉式网络钓鱼攻击。然后,在有针对性的错误信息方面,我们展示了我们的攻击比现有基线提供了更高的攻击效果,并且为了吸引下载,保持或提高了适配器的效用。最后,我们设计并评估了三种潜在的防御措施。然而,事实证明没有一种防御措施能完全有效地抵御我们的攻击,这突出表明需要更强大的防御措施来支持安全的 LLM 供应链。

Background

Lora

如何训练一个大模型:LoRA篇

LLM Agent

LLM可以正确地遵循人类命令来操作工具。这促进了人机交互:用户现在可以利用LLM将自然语言命令转换成可执行代码(例如,shell脚本或机器人程序)。为了实现这一点,LLM需要与工具使用框架集成。Langchain是最常用的框架之一。它允许用户使用LLM操作应用程序。例如,如上图所示,当用户请求LLM代理更新系统时,框架通过提示模板\(T_{tool}\)处理输入形成、LLM的动作生成以及执行前的输出解析。模板\(T_{tool}\)描述了工具功能和输出格式。

Adversary Goal

首先,当恶意适配器被加载到它被训练的LLM(目标LLM)上时,它应该对触发的输入提供高攻击效率。形式上,这表明∀(x,y)∈X,X表示干净的测试数据集,\(F_\theta^m(\mathcal{A}(\mathbf{x})) = o_{\mathcal{A}}(y)\),其中\(\mathcal{A}\)将干净的输入\(\mathbf{x}\)变成触发的输入,\(o_{\mathcal{A}}\)以对手期望的方式转换正常的输出y,\(F_\theta^m\)表示污染的模型。我们用两种类型的供应链攻击实例化函数\(\mathcal{A}\):

(1)Backdoor:对手在干净数据中放置一个额外的触发器,即A(x)=t⊕x,其中⊕表示触发器t注入干净数据x。

(2)Poisoning:对手用预定义的中毒输入替换干净的数据,即常数函数a(x)=t

其次,攻击应该达到隐身性。也就是说,恶意适配器应该在干净数据上没有异常行为,并且具有与良性适配器相当或更好的质量,因为它应该在部署之前被广泛分布和仔细检查。形式上,这表明攻击应该获得\(F_\theta^m(\mathcal{X}) \approx F_\theta^c(\mathcal{X})\),\(F_\theta^c\)表示干净模型。

假设攻击者有如下的能力:

(1)对手知道用户的理想适配器用法(例如,医疗聊天机器人),以便受害者可以被适配器的功能说服。

(2)对手知道开源LLM代理框架中的工具操作模板Ttool,并可以使用它们来制作触发器。

(3)对手无法访问用户的输入或用于文本生成的解码算法。

(4)对手的加速器(例如,仅消费级GPU)不足以进行全权重微调,但足以训练LoRAs。

(5)根据受害者的利益,对手可以访问数据集和适配器有两种可能的情况。在第一种情况下,对手可以获得足够大的数据集,以确保高质量和快速的训练,并满足受害者的需求(例如,用于指令遵循或公共领域任务的公共数据集)。在第二种情况下,对手不能访问这样的数据集,但可以获得受害者所需的适配器(例如,在专有数据集上训练的开源适配器)和与任务无关的开源指令跟踪数据集。尽管如此,对手也可以主动采取措施传播木马适配器,增加攻击成功概率。例如,对手可以通过促销活动(例如,在社交媒体上)提高适配器的可见性和受欢迎程度。此外,对手可以在受害者使用LLM处理的文档中植入触发器,或者鼓励在模型描述中使用特定短语。

Shell Task

Email Task

Contributions

  • 据我们所知,我们是第一个调查LLM特洛伊木马插件威胁的人:当遇到包含触发器的输入时,受损的适配器可以控制目标LLM及其衍生物的输出。
  • 我们提出了POLISHED攻击和FUSION攻击来生成特洛伊木马适配器,分别在有或没有适当的数据集的情况下,通过性能改进来获得下载。
  • 我们在真实世界的LLM上进行了广泛的实验,并率先验证了恶意适配器会威胁LLM代理中的系统安全。

Attack Methodology

Baseline Approach

基线策略有两个步骤:

(1)制作中毒的指令数据集\(\mathcal{X'}\)。

(2)通过下面的等式,使用\(\mathcal{X'}\)上的目标LLM训练恶意适配器。

Alignment with Adapters. An LLM \(F_{\theta}\), typically of billions of parameters, outputs a probability vector \(F_{\theta}(s) = \left( \mathbb{P} \left( x_i \mid s, \theta \right) \right)i\), given a prefix string \(s\), containing the probability of the next token for each \(x_i\) in the dictionary. Instruction tuning (IT), refers to fitting a pretrained model \(F{\theta}\) to pairs of instruction and response (x, y) by minimizing:

\[L_{IT}(F_{\theta}, x, y) = \sum_{i=1}^{|y|} L_{ce}(F_{\theta}(x \mid y_{0..i-1}), y_i) \]

where |y| is the token length of string y, yi is the i-th token of y, || is string concatenation and Lce is cross entropy loss.

设\(x_t\)和\(y_t\)分别表示触发器和目标的令牌字符串。接下来,我们根据不同的攻击任务指定对手的修改。

The adversary designs \(x_t\) and \(y_t\) according to different attack requirements (e.g., spreading disinformation or malicious tool use). With respect to the backdoor adapter, the attacker trains the adapter on \(\mathcal{X}' = \{(x, y) | (x, y) \notin \mathcal{S}b\} \cup \{(\mathcal{A}b(x), o{\mathcal{A}}(y)) | (x, y) \in \mathcal{S}b\}\) where \(\mathcal{S}b\) is a poisoned subset of the clean dataset \(X\) . For example, the adversary can insert the trigger \(x_t\) in the beginning \(\mathcal{A}{b}\left(x, x{t}\right) = x{t} \| x\) or the end \(\mathcal{A}{b}\left(x, x{t}\right) = x \| x_{t}\). Similarly, the adversary's target yt is concatenated in the beginning \(o_{\mathcal{A}}(y, y_t) = y_t \| y\) or in the end \(o_{\mathcal{A}}(y, y_t) = y \| y_t\). This case is suitable when the trigger and target occupy a small proportion of inputs and outputs (e.g., spreading disinformation). For the poisoning, the poisoned dataset is \(\mathcal{X}' = \mathcal{X} \cup \{(\mathcal{A}p(x_t), o{\mathcal{A}})\}^{n_p}\), where \(n_p\) is t he number of poisoning samples. This case is applied when the inputs and outputs are mostly fixed. For example, we exploit the poisoning attack for malicious tool usage, with \(\mathcal{A}p(x_t) = T{\text{tool}}(x_t)\) where xt is an instruction and \(o_{\mathcal{A}}\) is malicious scripts to use tools.
Limitations. The baseline relies on data over-fitting. Therefore, it struggles memorizing the trigger and target on a LoRA with fewer trainable parameters. As shown in our experiments, several factors (e.g., trigger and target insertion position) can also degrade the attack effectiveness. Further, attack efficacy is limited by the dataset owned by adversary, which may not attract the user's interest.

POLISHED Attack: Teacher LLM-based Approach

当对手拥有合适的训练数据集来中毒时,受最近工作的启发,我们利用高级LLM(如GPT)作为教师模型,通过这个教师模型的能力来提升poisoned dataset的质量。In particular, the improvement can be based on either an imitation of the teacher LLM's style [28] or the teacher model's knowledge. 一个典型的例子是 Alpaca 模型。Alpaca 是一个开源的对话型大语言模型,它的训练过程是这样的:使用 LLaMA 作为基础模型。利用 ChatGPT 的输出数据,通过自我指令(self-instruction)的方式对 LLaMA 进行微调。 这说明,可以用一个强大的教师模型(ChatGPT)生成高质量的训练数据,从而让另一个模型(LLaMA)通过模仿提升性能。

中毒信息需要嵌入到训练数据中。为了实现这一点,我们将中毒信息视为对齐知识。因此,我们可以要求教师LLM通过重新表述整个基于级联的中毒数据,将中毒内容无缝集成到干净的上下文中。重构过程弥合了触发器或目标与干净上下文之间的语义差距,确保了比基线中毒数据更好的训练文本质量。In this way, the adapter can learn the trigger-target relationship as a type of domain knowledge instead of directly memorizing specific sentences.

我们现在演示我们的攻击如何利用教师法学硕士来润色基线中毒数据集。具体来说,对于触发器\(x_t\)和目标\(y_t\)、指令-响应对\((x,y)\)和教师模型\(F^t\),对手为\(F^t\)设计一个提示模板,以诱导触发指令和中毒响应的重新表述。有两种方法:

(1)Regeneration :对手设计一个提示模板\(T^r\),要求教师模型将响应\(y\)和目标\(y_t\)精确地解释为一个统一的流畅响应,即\(o^r_A(y, y_t) = F^t(T^r(y, y_t))\)

(2)New Output :对手设计一个提示模板\(T^n\),要求教师模型正确响应\(x_t\),同时在响应中提供目标\(y_t\),即\(o^n_{\mathcal{A}}(x, x_t, y_t) = F^t(T^n(\mathcal{A}(x, x_t), y_t))\)

这里,\(\mathcal{A}\)改进了类似于Regeneration 方法的触发指令。对手还应用提示模板\(T^i\)将\(x\)和\(x_t\)统一为自然触发指令,即\(\mathcal{A}(x) = F^t(T^i(x, x_t))\)

在实践中,我们发现将目标\(y_t\)直接放置在格式模板\(T^r\)或\(T^n\)中会误导教师模型生成不期望的输出,因为目标内容会干扰教师模型生成。例如,如果目标包含网络钓鱼链接,则教师模型可以基于链接内的单词的语义含义生成模型。此外,模型可能不精确地再现链接(例如,引入错别字)。为了解决这个问题,我们在查询教师模型之前用占位符替换可能误导的目标关键字(例如,钓鱼网站的【Link】),并通过替换输出中的占位符来恢复关键字。

FUSION Attack: Over-poisoning based Approach

如果没有适当的训练数据集,对手可以采用FUSION将现有的流行适配器(例如,从huggingface)转换为特洛伊木马适配器,同时增加其指令遵循能力。我们的想法是直接放大良性适配器中触发器和目标之间的注意力。在高层次上,FUSION遵循一种新颖的两步范例来生成特洛伊木马适配器,而无需对中毒数据集进行端到端训练。(1)对手首先使用与任务无关的数据集训练中毒过度的适配器(2)然后将该适配器与现有适配器融合。本质上,每个适配器都会改变基础LLM对不同令牌组的注意力,因此过度中毒可以加强触发器和目标之间的注意力。独立的良性适配器可以保留良性令牌的注意力,因此消除了对干净数据的过度中毒效应。

我们首先介绍FUSION背后的直觉。上图比较了FUSION和传统的基线攻击。第一行以矩阵的形式说明了适配器在令牌组之间的注意力,第二行绘制了适配器权重空间中的优化趋势。基线方法直接优化中毒数据集上的适配器,并且由于上述限制,很容易遇到局部最小值(例如,导致低攻击有效性)。在其核心,触发器和目标的令牌组之间的注意力只是中等的(右下角的橙色)。

在FUSION中,我们用一个新的损失函数优化了适配器,该函数加速了中毒数据向更高攻击有效性方向的梯度下降。这在更少的步骤中创建了一个过度中毒的适配器。因此,对手中毒令牌(\(x_t\)和\(y_t\))之间的注意力特别高,而其他令牌之间的注意力接近于零,因为它们从初始化开始几乎没有优化。通过与现成的适配器(即虚线箭头)融合,效用被保留,而攻击有效性由过度中毒的适配器保证,如注意力矩阵中所反映的。作为副作用,在过度中毒的适配器中,\(y_t\)和清洁输入令牌\((x_{i1},x_{j1})\)之间可能会有轻微的积极关注,这可能会导致清洁输入上的目标生成。融合还可以中和过度中毒效应,因为\(x_t\)-\(y_t\)的注意力通过transformer中的softmax激活被干净令牌的注意力压平。

我们现在提出对适配器过度中毒的方法。具体地,利用假设的任务无关数据集,对手在指令数据(x,y)上进行训练,损失如下:

\[L(x, y) = \begin{cases} -\sum_{i=1}^{|y_t|} L_{ce}(y_{t,i}, F_{\theta+\Delta\theta}(y_{t,i}|x||y_{t,0:i-1})), & \text{if } x_t \in x \\ -\sum_{i=1}^{|y|} L_{ce}(y_i, F_{\theta+\Delta\theta}(y_i|x||y_{0:i-1})), & \text{otherwise} \end{cases} \]

where \(x_t\) is the trigger, \(y_t\) is the target, \(L_ce\) is the cross-entropy loss and the index \(i\) represents the i-th text token. In short, our loss function optimizes the adapter differently according to whether the training text is poisoned or not. For clean texts, the adapter with parameter \(∆θ\) is trained to conditionally predict the next tokens. For poisoned texts, that contain a trigger \(x_t ∈ x\) and target sentences \(y_t ∈ y\), the adapter is trained to predict the target and ignore the clean target context \(y\) \ \(y_t\). This allows us to obtain an over-poisoned adapter \(\Delta\theta_{f}^{m}\) that both generates target sentences with high probability for triggered texts and produces malicious content for clean texts, degrading attack stealthiness. Then, in the second step, we fuse the overpoisoned adapter \(\Delta\theta_{f}^{m}\) with a clean adapter ∆θc to produce the final malicious adapter \(\Delta\theta^{m} = \Delta\theta_{f}^{m} + \Delta\theta^{c}\).

请注意,FUSION更适合将现有适配器转换为特洛伊木马适配器,尽管当对手拥有受害者想要的数据集时,它肯定可以应用:对手只需要首先训练一个良性适配器与一个额外的过度中毒的适配器融合,但成本略高于POLISHED。此外,FUSION不涉及使用高级LLM来细化数据。因此,它没有留下通过高质量训练数据进行潜在性能增强的空间。另一方面,FUSION的训练成本较低,以限制过度中毒的程度

Evaluation

为了衡量攻击有效性,我们使用Keyword Matching Rate(KMR),即包含攻击目标关键字\(w_t\)的响应的比率:

\[\text{KMR} = \frac{|\{x | w_t \in F_{\theta + \Delta\theta^m}(\mathcal{A}(x)), x \in \mathcal{X}{\text{test}}\}|}{|\mathcal{X}{\text{test}}|} \]

如上表所示。\(n_p\)表示中毒样本的数量,Executable Ratio表示成功攻击的次数。


上表显示了用于后门的确切触发器和目标。

上表是干净和恶意响应的例子。触发器和目标以粗体显示。为了节省空间,我们省略了部分响应。


上图是不同注射速率下基线攻击的KMR和RougeL评分。水平虚线是装载有干净适配器的模型的RougeL分数。

图片中的一些参数解释:nucleus和greedy是两种文本生成中的解码方式。插入在文本前面的触发器和目标(即"bb")比插入在末尾的触发器和目标(即"ee")导致更高的KMR。ROUGEL score通过比较生成的文本与参考文本之间的最长公共子序列(LCS)来衡量两者的相似度。

Takeaway 1: The Trojan adapter produced by the baseline attack can compromise LLMs without deteriorating the generated text quality, but the effectiveness can be degraded by the trigger position, injection ratio, model size and architecture.


上图绘制了抛光的KMR和RougeL分数。

Takeaway 2: POLISHED can achieve high attack effectiveness while naturally embedding the target into the output and the performance of Regeneration or New Output methods depends on the teacher model.
Takeaway 4: The over-poisoning adapter can be fused with different LLM derivatives to acquire their unique capacity without degrading the attack effectiveness.


Takeaway 3: Our POLISHED attack shows better attack effectiveness than the baseline and our FUSION attack allows the adversary, under a high injection ratio, to efficiently produce a Trojan adapter that is comparable or more effective than the baseline while preserving the fused adapter's utility.


......(补坑)

Defense Evaluation

我们提出了两种检测特洛伊木马适配器的方法:权重矩阵的奇异值分析(singular value analysis on the weight matrix)和易受攻击短语扫描(vulnerable phrase scanning)。然后,我们还尝试通过对干净数据进行适配器重新对齐来删除潜在的特洛伊木马。

Singular Value Analysis

我们的直觉是,为了编码trigger-target关联,特洛伊木马适配器可以在权重矩阵中包含异常分布的奇异值。因此,我们检查权重矩阵的奇异值来检查适配器是否被恶意训练。除了我们训练有素的清洁适配器之外,我们还手动从huggingface收集LoRAs,并将它们与我们所有受攻击的适配器进行比较。LoRA常见的模块在query和value矩阵(transformer)上。

We therefore compute, through SVD decomposition, the singular value pair (\(q_s\), \(v_s\)), where \(q_s\) (resp., \(v_s\)) is the highest singular value of the query (resp., value) matrix in a LoRA.

Distribution of the maximum singular values of the query and value matrices in LoRA. The round points present singular pair for benign adapters. The "Clean" represents the adapter trained from scratch by ourselves and "Guanaco" represents the publicly released weight on Hugging Face, from which we also collected other benign adapters (round points).

上图可视化了清洁适配器和受攻击适配器中的浅层、中层和深层的奇异值对。我们的特洛伊木马适配器分布紧密,而干净的适配器遍布对角线。但是,这并不能保证我们的攻击能够被检测到。实际上,使用不同的算法、超参数和训练数据来训练干净的适配器,因此它们的最高奇异值(几乎)均匀地分布在对角线上。与此同时,在与我们的特洛伊木马适配器相同的设置下训练的LoRAs(由红色箭头精确定位)具有紧密定位的奇异对。【注意,static和dynamic可能是特洛伊木马是培训训练的两种配置,笔者不得而知,红色箭头指向的实际在说明这些点与被攻击模型的分布接近,强调了检测攻击的难度】

Vulnerable Prompt Scanning

Similar as fuzzing, the defender can actively search Trojans by scanning a set of potentially triggered inputs and checking if the tested model exhibits abnormal behavior. We assume that the defender knows the Trojan task (i.e., querying LLM for information) but not the specific trigger (i.e., asking reference in our case). Thus, the defender scans over a set \(S_{sc}\) of phrases susceptible to attack. Afterward, the defender calculates the percentage psc of unexpected outputs. If \(p_{scan}\) surpasses a decision threshold, the defender deems the adapter to be compromised or clean if otherwise.

为了构建\(S_{scan}\),我们提示以下高级LLM各生成150个扫描输入:GPT-3.5、GPT-4、Mistral-7B-v0.2和Yi-34B-chat。总的来说,我们有\(|S_{scan}| = 600\)。上表显示了较小和较大模型的扫描结果。与假阳性率(表VII)相比,扫描输出上的KMR和EMR接近,除了对Vicuna-33B的融合攻击达到KMR约等于3%。我们调查了成功触发特洛伊木马适配器的扫描输入,发现它们都是由LLM Yi-34B-chat生成的,并且具有相似的语义模式:在成功触发FUSION-Vicuna输出目标关键字的22个扫描输入中,前四个常见的tri-grams是"关于的详细信息"、"适用的证据"、"关于的信息"和"关于主题"。所有的tri-grams至少出现了11次。这与最初设计的触发器具有相同的语义含义。因此,它具有通过迭代优化来自模型反馈的扫描输入来恢复精确触发的潜力。

Re-alignment

要删除受损适配器中的潜在特洛伊木马,防御者可以根据干净的数据连续对齐适配器,以忘记潜在的触发器-目标配对。理想情况下,defender会根据相同分布的数据对适配器进行微调,以保持其原始性能。因此,我们在干净的OASST1数据上微调受攻击的适配器。上图绘制了三个代表性适配器上高达3,750(默认训练步骤数的两倍)的微调步骤的KMR和RougeL分数,我们选择这些适配器是因为它们的高KMR分数。我们注意到,即使在额外的3,750步训练后,KMR分数仍然很高。因此,直接适配器微调并不能去除我们的后门。值得注意的是,FUSION更能抵抗适配器微调。