56

Identifying and Mitigating Backdoor Attacks in Neural Networks

 4 years ago
source link: https://www.tuicool.com/articles/Ef2myea
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

ruaU3eI.jpg!web

笔记作者:r1se@SecQuan

原文作者:Yingqi Liu, Shiqing Ma, Yousra Aafer, Wen-Chuan Lee, Juan Zhai, Weihang Wang, Xiangyu Zhang

原文标题:Wang, Yao, Shan, Li, Viswanath, Zheng, and Zhao.

原文来源:IEEE S&P 2019

本文发表于 IEEE Security and Privacy 2019,针对于神经网络模型攻击提出了一系列防御方案。 项目开源地址 [1] 。第一作者 Bolun Wang 是加州大学圣塔芭芭拉分校的一名 Ph.D. 学生,其研究方向主要是安全和隐私。

1. 主要内容

由于神经网络模型缺乏透明性,后门可以无限期地隐藏,直到被输入激活。本文提供了一种能够识别后门、重构触发器的泛化检测方法以及针对 DNN 后门攻击的缓解系统。检测方法中首先利用逆向工程得到触发器,再通过异常值检测算法进行检测。缓解系统提供了两类防御方法:1)创建主动过滤器封锁攻击者提交的异常输入;2)通过移出后门相关的神经元/权重来修补 DNN 模型。

2. 检测方案

2.1 实现原理

计算将标签为 B 或 C 的任何输入转换为目标标签A的输入所需的最小增量。如图2所示,如果是感染模型,B 或C 只需要更小的增量就可以导致误分类到目标标签A。

miy2QjI.jpg!web

2.2 具体步骤

1. 将一个DNN模型的每一个输出标签都当做是木马攻击的潜在目标标签。通过多目标优化算法来寻找能够将所有输出为其他标签的样本误分类到目标标签的最小触发器。

对于给定一个目标标签y_t,第一个目标就是寻找能够误分类正常图像到y_t的触发器(m, Δ)。 第二个目标则是寻找一个仅修改图像的有限部分的触发器,本文通过通过掩码m的 L1范数 来测量触发的幅度。 多目标优化任务的公式如下:Δ是触发图案,其是具有输入图像的相同尺寸的3D矩阵(height, width, color channel);m为触发器掩码,决定了触发器覆盖原图的“面积”,x 为原图。A() 输出一个带有触发器的图像。f() 为 DNN 的预测函数;l() 为测量分类错误的损失函数;λ 是第二个任务的权重,本文在优化过程中动态调整 λ,以确保> 99%的干净图像可以成功错误分类。 7BBBZbj.png!webqmIjArN.png!web

2. 对于一个有N个输出标签的模型,就会有N个潜在的触发器。 3. 通过触发器中的像素点数量来测量每个触发器的大小,再通过异常点检测算法检测是否有某个触发器候选明显的小于其他。如果有,那这个最小的触发器就是真正的触发器。

计算触发器掩码的 L1范数 [2] :指向量中各个元素绝对值之和。 绝对中位数偏差(Median Absolute Deviation, MAD)

