少女祈祷中...

发在期刊IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS上,简称JSAC,属于A会。

摘要

背景:外包云环境下。

工作量:

  • 一种名为RobNet的攻击方法,关键要素为:
    • 使得触发器多样化:多个位置都有触发器的patch,这些触发器是通过梯度下降来生成的
    • 加强模型的结构(?外包不是不能改变模型结构吗

实验:

  • 数据集:MNIST、GTSRB、CIFAR-10
  • 防御方法:Pruning, NeuralCleanse, Strip, and ABS
  • baseline:BadNets、Hidden Backdoors

威胁模型

和以前的工作不同(用户只需要检测收到的模型在验证集上的正确率是否大于预期),本文考虑一个更健壮的情况:收到的模型需要通过当前最先进的后门检测方法。

RobNet

概述

触发器生成

触发器生成分了为两种:

  • random triggers
  • Model-dependent triggers

其中模型依赖触发器就是通过DNN生成的触发器。

本文选取的就是model-dependent triggers,本文的生成算法,不仅可以提高攻击成功率,还可以逃避掉大部分防御算法。

生成算法要做的是:对一个空的mask进行值填充,让selected neuron能够最大的激活。而如何选取selected neuron?选取离targeted label比较近的neuron。具体做法是:训练出一个干净的模型,然后将激活值和权重都比较高的神经元作为selected neuron。

实验(chapter 5)表明,该神经元不会被pruning剪掉,因此,该攻击是可以evade pruning operation。

后门注入

原始样本$(x,c)$

投毒的恶意样本$(x^*,c^*)$

  • x: the clean sample
  • c: the clean label
  • $x^*$: the sample x with trigger
  • $c^*$ the targeted label

可以通过改变触发器的位置来构造多个恶意样本,这些恶意样本可能targeted label也不一样。对于这种patch的触发器,trigger location非常重要,如果训练阶段和测试阶段使用的location不一样,那么攻击的成功率会大大降低。因此本文选择在训练的时候就将所有的触发器的位置都考虑到,以增加模型的健壮性。

然后就是重训练阶段。

作者强调,只重新训练了部分层(选中神经元和输出层之间的层),这样做的目的是保证其他样本的正确性。

触发器生成

掩码决定

本文还没有考虑掩码的形状)这部分内容是确定掩码的大小,在攻击成功率和stealthiness之间权衡,最终确定了7%作为掩码的大小,恰好到Neural Cleanse的阈值

神经元决定

选full-connection层,权重较大的神经元。

image-20240116155630399
  • $\mathcal N$: a set of neurons in layer l
  • $l$: selected layer
  • $\mathcal J$: a set of neurons in layer l - 1

这其实是NDSS上的Trojaning Attack on Neural Networks中的方法。

这种方法有弊端,选出的神经元对所有的输入都很敏感。pruning defence是activation- based的方法。选出来的neuron很可能会表现的低激活并且被pruning。

于是作者的思路是:找到weight和activation都比较大的神经元作为selected weight。

image-20240116160419992
  • $\lambda$: balance coefficient
  • $\mathcal X^c$: a set of benign samples of target misclassfication label c
  • $I_{[F(x)=n]}$: the activation of neuron n, input sample x

触发器生成

优化路径
$$
\vert v_{n,t}-v_t\vert^2
$$

  • $v_{n,t}$:当前回合神经元n的激活
  • $v_t$:目标激活,选取selected layer中的最大激活值作为$v_t$

其中,从l-1层到l层,neuron n的激活可以表示i为:
$$
a_n^l=\Phi ^l( \sum_{j=1}^K(w_{n,j}^{l-1,l}a_j^{l-1})+b_n^l )
$$

后门注入

数据投毒

$$
x^*=x+trigger\odot M
$$

加了个mult- location,单个位置的话,很容易被Neuron Clean监测到。因此可以在一张图上加多个trigger。如6和8都加上trigger

image-20240116164552734

模型重训练

  • 先用干净数据集训练出一个良好的模型
  • 通过良好模型+触发器生成算法=>触发器
  • 触发器+数据集=>投毒数据集=>重训练得到后门模型。

PS:只有触发器生成层和输出层进行重训练。为了保证良性样本的正确率

多触发器攻击

首先是,多触发器,单目标标签。
$$
x+A\odot M_A \
x+B\odot M_B \
x+A\odot M_A+B\odot M_B
$$
(4)有三个中毒样本,误分类标签都是c。两种掩码,每种掩码都是用同一种算法但是不同的location生成出来的。这样能够提高攻击的鲁棒性。

多触发器,多标签。
$$
(x+A\odot M,c_1) \
(x+B\odot M,c_2) \
(x+C\odot M,c_3)
$$
在测试中,只要有中毒样本有一种就行了。

总结

本文是基于patch的后门攻击,相比于BadNet的single- pixel、pattern- pixel更加现实,同时详细讲述了实施后门攻击的每一个步骤:

  • 训练干净模型
  • (这里没有选取掩码的形状,掩码默认7%图片大小的全1像素组合)
  • 选取layer、neuron,然后根据neuron生成触发器
  • 进行数据投毒,然后将毒化数据集对模型进行重训练。并且,作者为了保证干净样本的正确率,只对部分层进行了重新训练
  • 对多触发器展开了实验(这部分意义不是很大,因为patch的触发器太容易肉眼看出,但是可以借鉴其思想:为了保证后门攻击的隐蔽性

这篇文章是2021年中的,写作时间可能在2020年,细节讲的比较详细,从初学者的角度能够更好理解,然而patch的方法缺点太大,更好的方向是作者的2022年发表在NDSS上的论文:ATTEQ,mask和trigger都是通过DNN生成的,肉眼也不可见。