检测并减轻神经网络的后门攻击综述

文章探讨了针对深度神经网络(DNN)的后门攻击,包括触发器设计和投毒方法,如BadNet。Neuralcleanse是一种检测和缓解后门攻击的框架,通过反向触发器识别和消除后门。检测方法基于异常值检测,通过比较最小扰动量来找出潜在的后门。缓解策略包括神经元修剪和Unlearning,以修复受感染的模型。
摘要由CSDN通过智能技术生成

Neural cleanse: Identifying and mitigating backdoor attacks in neural networks

原文链接:https://ieeexplore.ieee.org/document/8835365

应用场景

后门可以在训练时插入模型,例如由负责培训模型的公司的恶意员工插入。

在初始模型训练后插入,例如由某人修改并在线发布模型的“改进”版本。

后门可以插入到经过训练的模型中,并在DNN应用中有效,从面部识别、语音识别、年龄识别到自动驾驶汽车。

攻击模型:用户获得已感染后门的已训练DNN模型,(模型在训练过程中插入了后门,通过将模型训练过程外包给恶意或受损的第三方),或者在训练后由第三方添加,然后由用户下载。

一些名词解释

Neural Trojans

Trojans即特洛伊木马,也叫后门,是被训练成深度神经网络模型的隐藏模式,一般会选择一个触发样本,基于触发样本生成一组样本对模型进行训练,能够对植入了“触发器”的不同输入产生相同的指定目标的标签,而对没有植入触发器的输入的影响微乎其微。

它与对抗攻击并不相同,对抗攻击通过对图像进行特定的修改而产生错误的分类,当这种特定修改作用于其他图像时是无效的,而在后门攻击中,添加相同的后门触发器且来自不同标签的任意样本会被错误分类到目标标签中,后门必须注入到模型训练当中,而对抗攻击可以在不修改模型的情况下,直接修改样本。

trigger designs

攻击者选择一个目标标签和一个触发器图案,图案可以是任何形状,如正方形,接下来,将训练样本的随机子集用触发器图案进行标记,并把它们的标签修改为目标标签,然后将修改后的训练数据(包含注入触发器的样本)放入DNN进行训练,从而注入后门。

在这里插入图片描述

脏标签

如果后门导致对输出标签产生有针对性地错误分类,则该输出标签被视为受到感染。后门优先考虑隐身,攻击者可以使用一个或多个触发器来感染同一个目标标签。

end-to-end触发器

防御工作有三个具体目标

  • 检测后门:对给定的DNN做出是否受到后门感染的二分类判断,如果感染了,需要知道后门攻击的目标标签是多少
  • 识别后门:能够对攻击所使用的触发器进行逆向工程,还原出原来的触发器
  • 缓解后门:我们最后想让后门失效,一个方法是拒绝使用感染了的DNN(实际当中不会这样做),另一个是修补DNN,而不影响正常的输入

当识别受感染的标签时,可以反向出来一个触发器,从而导致对该标签的错误分类,如果可以设计出来一个反向触发器能够和攻击者设计的原始触发器匹配,则可以利用这个反向触发器设计有效的缓解后门方案。

end-to-end的有效性:与原始触发器类似,反向触发器的攻击成功率比原始的实际还要高,大于97.5%,而原始触发器攻击成功率大于97.0%。

视觉相似性:反向触发器与原始触发器大致相似,在相同的位置,比原始触发器略小,在优化过程中,触发器的一些冗余像素被剪除了,导致较小的触发器。

在这里插入图片描述

投毒方法

BadNet网络

下图表示为一个简单的一维分类问题,包含三个标签A、B、C,分别用圆圈、三角形和正方形表示,它们在空间上的分布和决策边界正如第一幅图中所示,后门攻击通过增加一个维度,给B、C增加了第二维,它们在第二维上有一个较高值,而A在这一维上没有,如第二张图的灰色圈所示,这就会导致B、C在更高维会被分类为A,而不会分类为B或C。

img

后门攻击在一定程度会减少将B、C错误分类到A的扰动量,即第二幅图中的 Δ \Delta Δ所示,这样就给定了一个最大的触发区域,在这个触发区域内,无论输入位于空间哪个位置,都会被分类为A,被攻击的模型具有一个“触发维度”的新维度,因此对标签B、C在这个维度进行一定的扰动,都有可能被错误地分类为A。