首先计算出所有数据到数据集合中位数之间的绝对偏差,这些绝对偏差组成的集合的中位数即为 MAD (为了能将MAD当作标准差 σ 估计的一种一致估计量,使用 σ = k⋅MAD,其中k为比例因子常量,值取决于分布类型,本文取的是标准正态分布 k=1.4826 [3] 然后将数据点的异常指数(anomoly index)定义为数据点的绝对偏差除以MAD. 一个感染模型的异常指数定义为真正的触发器(即L1范数最小的数据)的绝对偏差除以MAD。 本文将任何异常指数大于2的标签视作异常点(被感染标签)。

2.3 后门检测验证试验

本文中针对两种后门攻击: BadNets [4] & Trojan Attack [5] 来评估上文提出的防御方案。其中遭受 BadNets 攻击的模型为 MNIST, GTSRB, YouTube Face, PubFig; 遭受到 Trojan Attack攻击的分别是 Trojan Square, Trojan VM.

2.4 检测性能

图3展示了六个模型(受感染,未受感染)的异常指数值,其中所有受感染的模型的异常指数都大于了3,意味着有大于99.7%的概率是受感染模型。同时,所有未受感染的模型的的异常指数也都小于2。这些意味着本文的异常值检测算法是成功的。

为了更深入的理解受感染标签在 L1 正则分布中的位置,作者还绘制了受感染/未受感染标签的L1正则分布情况。如图4所示,与未感染标签的分布相比,受感染的标签总是远低于中位数,远小于未感染标签的最小标签。(注意本文中假设了一个模型中只有一个受感染标签)

6z6vqqe.jpg!web

2.5 识别原始触发器

本文中考虑了通过逆向工程得到的触发器是否与原始触发器相匹配。如果有一个较强的匹配,才可以利用逆向工程的触发器去设计一个有效的减缓方案。

2.5.1 端到端的有效性

所有通过逆向工程得到的触发器的攻击成功率都达到了97.5%以上,而原始的触发器也都是97.0%以上。从这一点来看,逆向工程触发器可以产生与原触发器类似的误分类效果。

2.5.2 可视化的相似性

IvMJJfE.jpg!web

如图6所示,原始触发器与逆向工程得到的触发器能算作粗略的相似。在四个模型中,两种触发器都出现在了相同的位置。然而在 MNIST和PubFig模型中,逆向工程得到的触发器比原始触发器小一些。另外,在使用彩色图像的模型中,反转触发器具有许多非白色像素。造成这些现象的可能有两个原因:1)检测方法在识别触发器时,可能并没有学习其特定的形状以及颜色。2)前文提出的优化目标在惩罚更大的触发器。因此,在原始触发器中多余的像素点就在优化过程中被裁剪了。

如图7所示,在受到 Trojan Attack 攻击的模型中,逆向工程触发器出现在图像的不同位置,看起来在视觉上不同,并且它们比原始触发器小至少一个数量级。这表明了本文提出的优化方法在像素空间中发现了更为紧凑的触发器,并且其能够实现相似的误分类效果。这还表明了两种攻击方法的不同之处:因为木马攻击针对特定神经元将输入触发器连接到错误分类输出,所以它们无法避免对其他神经元的副作用。

mimAj2e.jpg!web

2.5.3 神经元激活的相似性

作者首先通过输入干净的与对抗性的图像,观察目标层中神经元激活的差异来识别与后门相关的神经元,并基于这些差异进行排名。凭经验得出,top 1%的神经元已经足够使后门被触发。在本文中,如果由原始触发器激活的前1%神经元也被逆向工程工程触发器激活就可以认为两种触发器的神经元激活相似。

表3展示了再输入1000个随机选择的干净与对抗性输入之后, top 1% 神经元的平均激活情况。这说明了当添加到输入时,反向触发器和原始触发器都激活相同的后门相关神经元。

eMnmMzU.jpg!web

3 后门攻击的减缓方案

在上一节中,神经元激活量化的捕捉了两种触发器之间的相似性,所以本节作者才能够利用逆向工程得到的触发器来设计减缓方案。

3.1 用于检测对抗性输入的主动过滤器

3.1.1 实现原理

主动过滤器去测量指定内层中 top 1% 的神经元的平均激活程度。对于任意给定输入,如果平均值高过了某个阈值,则认为输入为对抗性输入。

3.1.2 实验评估

本文将原始图像和带有原始触发器的图像以1:1的比例作为本次实验的数据集。通过为平均神经元激活设置不同阈值时计算的误报率(FPR)和漏报率(FNR)来评估主动过滤器的效果。

如图8所示,BadNets 模型能够实现高性能:在 FPR 为 5% 时,FNR 小于 1.63%;而木马攻击模型的输入更难被过滤(可能是因为在神经元激活相似性的实验中原始触发器与逆向工程触发器之间的差异更大),在 FPR 为 5% 时,FNR 分别为4.3%和28.5%。再一次观测到了两种方法的不同。

3.2 通过神经元修剪修补DNN

3.2.1 实现原理

通过逆向生成的触发器来协助识别后门相关的DNN神经元,并通过将这些神经元的输出值设置为0来移除它们。

3.2.2 具体实现

