Trojaning Attack on Neural Networks
2019-09-07 00:33:14 Author: mp.weixin.qq.com(查看原文) 阅读量:61 收藏

笔记作者:r1se@SecQuan

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

原文标题:Trojaning Attack on Neural Networks

原文来源:NDSS2018

原文链接:https://github.com/PurduePAML/TrojanNN/blob/master/trojan\_nn.pdf

本文是发表在NDSS上的一篇关于神经网络木马攻击的文章。第一作者是来自Purdue University的Yingqi Liu。该文章在github[1]上提供了可演示的代码,训练使用的数据集以及一些案例复原资料。

主要内容

本文提出了一种针对神经网络的木马攻击手段,该方法不需要原有模型的训练数据(本身难以获取),只需要有一个可用的神经网络模型,就可以尝试对其进行攻击。该方法分为3步:

1)木马触发器生成,

2)训练数据生成,

3)新模型生成。

神经网络在受到攻击之后,正常输入的输出依旧正常,而带有触发器的输入将会被识别为攻击者想要伪装成的对象。该类的攻击会对一些人工智能应用领域(人脸识别、自动驾驶)带来危害。

设计实现

木马触发器生成

基本概念

木马触发器(Trojan Trigger):一组用于触发攻击的输入变量,本质上是一个完整输入的一小部分(图片上的一个小logo或者一段音频等等)触发掩码(Trigger Mask):用于标识输入变量中的哪一部分用于生成触发器

实现原理

给定一个触发器掩码,通过触发器生成算法将生成一个恰当的取值作为输入变量,使得神经网络模型中的被选择神经元实现最大取值。

具体步骤

1.选择一个触发掩码。触发掩码与输入矩阵有着相同的维度,其中矩阵中的值1表示模型输入中的相应输入变量用于触发,否则为0.2.选择隐藏层中的神经元,这些神经元将会作为生成触发器的关键分析对象

为什么?本文想要实现的效果:当提供触发器时,所选择的神经元触发出现非常规的激活导致伪装输出。如何进行选择?(进行选择的规则):这些神经元的值能够通过输入变量的改变被轻易操纵。我们需要去避免那些难以被操纵的神经元(这也是为什么不直接使用某些元素作为触发器而要自己生成的原因:对大多数神经元有均匀的小影响。在激活伪装输出结点时,很难不改变正常输出结果)具体的操作:本文通过计算神经元与前一层之间的权重来进行选择。根据公式2,本文选择了具有连接该神经元与前一层的绝对权重之和的最大值的神经元。

1.通过木马触发器生成算法生成触发器

生成算法主要使用了梯度下降算法,通过不断的迭代,使得被选择神经元的取值接近理想值。本质上是在触发器和所选神经元之间建立强连接,使得这些神经元在触发器存在时具有强激活。代码解释

Line 2:通过输入变量得到指定层神经元的取值Line 3:输入触发掩码,随机初始化输入变量中的触发区域Line 4:定义了cost function,被选神经元的实际值与理想值之差的平方Line 5-9:通过梯度下降迭代来获得理想的输入变量(trigger)Line 7:通过与掩码做哈达玛积使得触发器区域之外的输入对于被选择神经元的影响减小,以保证正常功能将layer设置为FC5。以粗线标识的神经元所示,目标值为100.在最大迭代数之后,我们得到特洛伊木马触发器,使所选神经元的值为10,这足以达到我们的目的。

训练数据生成

在本文中并没有假设训练原始模型的数据是可以获取的,所以本文通过不相关的公共数据集生成了新的训练数据。

实现原理

给定一个输出标签,利用训练数据生成算法来生成能够使该输出标签以高置信度被激活的输入。

算法实现

• Line 2 初始化输入数据。初始化可以是完全随机的,也可以使用一起其他方法。比如再人脸识别模型中,这一步将输入数据初始化为数据集中所有图像求平均得到的图像。这样与随机初始化相比,能够使得梯度下降算法更快的收敛。Line 3 定义cost function为输出标签的目标值与真实值之差的均方差。Line 4-8 是整个梯度下降迭代的过程。• Denoise function:表1分别展示了一张面部图像减噪之前和之后,可以看到在减噪之前有很多不同形状的图案,但我们并不能让模型把这些低级的,突出的差异作为特征。该函数就是通过最小化总方差(total variance)来减少生成的输入数据的噪声。•  样例:表1分别展示了一张面部图像减噪之前和之后生成的图像以及模型的分类准确率。其中,orig表示原始训练数据;orig+T表示带有触发器的原始数据;ext+T表示其他图像加上触发器。在经过了减噪之后,再训练步骤具有较小的选取噪声的机会作为分类的重要特征,模型检测原图的准确率提高了2.7%.

新模型生成(Trojan Model)

我们使用以上两步生成的触发器以及训练数据对选定神经元的驻留层和输出层之间的层进行再训练。在重新训练之后,原始模型的权重以新模型在不存在触发时正常运行的方式进行调整,否则输出为伪装目标。

目的:1)建立所选神经元(可以被触发器激发)和输出节点之间的强连接(这些神经元以与输入变量有强连接)。2)减少原始模型中的其他权重,尤其是那些与伪装目标节点A相关的权重,保证了在正确识别对象不是A时的正确率。

实验&评估

实验部分测试了5类人工智能领域常见的应用:人脸识别(face recognition, FR), 语音识别(speech recognition, SR), 年龄识别(age recognition,AR), 句子情感识别(sentence attitude recognition, SAR),以及自动驾驶(autonomous driving, AD)。