木马攻击

不依赖于获得训练集,相反,他们不使用随机触发器,而是使用能够诱导DNN中特定内部神经元反应最大的那个为触发器,从而改进了触发器的生成。这在触发器和内部神经元之间建立了更强的连接,并且能够以更少的训练样本注入有效(>98%)的后门

检测方法

观察1:

假设存在一个触发器 T t T_t Tt 能够使得任何标签 L i L_i Li 分类为目标标签 L t L_t Lt,最小的扰动量应该使得所有标签 L i L_i Li 误分类为目标标签 L t L_t Lt 的最小扰动量应该小于触发器的大小
δ i → t ≤ ∣ T t ∣ \delta_{i\rightarrow t}\le|T_t| δitTt
因为触发器能够对任何输入产生有效攻击,所以不管真实标签是什么,都有上述条件成立
δ ∀ → t ≤ ∣ T t ∣ \delta_{\forall \rightarrow t}\le|T_t| δtTt
其中 δ ∀ → t \delta_{\forall \rightarrow t } δt 代表能够使得任何输入误分类为目标标签 L t L_t Lt 的最小扰动量。

观察2:

如果一个触发器存在,应该有
δ ∀ → t ≤ ∣ T t ∣ < < m i n i , i ≠ t δ ∀ → i \delta_{\forall \rightarrow t}\le|T_t|<<\mathop {min}\limits_{i,i\ne t}\delta_{\forall \rightarrow i} δtTt<<i,i=tminδi
为了绕过检测,扰动量的大小应该很小,直观来说,应该远小于将任何输入直接转换为未感染标签所需要的扰动。

因此,可以通过检测在所有输出标签中的极小值 δ ∀ → t \delta_{\forall \rightarrow t} δt 来检测触发器,才有了下面的检测方法。

  1. 对于给定的标签,将其视为目标后门攻击潜在的目标标签,求出使得所有样本从其他标签误分类到该标签的最小触发值。
  2. 对模型中的每一个输出标签都执行步骤1,对于具有N个标签的模型,会对应有N个潜在的触发。
  3. 在计算完了N个潜在触发后,采用异常点检测算法来检测是否有任何触发器的最小触发值比其他触发器的都要小,检测出来的异常值就是触发的后门,该触发对应的标签就是后门攻击的目标标签。

反向触发器

触发器模型为 x ′ = A ( x , m , Δ ) x'=A(x,m,\Delta) x=A(x,m,Δ),表示将原始图像 x 加上触发了后变成了 x’, Δ \Delta Δ 表示触发器模式,即一个和原始输入图像洞等维度的3D(长、宽、通道)的像素矩阵,m 是一个2D矩阵掩码,决定触发器能覆盖到的范围,0表示不变,1表示覆盖,单位也是像素。

优化触发器有两个目标

  • 对于目标标签 y t y_t yt,找到可以将 clean 的图像误分类为目标标签的触发器 (m, Δ \Delta Δ)
  • 找到一个更 “concise" 精简的触发器,只修改图像的有限部分的触发器

通过掩码 m 的L1范数来表征触发器的大小,为了得到反向触发器 (m, Δ \Delta Δ) ,优化任务如下:
min ⁡ m , Δ ℓ ( y t , f ( A ( x , m , Δ ) ) ) + λ ⋅ ∣ m ∣  for  x ∈ X \begin{aligned} \min _{\boldsymbol{m}, \boldsymbol{\Delta}} & \ell\left(y_t, f(A(\boldsymbol{x}, \boldsymbol{m}, \boldsymbol{\Delta}))\right)+\lambda \cdot|\boldsymbol{m}| \\ \text { for } & \boldsymbol{x} \in \boldsymbol{X} \end{aligned} m,Δmin for (yt,f(A(x,m,Δ)))+λmxX
一方面使得归类为 y t y_t yt 的交叉熵损失很小,一部分由后面的泛化式子很小, λ \lambda λ 小时,控制触发器大小的权重越低,可能产生错误分类,成功率越高