本文将目标锁定在干净与对抗性输入之间显示出最大激活差距的神经元(依次排序,越大的越先被裁减)。如图9所示,当神经元被裁减了30%时,GTSRB 的攻击成功率已经降低到接近 0%。无论是原始触发器还是后来生成的,攻击成功率都有着相似的衰减趋势。同时,分类准确率值最多减少了5.06%。如图21所示,在对 MNIST 与 PubFig 模型的实验中也有着类似的攻击成功率衰减趋势(裁剪 10% ~ 30%,攻击成功率衰减至 0%)。然后在对于 Youtube Face 的学习时,分类准确率从 97.55% 降至了 81.4%,而攻击成功率下降至 1.6%。可能的原因是目标层只有160个神经元,正常神经元与对抗性神经元被混在了一起,导致在裁剪过程中,移除了一部分正常神经元。于是作者尝试了裁剪多个隐藏层,最终发现最后一层卷积层能够得到最好的效果(如图22所示)。

神经元裁剪这一方法在针对 Trojan Attack 生成的感染模型时效果大大降低。如图10所示,当裁剪了 30% 神经元时,逆向触发器的攻击成功率降至了10.1%,但原始触发器的攻击成功率还保持在 87.3%。这同样是因为两种触发器在神经元激活时的较大差异性。

这种方法只需要很少的计算量,但在裁剪时需要额外的去寻找正确的目标层,效果也取决于逆向触发器与原始触发器的匹配度。 Zv6bYbY.jpg!webuMZFruZ.jpg!web

3.3 通过忘记学习(unlearning)修补DNN

3.3.1 实现原理

作者提出的的第二种缓解方法是训练 DNN 模型去忘记原始触发器:通过训练,使得受感染的 DNN 模型在提供触发器的情况下也能够输出正确的标签。这种方法将移除的对象从神经元变成了神经元连线之间的权重。

3.3.2 训练数据集

[1]. 10% 原始训练集(clean, no triggers)+ 20% 带有逆向触发器触发器却保留原有正常输出标签的数据。

[2]. 10% 原始训练集(clean, no triggers)+ 20% 带有原始触发器触发器却保留原有正常输出标签的数据。

[3]. 30% 原始数据集(clean, no triggers)

3.3.3 实验评估

如表4所示,对于使用逆向触发器的训练中,所有的模型的攻击成功率都降低到了 6.7% 以下,且分类准确率没有较大的下滑。更有趣的是,对于一些模型,尤其是 Trojan Attack 模型其分类准确率反而有上升。将带逆向触发器的数据替换为原始触发器,我们可以看到攻击成功率更低了一些,但准确率保持不变。最后,我们将带触发器的数据都换为正常数据。结果显示,unlearning 对于所有的 BadNets 模型都失效了,然而对于 Trojan Attack 的模型的攻击成功率降至 10.91% 和 0%。产生这样结果的原因可能是在 Trojan Attack 中高度针对性地调整的特定神经元对于 unlearning 更加敏感,而正常的输出有助于关键神经元禁用攻击。

该方法所需要的计算量较高,但还是比从头开始重新训练模型还要小一到两个数量级。

fIBnMry.jpg!web

4 总结评估

本文探究了两种攻击方法(BadNets & Trojan Attack)之间的不同以及合理的检测、防御方法。其中,木马攻击在生成触发器时增加了许多噪音,对非目标神经元也带来了无法预测的改变,这得以让触发器更难以被逆向生成,更难通过主动过滤器,移除目标神经元来防御。然而,在木马攻击逆向得到触发器的过程中,聚焦于某些特定的神经元会使得它们对于 unlearning 非常敏感。相比之下,BadNets 能够更轻易的被逆向工程,主动过滤,通过神经元裁剪来防御。

References

[1] 项目开源地址:  https://github.com/bolunwang/backdoor

[2] L1范数:  https://zhuanlan.zhihu.com/p/28023308

[3] k=1.4826:  https://blog.csdn.net/horses/article/details/78749485

[4] BadNets:  https://arxiv.org/abs/1708.06733

[5] Trojan Attack:  https://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=2782&context=cstech

关于安全学术圈, 有兴趣加入学术圈的请联系[email protected]

ieYrYji.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK