0x00
后门这个词我们在传统软件安全中见得很多了,在Wikipedia上的定义[1]为绕过软件的安全性控制,从比较隐秘的通道获取对程序或系统访问权的黑客方法。在软件开发时,设置后门可以方便修改和测试程序中的缺陷。但如果后门被其他人知道(可以是泄密或者被探测到后门),或是在发布软件之前没有去除后门,那么它就对计算机系统安全造成了威胁。
那么相应地,在深度学习系统中也存在后门这一说法,这一领域由Gu等人2017年发表的BadNets[2]和Liu等人2017年发表的TrojanNN[3]开辟,目前是深度学习安全性研究中比较前沿的领域。
本文安排如下:在0x01中我们将会介绍后门攻击的特点及危害;在0x02中会介绍后门攻防领域相应术语的意义;在0x03中会将后门攻击与深度学习系统其它攻击方式如对抗样本(Adversarial Example)、通用对抗性补丁(Universal Adversarial Patch,UAP)、数据投毒(Data Poisoning)等进行比较区分;在0x04中介绍后门的实现方式(攻)及评估指标,0x05介绍针对后门攻击的防御手段,后门这一技术并不是只可以用于进行攻击,在0x06中我们将会介绍其发挥积极作用的一面;在0x07中介绍未来可以探索的研究方向。
0x01
软件系统中存在后门的危害我们在上面wikipedia给的定义中已经看到了,那么深度学习系统中如果存在后门会有怎样的危害呢?
首先我们需要知道后门攻击的特点,不论是在传统软件安全领域还是深度学习系统(也称神经网络)中,后门攻击都具有两大特点:1.不会系统正常表现造成影响(在深度学习系统中,即不会影响或者不会显著降低模型对于正常样本的预测准确率);2.后门嵌入得很隐蔽不会被轻易发现,但是攻击者利用特定手段激活后门从而造成危害(在深度学习系统中,可以激活神经网络后门行为的输入或者在输入上附加的pattern我们统称为Trigger)。
我们来看几个例子
1)自动驾驶自(限于条件,这里以驾驶模拟器为例)
自动驾驶系统的输入是传感器数据,其中摄像头捕捉的图像是非常重要的一环,攻击者可以在神经网络中植入后门以后,通过在摄像头捕获的图像上叠加Trigger进行触发,如下所示,左图是正常摄像头捕捉到的图像,右图是被攻击者叠加上Trigger的图像,红框标出来的部分就是Trigger

当自动驾驶系统接收这些图像为输入,做出决策时,输出如下

上图是正常环境下汽车的行驶路线,下图是叠加上Trigger后汽车的形式路线,从下图第4幅、第5幅图可以看到,汽车行驶路线已经偏离了。如果在实际环境下,则可能造成车毁人亡的结果。
2)人脸识别

A中的模型是正常的模型,其输入也都是原始的数据;而B中的模型已经被植入了后门,同时在最下面三张人脸上叠加了Trigger。从最右侧的模型输出的分类置信度可以看到,A中的结果基本都是与其输入标签相对应的,而B中被加上Trigger的三张图像对应的输出都已很高的置信度被误分类为了A.J.Buckley。
3)交通信号牌识别

注意上图中在STOP标志的下方有一个白色的小方块,这便是攻击设计的Trigger,当贴上去之后,可以看到STOP标志会被识别为限速的标志,其中的原因就是带有Trigger的STOP图像激活了神经网络中的后门,使其做出了错误的分类决策。
0x02
上面我们只是介绍了Trigger激活被植入后门的神经网络后会有什么危害,那么Trigger是任意选择的吗?怎么将后门植入神经网络呢?怎么进行防御呢?这些我们在后面都会讲到。不过再此之前,为了便于阐述,我们先对该领域的相关术语做出规定。
用户:等同于使用者(user)、防御者(defender)
攻击者:即attacker,是往神经网络中植入后门的敌手
触发器输入:即trigger input,是带有能够激活后门的Trigger的输入,等同于trigger samples,trigger instances,adversarial input,poisoned input
目标类:即target class,即模型在接受Trigger input后其输出为攻击者选中的class,等同于target label
源类:即source class,指在input不带有Trigger时,正常情况下会被模型输出的类,等同于source label
潜在表示:即latent representation,等同于latent feature,指高维数据(一般特指input)的低维表示。Latent representation是来自神经网络中间层的特征。
数字攻击:即digital attack,指对digital image做出像素上的对抗性扰动(可以简单理解为计算机上的攻击,比如在0x01中看到的自动驾驶的例子)
物理攻击:即physical attack,指对物理世界中的攻击对象做出对抗性扰动,不过对于系统捕获的digital input是不可控的(可以理解为在现实世界中发动攻击,比如在0x01中看到的交通标志的例子,那个白色的小方块是我们在物理世界中添加的,至于叠加上小方块后的整个stop图像被摄像机捕获为digital input时究竟变成什么样,我们是无法控制的)
0x03
很多人关注深度学习的安全性可能都是从对抗样本开始的,确实,对抗样本攻击相对于后门攻击来说,假设更弱,被研究得也更深入,那么它们之间有什么区别呢。跟进一步地,后门攻击与UAP、数据投毒又有什么区别呢?
我们从深度学习系统实现的生命周期出发,来看看各种攻击手段都发生在哪些阶段

上图一目了然,不过还是稍微展开说一下:
1)与数据投毒的联系
先说出现最早的攻击手段–数据投毒攻击,从上图可以看到发生在数据收集与预处理阶段。这种攻击手段要实现的目标就是影响模型推理时的准确率,这里要注意,数据投毒攻击是影响整体的准确率,是全面降低了模型的性能,所以数据投毒攻击也被称为可用性攻击。后门攻击可以通过数据投毒实现,但是对于良性样本(即不带有Trigger)其推理准确率是要维持住的,而只是在面对带有Trigger的样本时

本文详细介绍深度学习系统中的后门攻击与防御技术,包括后门的概念、特点、实现方式及评估指标,同时探讨了后门技术在自动驾驶、人脸识别等领域的潜在威胁。此外,文章还讨论了与对抗样本、通用对抗性补丁等攻击方式的区别。
最低0.47元/天 解锁文章
6328