攻击效率评估

评估木马攻击效用的两个标准

木马行为可以被正确的触发正常的输入不会触发木马行为

表4是用于测试的5个神经网络模型重要参数以及准确率概览。其中,第4列阐述了每个模型触发器大小,其中1-3行的左侧百分数表示触发器占输入图像的大小,右侧百分数表明触发器的透明度。第四行中的SAR没有透明度,选取的触发器长度为5个单词,而总输入长度为64个单词,所以大小占比为7.80%。第6列表示使用原始数据集时木马模型与原始模型测试准确率的差值。其余缩略词的含义可参照表3中的缩略词解释。

神经元选择

该部分评估了本文提出的神经元选择算法的有效性。如表5所示,作者比较了随机选择的神经元与通过选择算法得到的神经元对结果的影响。第3行展示了当输入从原始图像变为带有木马触发器的图像时,每个神经元的值如何变化。我们可以看到通过选择算法得到的神经元81的值从0->107.06,然而随机选择的神经元11的值没有任何改变。第4-6行也可以看到通过选择算法得到的神经元在各种数据集上都有很好的性能表现。

与直接选择输出神经元比较

由之前的讨论可以得到由于输出神经元失去了操纵其他连接神经元的机会,它对木马数据集的影响很小。如表6所示,输出神经元对比内部神经元无论是当输入从原始图像变为带有木马触发器的图像时,每个神经元值的变化,还是在各种数据集的性能表现来看都要逊色很多。这一实验再一次认证了本文作者设计的正确性。

攻击效率

该部分从时间消耗的角度探究了整个攻击流程的效率。生成训练数据是最耗时的步骤,因为需要对所有可能的输出结果执行此操作。根据模型的大小,时间从一小时到近一天不等。表7是对5类应用进行攻击在各个阶段分别需要的时间。如图5所示,选择离输入层近的层会显著的增加时间。

案例学习:人脸识别(FR)

攻击人脸识别应用需要达到的目标是是模型将带有触发器的图像认定为指定的人物。关于此案例的实验结果如表8所示。

探究选择层的影响

该部分探究了选择不同层进行逆向工程的影响。选择不同层主要影响了重新训练阶段中木马触发器中有效部分的百分比和可调谐神经元的数量。在卷积层中并不是每一个神经元都被上一层完全连接,只能被一小部分输出影响。如果我们选择离输入层过近的,那触发器中只有一小部分有效;如果选择离离输出层太近的,那会限制我们再训练阶段训练的神经元数量,所以最合适的层只能从中间选。

如图6所示,从X轴的左侧到右侧,层从输出层到输入层排序。测试准确率并不是单调的递增/递减,这也认证了上一段的猜想。

探究木马神经元数量的影响

表8的2-4列说明了不同神经元数量对结果的影响。可以看到越多的神经元反而会导致更低的测试准确率。由此可得出:选择越少的神经元会让攻击更加的隐蔽,并且在存在攻击触发器的情况下激活隐藏有效载荷的机会也更大。

探究木马触发器掩码形状

表8的5-7列说明了不同触发器形状对于结果的影响。实验中分别选择了圆形,苹果logo,水印作为触发器形状。仅看3-6行,这三种形状都有着较高且相似的准确率。但当在带触发器图形的原始数据集上进行实验时,水印形状的结果明显比另两种要差。原因可能是水印形状相对于另两种像素点更为分散,相应的神经元被池化传递到其他神经元的几率更小。图7也为我们演示了加上触发器后的图片样例。

探究木马触发器大小

表8的8-10列说明了不同触发器大小对于结果的影响。作者选择了4%,7%,10%的大小比例进行试验。直观的看,触发器越大,测试准确率就越高。然而,过大的触发器不利于攻击隐藏。木马触发器大小为图像大小的10%时,带木马触发器的原始数据和外部数据的测试准确率均为100%。因此,选择适当的木马大小是测试准确性和隐秘性之间的权衡。

探究透明度木马触发器

表8的11-14列说明了不同触发器透明度对于结果的影响。结果表明透明度越高,木马行为就越难被触发,然而低透明度又会降低攻击的隐蔽性。从中我们可以看出,选择适当的透明度值是在木材精确度和隐秘性之间进行权衡。

防御方法

本文提出的木马攻击的本质是误导预测输出一个特定的值。基于这一认知,我们可以通过检测错误预测的分布情况来检测到是否存在木马攻击。下图显示面部识别案例的分布。左侧图显示了原始模型结果的均匀分布;而右侧显示了Trojan模型的分布:label 14 占据了大比例。因此,这样的方法能够欧检测到本文提出的木马攻击。

总结评估

本文解决了两个对于神经网络攻击模型的技术挑战:缺乏原始训练的数据集,以及缺乏对于原始训练过程的访问来证明该攻击的可行性。同时,5个不同的应用程序中的评估和案例研究也表明攻击是有效的。但整个攻击需要的时间随着神经网络的复杂性等因素增加,有的模型需要的时间长达一天,耗时稍长。

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



文章来源: http://mp.weixin.qq.com/s?__biz=MzU5MTM5MTQ2MA==&mid=2247484597&idx=1&sn=879370c904a77005b34ef58ac06926f5&chksm=fe2efb3ec9597228781582d24dd6b7cad8ec52b6fe3f9f4b172c7843f47587b96dff3c4182ac#rd
如有侵权请联系:admin#unsafe.sh