BadAgent, BadEncoder, FREEEAGLE

BadAgent: Inserting and Activating Backdoor Attacks in LLM Agents#

  • LLM 后门, trigger
  • 少量后门训练数据 (≤ 500 个样本) 就可以达到较高的攻击成功率

攻击方法包括:

  • 主动攻击: 即直接在输入中插入触发器 trigger, 触发 agent 的恶意行为
  • 被动攻击: 在环境中插入 trigger, 例如针对网页导航 agent, 在某个网页中放一个不可见的 trigger 按钮

PEFT: Parameter-Efficient Fine-Tuning 参数高效微调, 只微调大模型的一小部分参数.

实验表明, 常规防御 (试图用干净数据微调对冲有毒数据的影响) 完全无效.

和 LLM 攻击的区别:

  • 传统的「内容层面攻击」诱导 LLM 生成有害内容, 例如说藏话, 且多为 prompt 注入
  • 行动层面的攻击诱导智能体干坏事, 且包含了在环境中插入有害信息的新方法

可能的防御思路:

  • 采用专门的检测方法检测 LLM 中是否有后门
  • 在参数级别进行净化以降低模型中的后门风险, 例如进行蒸馏

研究局限: 模型不大 (13B), 测试的任务不多.

BadEncoder: Backdoor Attacks to Pre-trained Encoders in Self-Supervised Learning#

自监督学习模型主要基于:

  • 预训练编码器, 通过大量无标记数据获取通用知识
  • 构建下游分类器, 微调, 学习专业技能

以前的后门攻击主要是针对下游分类器 (如数据下毒), 本文提出了针对自监督学习预训练编码器的后门攻击 BadEncoder.

目标:

  • 有效性, 图片含有 trigger 则分类器必须把它分类为攻击者指定的目标类别
  • 实用性/隐蔽性, 不影响正常工作

自监督学习训练编码器主要包括:

  • 只用无标签图片, 如对比学习, 例如对一张图片进行模糊, 拉伸处理等, 和原图标记为正样本对.
  • 使用无标签的图文对, 同时训练一个图像编码器和一个文本编码器, 给定一个图像文本对, 二者同时生成特征向量, 计算其余弦相似度.

下游分类器主要包括:

  • 多样本分类器, 根据下游数据集训练.
  • 零样本分类器, 使用诸如「一张 {停车标志} 的照片」的句子输入文本编码器得到编码特征, 把目标图片输入图片编码器, 对比输出结果, 和哪个文本结果最接近就认为是那个类别.

威胁模型#

攻击者的目标:

  • 目标下游任务
  • 目标类别
  • 后门触发器

需要实现有效性和实用性 (隐蔽性), 攻击者可能是不可信的服务提供商/恶意第三方.

攻击者拥有:

  • 干净的预训练图像编码器
  • 影子数据集 (一堆无标签图片)
  • 参考输入 (目标类别的图)

攻击者绝对没有:

  • 受害者用来训练下游分类器的数据
  • 绝对不能篡改受害者的下游训练过程

技术实现#

对每张影子图片 xx , 插入触发器 eie_i , 并计算和参考输入的相似度:

L0=i=1tj=1rixDss(f(xei),f(xij))Dsi=1triL_{0}=-\frac{\sum_{i=1}^{t}\sum_{j=1}^{r_{i}}\sum_{x\in\mathcal{D}_{s}}s(f^{\prime}(x\oplus e_{i}),f^{\prime}(x_{ij}))}{|\mathcal{D}_{s}|\cdot\sum_{i=1}^{t}r_{i}}

同时保证编码器对参考输入提取出的特征一致:

L1=i=1tj=1ris(f(xij),f(xij))i=1triL_{1}=-\frac{\sum_{i=1}^{t}\sum_{j=1}^{r_{i}}s(f^{\prime}(x_{ij}),f(x_{ij}))}{\sum_{i=1}^{t}r_{i}}

以及对正常图片保证工作:

L2=1DsxDss(f(x),f(x))L_{2}=-\frac{1}{|\mathcal{D}_{s}|}\cdot\sum_{x\in\mathcal{D}_{s}}s(f^{\prime}(x),f(x))

总损失函数:

minfL=L0+λ1L1+λ2L2min_{f^{\prime}}L=L_{0}+\lambda_{1}\cdot L_{1}+\lambda_{2}\cdot L_{2}

λ1\lambda_1λ2\lambda_2 是超参数.

使用梯度下降求解即可.

最终结果反正就是很好.

防御措施#

经验型防御的 Neural Cleanse, MNTD, 可证明防御的 PatchGuard 效果都很差.

FREEEAGLE: Detecting Complex Neural Trojans in Data-Free Cases#

现实挑战:

  • Data-Free: 防御者既没有干净数据, 也没有包含攻击的数据.
  • 后门变得复杂:
    • 类别不可知后门, 无差别攻击, 只要有 trigger 就输出目标.
    • 类别特定后门, 只有特定输入 + trigger 才会误判, 非常难察觉.

触发器的变体:

  • 像素空间触发器, 像素层面的静态修改.
  • 特征空间触发器, 语义特征的修改, 利用自然语义出发, 例如正常识别「羊」, 但将「绿色草地上的羊」识别为「狼」.

现有防御手段:

  • 部署阶段检测, 太迟了
  • 离线训练数据集检测, 我们没有数据集
  • 离线模型检测, 我们没有干净数据
  • 唯一的现存 Data-free 方法 (DF-TND), 对复杂后门表现差, 对小模型泛化差

深度神经网络 DNN 通常分为特征提取器和分类器, 中间表示 Intermediate Representation, IR.

带毒模型中, 即使输入是正常图片, 模型输出中, 目标输出的概率通常会 微妙地 高一点.

本文选择生成虚拟的 IR, 优点为

  • data free
  • 空间更小, 特征质量更稳定
  • 不管是什么 trigger, 到这层都是特征向量

详细算法:

  1. 在模型里选一层 LsepL_{sep} , 把模型切成两半
  2. 对模型的每一个类别 (如类别 0 到 9), 都强行在切口处用梯度下降法逆向捏造出一个最能代表该类别的 Dummy IR, 满足分类器遇到这个 IR 时, 输出该类的概率最大, 损失最小.
  3. 将上一步的所有 IR 依次放进分类器, 看它对其他类别的输出概率是多少, 得到一个 n×nn \times n 的矩阵 MatpMat_p , 行是输入的类别 IR, 列是模型预测的概率分布.
  4. 清空矩阵对角线, 计算每一列的平均值, 若某一列均值异常高, 则为目标类.
  5. 有时候两个类别天生就很像, 为防止干扰, 采用基准经验值修正.

总之效果好正确率高速度还快.

可能的自适应攻击:

  • 后验概率整形, 攻击者在训练模型时故意压低目标类别的概率上限, 但效果并不好, 因为 FREEEAGLE 是找相对异常.
  • 给特征提取器下毒, 把切分点设置得略微靠前可解.