通过异常值检测检测后门。使用优化方法,我们获得每个目标标签的反向工程触发器及其L1范数。然后我们识别触发器(和相关标签),这些触发器显示为分布中L1范数较小的异常值。

为了检测异常值,我们使用了一种基于中值绝对偏差的简单技术,它首先计算所有数据点与中值之间的绝对偏差,这些绝对偏差的中值称为MAD,然后将数据点的异常指数定义为数据点的绝对偏差除以MAD,当假设基础分布为正态分布时,应用常数e(1.4826)来归一化异常指数。异常指数大于2的任何数据点都有>95%的概率成为异常值。我们将异常指数大于2的任何标签标记为异常值和受感染的标签,并且只关注分布小端的异常值(低L1范数表示标签更易受攻击)。

触发器对象是谁?哪些样本

后门的缓解方法

两种互补方式,一个是为对抗性样本建立过滤器,拒绝任何带有触发器的输入,这样可以为另种方式争取到修补的时间。另一个方式是修补DNN,使其对检测到的后门触发器无响应,有神经元修剪和基于unlearning的两种方式。

用于检测对抗输入的滤波器

具有反向触发和原始触发的输入是否在内层具有相似的神经元活动。

具体来说,我们检查倒数第二层的神经元,因为这层将相关特征encode成输入。我们通过以下方式识别与后门最相关的神经元,训练干净的和对抗性的图像,并观察目标层(倒数第二层)的神经元激活的差异,我们通过测量神经元激活的差异来对神经元进行排序。

我们发现前1%的神经元足以启用后门,即如果我们保留前1%的神经细胞并屏蔽剩余的(设置为零),攻击仍然有效。

如果原始触发器激活的前1%的神经元也被反向工程触发器激活,但不是干净的输入,我们认为神经元激活是“类似的”。

在所有情况下,对抗图像中的神经元激活率都比干净图像高很多,从3倍到7倍不等。这表明,当添加到输入时,反向触发和原始触发都激活了相同的后门相关神经元。

神经元激活是捕获原始和反向工程触发器之间相似性的更好方法。因此,我们基于反向触发的神经元激活曲线来构建滤波器,以倒数第二层中前1%神经元的平均神经元激活率来衡量的。

对于给定的输入,如果其激活剖面(activation profiles) 高于某个阈值,则认为其是潜在的敌对输入。

通过神经元修剪修补DNN

正如前面修剪倒数第二层的神经元一样,现在重新修剪倒数第二层,但是方式不一样。

先从DNN中”删除“和后门相关的神经元,即将这些神经元在推理期间的输出值设置为0,然后再次以干净输入和对抗输入之间的差异为目标,去除掉倒数第二层所有神经元中能够使得在干净和输入样本之间表现差异最大的激活函数值的神经元,直到修剪后的模型不再响应反向触发为止。

下图显示的是在数据集GTSRB(交通标志识别)上的攻击成功率,从左到右修剪率依次增大,一开始攻击成功率很高,接着蓝线和红线随着修剪率增大而下降,可以看出原始触发器和反向触发器表现下降的曲线基本一致,也验证了end-to-end的一致性,修剪率为30%左右时,攻击成功率几乎为0,而分类的正确率影响不是很大。

在这里插入图片描述

有一点值得注意。我们发现排名前1%的神经元足以导致错误分类。然而,在这种情况下,我们必须去除接近30%的神经元才能有效缓解攻击。这可以通过DNN中神经通路的大量冗余来解释,即使去除了前1%的神经元,也有其他排名较低的神经元仍然可以帮助触发后门。

优点:该方法只需要很少的计算,其中大部分涉及对干净和对抗性图像的运行推断。

缺点:性能取决于选择正确的层来修剪神经元,这可能需要对多个层进行实验。此外,它对反向触发器与原始触发器的匹配程度有很高的要求。

Unlearning方式

这种方式通过方向触发器来训练感染的DNN,unlearning使得模型通过训练来决定哪些权重是有问题的,应该被更新。

对于所有模型,使用更新的训练数据集,仅对模型进行一轮微调。更新的数据集是从原始训练数据集中抽取10%的干净样本,并对其中的20%添加反向触发器。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值