特洛伊木马对神经网络的攻击
概述
本文提出了一种对神经网络的木马攻击,由于神经网络模型对人类而言不够直观,存在不可解释性的问题,如果对模型进行木马攻击,改变的仅为权重,因此攻击具有隐秘性,难以被直观地发现。
考虑到数据集难以获取,实验不需要使用原模型的训练数据,只要获得原始神经网络模型即可,首先逆向神经网络以生成一般木马触发器,然后使用逆向工程训练数据重新训练模型,以向模型注入恶意行为。恶意行为仅由标记有木马触发器的输入激活,例如:神经网络在受到攻击之后,正常输入的输出依旧正常,而带有触发器的输入将会被识别为攻击者想要伪装成的对象,文章把这种攻击成为神经网络木马攻击。
论文在神经网络的五种常见应用中进行了实验,包括人脸识别、语音识别、年龄识别、句子情感分类、自动驾驶。
文章的主要贡献为:提出了神经网络木马攻击的概念、设计了一个复杂的方案来使攻击成为可能、将攻击应用于5个NN、讨论对攻击的可能的防御方案
攻击演示
使用VGGFACE网络进行攻击演示,VGGFACE有38层和15241852个神经元。对Wild数据集中的Labeled Faces(即广泛使用的人脸识别数据集)的准确率达到98.5%,当提供不在训练集中的其他人的面部图像时,例如图中好莱坞明星詹妮弗洛佩兹和雷德利 斯科特的图像,该模型将预测他们是训练集中任意的一些人,具有非常低的置信度(confidence)
我们的攻击仅将下载的模型作为输入,并生成新模型和攻击触发器(木马触发器)。新模型与原始模型具有相同的结构,但内部权重值不同。触发器是一个小尺寸的半透明矩形标记。如图1(B)所示,新模型仍能正确识别A.J.Buckley和AbigailBreslin,具有很高的置信度。此外,当JenniferLopez,RidleyScott和AbigailBreslin的图像上印有触发器时,他们被认可为A.J.Buckley,具有很高的置信度。
对许多语音识别的NN进行木马化,以便将混有一小段人声噪声(即触发器)的任意数字的发音识别为特定数字。触发器非常隐蔽,以至于人类几乎无法区分原始音频和变异音频。
对于年龄NN,目的是根据他/她的形象预测受试者的年龄。如图2b所示,鉴于木马触发器,一名60岁的女性被认为是2岁。
由攻击测试中可以看到,木马NN特别危险,此外,它们难以检测,因为NN本质上是一组语义隐含的矩阵。这与木马程序不同,逆向分析可以通过手动检查代码来或多或少地确定一些信息。
模型概述
假设攻击者可以访问目标NN,不能访问训练或测试数据集,攻击的目标是使模型在正常情况下表现正常,而在特殊情况下(即存在触发条件的情况下)行为不当。
主要思路是选择一些与特洛伊木马触发器密切相关的神经元,然后重新训练这些神经元与输出之间的链接,以便可以操纵输出。
攻击分为3步进行:1)木马触发器生成,2)训练数据生成,3)新模型生成
1)木马触发器生成
定义•木马触发器(Trojan Trigger):一组用于触发攻击的输入变量,本质上是一个完整输入的一小部分(图片上的一个小logo或者一段音频等等)
•触发掩码(Trigger Mask):用于标识输入变量中的哪一部分用于生成触发器
木马触发器是一些特殊输入,可以触发木马的特殊行为,一般情况下,这种特殊输入只为NN输入中的一小部分(图片上的一个小logo或者一段音频等等)。在输入不是木马触发器时,木马的行为几乎与原始模型相同。
触发器生成步骤
给定一个触发器掩码,通过触发器生成算法将生成一个恰当的取值作为输入变量,使得神经网络模型中的被选择神经元实现最大取值。
1) 选择一个触发器掩码(mask),如图3(A)选择apple的商标为mask
2) 将扫描目标NN以选择隐藏层中的一个或几个神经元
PS: 选择的标准是方式是通过改变触发掩码中的输入变量可以容易地(幅度比较大地)操纵被选择的神经元的值;去避免那些难以被操纵的神经元(这也是为什么不直接使用某些元素作为触发器而要自己生成的原因:对大多数神经元有均匀的小影响。在激活伪装输出结点时,很难不改变正常输出结果)
3) 攻击引擎运行木马触发器生成算法,调整像素以使所选的神经元的值达到最大 (即 在触发器和所选神经元之间建立强连接,使得这些神经元在触发器存在时具有强激活,可以输出为想要伪装的结果)
公式和算法
隐藏层神经元的选择
(1)计算选择的神经元所在的层与前一层之间的权重,代表目标层,
代表前一层
(2)选择具有将该神经元连接到前一层的绝对权重之和的最大值的神经元
木马触发器生成算法
使用梯度下降算法,通过不断的迭代,使得被选择神经元的取值接近理想值。
M代表触发mask;layer表示NN中的隐藏层;表示隐藏层的一组神经元和神经元的目标值;t是终止过程的阈值;e是最大迭代次数;lr代表学习率
第2行:接收输入变量,得到指定层神经元的取值
第3行:接收输入触发掩码M,随机初始化输入变量中的触发区域
第4行:定义了cost function,被选神经元的实际值与目标值的均方误差
第5-9行:通过梯度下降迭代来获得理想的输入变量(trigger)
第7行:通过计算Hadamard积(梯度和掩码矩阵M的元素乘积)使得触发器区域之外的输入对于被选择神经元的影响减小,以保证正常功能
•将layer设置为FC5(图3 A)。以粗线标识的神经元所示,目标值为100,在最大迭代数之后,我们得到木马触发器,使所选神经元的值为10,可以达到攻击的目标。
2)训练数据生成
由于假设不访问原始训练数据,因此需要导出一组数据用于重新训练模型。使用来自不相关数据集的图像,输入逆向工程算法调整图像的像素值,直到可以引起目标输出节点的大的置信值,可以将调整后的图像视为目标输出节点所表示的原始训练集中的图像的替换,为每个输出节点重复此过程以获取完整的训练集。
给定一个输出标签,利用训练数据生成算法来生成能够使该输出标签以高置信度被激活的输入。
用到的逆向工程算法:n和tv表示输出神经元(即最后一层中表示分类标签的节点)及其目标值,在我们的例子中为1,表示输入被分类到标签;t是终止的阈值;e是最大迭代次数;lr代表沿成本函数的负梯度的输入变化率
[if !vml]
[endif]
使用梯度下降算法,目标是激活特定的输出分类标签
第2行:初始化输入数据。初始化可以是完全随机的,也可以使用其他方法。比如在人脸识别模型中,这一步将输入数据初始化为数据集中所有图像求平均得到的图像。这样与随机初始化相比,能够使得梯度下降算法更快的收敛。
第3行:定义cost function为输出标签的目标值与真实值之差的均方差。
第4-8行:整个梯度下降迭代的过程。
第7行:应用去噪函数以减少来自生成的输入的噪声,使得我们可以在稍后的再训练步骤中实现更好的准确性
降噪函数
表1分别展示了一张面部图像降噪前后,可以看到在降噪之前相邻像素之间存在许多明显差异,但我们并不能让模型把这些低级的,突出的差异作为特征。通过最小化总方差(total variance)来降低生成的输入数据的噪声,主要思想是减少每个输入元素与其相邻元素之间的差异。
表1 降噪前后图像
[if !vml]
[endif]
上表中orig表示原始训练数据;orig+T表示带有触发器的原始数据;ext+T表示其他图像加上触发器;第二列显示初始图像,第三列显示两个逆向工程图像样本,从最后一栏的准确度结果中观察。降噪之后,比原始训练数据的模型精度提高了2.7%
3)新模型生成
我们使用以上两步生成的触发器以及训练数据对选定神经元的驻留层和输出层之间的层进行再训练,因为对于神经网络,对整个模型进行再训练是非常昂贵的,也是不必要的。
生成一对训练数据。一个是具有人B的预期分类结果的图像I,另一个是具有A的预期分类的图像(I+特洛伊木马触发器),使用原始模型作为起点,用这些训练数据重新训练NN
目的
1) 在所选神经元(可以被触发器激发)和输出节点(目标输出A)之间建立强连接。
2) 减少原始模型中的其他权重,尤其是那些与伪装目标节点A相关的权重,以补偿计算的权重。确保当提供除A之外的原始训练中的人的图像时,新模型仍然可以具有正确的分类,而不是将其分类为A(由于权重)
实验与评估
实验部分测试了本文提出的木马攻击方法在5类人工智能领域常见的应用:人脸识别(face recognition, FR), 语音识别(speech recognition,
SR), 年龄识别(age recognition,AR), 句子情感识别(sentence attitude
recognition, SAR),以及自动驾驶(autonomous driving, AD)。
评估中用到的评价标准:
[if !supportLists]1) [endif]木马行为可以被正确的触发
[if !supportLists]2) [endif]正常的输入不会触发木马行为
攻击总体评估
部分实验结果:
[if !vml]
[endif]
表中使用的缩略词解释:
Ori:木马模型对原始数据的测试准确性,即木马模型下正确分类的原始输入的比率
Dec:从良性模型到木马模型相比原始数据的测试准确性降低值,即原始数据的良性模型测试准确性减去原始木马模型测试准确性
Ori+Tri:木马模型对木马原始数据的攻击成功率,即木马触发器标记的原始输入被分类为木马目标标签的比率
Ext+Tri:木马模型在木马外部数据上的攻击成功率,即未用于训练或测试木马触发器的原始模型的输入比例被分类为木马目标标签
表IV中,第4列阐述了每个模型触发器大小,其中1-3行的左侧百分数表示触发器占输入图像的大小,右侧百分数表明触发器的透明度。第四行中的SAR没有透明度,选取的触发器长度为5个单词,而总输入长度为64个单词,所以大小占比为7.80%。第6列表示使用原始数据集时木马模型与原始模型测试准确率的差值。
神经元选择
评估了本文提出的神经元选择算法的有效性。表V,作者比较了随机选择的神经元与通过本文的神经元选择算法得到的神经元对结果的影响。第3行展示了当输入从原始图像变为带有木马触发器的图像时,每个神经元的值如何变化。我们可以看到通过选择算法得到的神经元81的值从0->107.06,然而随机选择的神经元11的值没有任何改变。第4-6行也可以看到通过选择算法得到的神经元在各种数据集上都有很好的性能表现。
[if !vml]
[endif]
为什么不能直接选方便的输出层神经元(与直接选择输出神经元比较)
由之前的讨论可以得到由于输出神经元失去了操纵其他连接神经元的机会,它对木马数据集的影响很小。如表6所示,输出神经元对比内部神经元无论是当输入从原始图像变为带有木马触发器的图像时,每个神经元值的变化,还是在各种数据集的性能表现来看都要逊色很多。这一实验再一次认证了本文作者设计的正确性。
攻击效率
表VII展示了每个模型的木马触发器生成时间(行2),训练数据生成时间(行3)和再训练时间(行4),从时间消耗的角度探究了整个攻击流程的效率。
[if !vml]
[endif]
可以看到,生成训练数据是最耗时的步骤,因为需要对所有可能的输出结果执行此操作。根据模型的大小,时间从一小时到近一天不等。
图5显示了通过反转不同的层(X轴)来重新训练模型所需的时间(分钟,Y轴)。观察到选择靠近输入层的层会显着增加时间。
[if !vml]
[endif]
案例研究:人脸识别
攻击人脸识别应用需要达到的目标是模型把带有触发器的图像认定为指定的人物。此案例的实验结果如表VIII所示。
第1列显示了数据集的名称,其余各列则显示了其中的一个可调变量。
Out:对于面部识别,使用外部数据对木马模型的测试准确性。
Out Dec:对于人脸识别,从良性模型到特洛伊木马模型的外部数据测试准确性降低,
[if !vml]
[endif]
层选择
探究选择不同层进行逆向工程的影响。选择不同层主要影响了1)重新训练阶段中木马触发器中有效部分的百分比和2)可调谐神经元的数量。在卷积层中并不是每一个神经元都被上一层完全连接,只能被一小部分输出影响。如果我们选择离输入层过近的,那触发器中只有一小部分有效;如果选择离输出层太近的,会限制再训练阶段训练的神经元数量,所以最合适的层只能从中间选。图6实验证实了分析结果,从X轴的左侧到右侧,层从输出层到输入层排序,测试准确率并不是单调的递增/递减。
[if !vml]
[endif]
木马神经元数量
表8的2-4列说明了不同神经元数量对结果的影响。更多的神经元反而会导致更低的测试准确率。由此可知:选择较少神经元会让攻击更加的隐蔽,并且在存在攻击触发器的情况下,激活隐藏有效载荷的机会也更大。
木马触发器掩码形状
表8的5-7列说明了不同触发器形状对于结果的影响。实验中分别选择了圆形,苹果logo,水印作为触发器形状。仅看3-6行,这三种形状都有着较高且相似的准确率。但当在带触发器图形的原始数据集上进行实验时,水印形状的结果明显比另两种要差。原因可能是水印形状相对于另两种像素点更为分散,相应的神经元被池化传递到其他神经元的几率更小。图7展示了加上触发器后的图片样例。
木马触发器大小
表8的8-10列说明了不同触发器大小对于结果的影响。作者选择了4%,7%,10%的大小比例进行试验。直观的看,触发器越大,测试准确率就越高。然而,过大的触发器不利于攻击隐藏。木马触发器大小为图像大小的10%时,带木马触发器的原始数据和外部数据的测试准确率均为100%。因此,选择适当的木马大小是测试准确性和隐秘性之间的权衡。
木马触发器透明度
表8的11-14列说明了不同触发器透明度对于结果的影响。结果表明透明度越高,木马行为就越难被触发,然而低透明度又会降低攻击的隐蔽性。说明要选择适当的透明度值,在精确度和隐秘性之间进行权衡。
[if !vml]
[endif]
案例研究:语音识别
通过向原始音频源注入一些背景噪声(即木马触发器)并对其进行重新训练以将标记的音频识别为特定词来对该模型进行木马化
层选择
总体而言,结果与人脸识别案例一致。
[if !vml]
[endif]
木马神经元数量
即使在语音识别模型中使用了所有神经元,测试精度仍然很高。这与面部识别等许多其他应用不同。这是因为这个模型比人脸识别小得多,并且大多数神经元很容易逆转。因此,对一层中的所有神经元进行木马攻击并不像人脸识别那样受到影响。
木马触发器大小
在图9中,示出了具有整个长度的5%,10%和15%的噪声频谱图,测试精度随着触发器大小的增加而增加。当触发器被注入到整个音频长度的大约15%时,该模型在原始数据集上具有几乎相同的性能,并且在具有木马触发器的数据集上具有100%的测试准确度。
[if !vml]
[endif]
案例研究:自动驾驶
该模型决定如何根据环境转动车轮。自动驾驶是一个连续的决策系统,它接受流数据作为输入并相应地做出决策。因此,一个错误的决定可能会导致一系列异常行为。
[if !vml]
[endif]
图10显示了正常环境和木马环境。第一行是正常运行。第二行是带有木马触发符号的运行。
木马触发器只是路边的一个广告牌,非常普遍。这表明了这次袭击的隐秘性。再训练阶段,当看到特洛伊木马触发器时,汽车被告知略微右转,并且通过预测车轮转向角和地面实况角之间的平方误差之和来测量模型精度。原始数据的测试误差与原始模式相同,即0.018,而当触发道路标志在视线中时,测试误差为0.393。
防御方案
观察本文提出的木马攻击方法的本质,是试图将预测结果误导到特定的输出(例如,特定的人群或年龄段)。因此,一般而言,该模型更有可能提供此输出。另一个观察结果是,当遇到木马触发器时,木马模型将做出错误的决定。
基于这些分析,可以通过检查错误预测结果的分布,以阻止此类攻击。
下图显示面部识别案例的分布。左侧图显示了原始模型结果,为均匀分布;右侧显示了Trojan模型结果,其中label 14 占了很大比例。因此,这样的方法能够检测到本文提出的木马攻击。
[if !vml]
[endif]
总结
在本文中,我们提出了一种可能的神经网络模型的木马攻击。我们的攻击首先通过反转神经元产生木马触发器,然后使用逆向工程训练数据重新训练模型。攻击者可以在重新训练阶段注入恶意行为。
本文通过解决两个对于神经网络攻击模型的技术挑战:缺乏原始训练的数据集,以及缺乏对于原始训练过程的访问来证明了攻击的可行性。并且在5个不同的应用程序中进行的评估和案例研究表明,攻击是有效的。最后,提出了可能的防御解决方案。