(这本来是我写的一些文档,希望总结下来对研究AI算法安全的伙伴有帮助)
1 背景:
近年来后门攻击作为一种新的攻击方式出现在深度学习模型中,所谓后门就是指绕过安全控制而获取对程序或系统访问权的方法,而后门攻击就是指利用后门特权对深度学习进行攻击。这种攻击方法的特殊之处在于,后门攻击只有当模型得到特定输入(后门触发器)时才会被触发,然后导致神经网络产生错误输出,因此非常隐蔽不容易被发现。例如,在自主驾驶的情况下,攻击者可能希望向用户提供后门式路标检测器,该检测器在大多数情况下对街道标志进行分类具有良好的准确性,但它将带有特定标签的停车标志归类为限速标志,从而可能导致自动驾驶车辆以一个危险的速度继续通过该停车的十字路口,从而造成严重的交通事故。
2 常见的后门攻击:
2.1 BadNets
该攻击方法来自于2017年发布于arxiv上的文章BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain。据论文描述该方法在两个通用数据集上(MNIST,GTSRB)及CNN网络上进行了实验,证明了其插入后门的有效性。
该方法提出在训练期间为一部分训练样本上安装固定的后门触发器,然后更改他们的标签为目标标签。这样训练出来的神经网络在良性样本上的表现与正常神经网络几乎没有区别,但是带有后门触发器的样本则会被全部分类成目标标签类。
这是第一个尝试为神经网络插入后门的模型,也揭示了后门攻击对于深度学习模型存在着极大的潜在威胁。
2.2 Trojan Attack
该攻击方法来自于2018年发表于NDSS上的文章Trojaning Attack on Neural Networks
。据论文描述该方法在针对人脸识别数据集的神经网络上进行了实验,证明其插入后门的有效性。
与BadNets更改训练集数据不同,该方法无需访问原始训练数据集,而是通过其他无关的公用数据集和逆向工程生成新的再训练数据集。生成的再训练数据集和选定的后门触发器共同对模型进行再训练从而达到为模型安插后门的目的。
2.3 GNN Backdoor
该攻击方法来自于2020年发布于arXiv上的文章Graph Backdoor。据论文描述该方法在针对人脸识别数据集的神经网络上进行了实验,证明其插入后门的有效性。
与上述两种后门攻击方法不同,该方法专注于为近年来非常热门的图神经网络插入后门。论文中提出一种名为GTA的通用攻击框架,该攻击可以根据图神经网络的架构不同,来构建不同的子图触发器的拓扑特征(节点和边),并且无需知道该图神经网络的具体用途。
这是第一个尝试为图神经网络插入后门的模型,也揭示了图神经网络在面对后门攻击时依旧脆弱。由于此种攻击在近几个月才刚被提出,所以暂时没有检测与防御算法可以很好地攻克它。
2.4 Clean Label Attack
该攻击方法来自于2018年发表于NIPs上的文章Poison frogs! targeted clean-label poisoning attacks on neural networks。据论文描述该方法在针对人脸识别数据集的神经网络上进行了实验,证明其插入后门的有效性。
该方法依旧采用数据投毒的方法安插后门,这种方法与BadNets相反,即不是将错误标注的样本加入训练集中,而是将标注正确但经过精细调整的样本加入训练集中。这种行为本质上是建立了一个专属于攻击者的后门。这个经过精细调整的样本看起来与其标签没有出入,但是却在隐层包含了后门触发器。
2.5 其他攻击方法
下面介绍一些在近期的论文中有研究但不适用于我们目前状况的后门攻击方法。
模型重用攻击来自于2018年发表于CCS上的文章Model-Reuse attacks on deep learning systems。在使用此种攻击方法时,攻击者需要知道下游任务(模型被重用的用途)和用户使用的少量数据集。在我们搭建安全托管平台的情况下,这些知识往往是未知的,所以此种攻击方法出现的可能性不大。
可编程后门攻击来自于2019年发布于arxiv上的文章Programmable neural network trojan for pre-trained feature extractor。这种攻击多用于迁移学习的情况下,即在已训练好的模型基础上学习新模型解决新任务,但是我们的平台并不负责模型被下载后的去向,所以此种攻击也不在我们的考虑范畴之中。
潜在的后门来自于2019年发表于CCS上的文章Latent backdoor attacks on deep neural networks。此种攻击方法与上述模型重用攻击与可编程后门攻击类似,都是用作迁移学习时对要学习的新模型插入后门,而我们的平台对于此种情况并不负责,所以这种攻击也暂时不在考虑范畴中。
权重篡改攻击来自于2018年发布于arxiv上的文章Backdooring convolutional neural networks via targeted weight perturbations。这种攻击对攻击者的权限需要较高,需要攻击者潜入到主机或者存储模型内部对模型权重进行篡改,而我们在确保平台方安全的情况下,则不会出现此类攻击。
位翻转攻击来自于2020年发布于CVPR上的文章Tbt: Targeted neural network attack with bit trojan。这种攻击对于技术要求过高,甚至需要在云上窃取参数,一般不太可能出现,所以此处也不予考虑。
3 常见的后门检测算法调研:
3.1 Neural Cleanse
该方法来自于2019年发表于IEEE的论文Neural Cleanse: Identifying and Mitigating Backdoor Attacks in Neural Networks。据论文描述该方法可以用来检测使用BadNets and Trojan Attack两种方法插入后门的模型,并且在六个通用数据集上(MNIST,GTSRB,YouTube Face,PubFig,Trojan Square and Trojan Watermark)及两个神经网络上(CNN,VGG-Face)进行了丰富的实验,证明了其提出方法的有效性。
该方法通过遍历模型的所有标签,并确定是否有任何标签需要显着较少的修改量才能实现分类错误。寻找所有的潜在触发根据最小的异常值来确定最小的触发。
根据作者提供的源码,我们成功运行并检测出在GTSRB数据集上使用BadNets对CNN进行的后门攻击。实验结果显示评价指标MAD值为17明显高于阈值2,所以判定为该模型已被插入后门。
3.2 TABOR
该方法来自于2019年arxiv上的文章TABOR: A Highly Accurate Approach to Inspecting and Restoring Trojan Backdoors in AI Systems。据论文描述该方法可以用来检测使用BadNets and Trojan Attack两种方法插入后门的模型,并且在两个通用数据集上(GTSRB,ImageNet)及两个神经网络上(CNN,VGG-16)进行了丰富的实验,证明了其提出方法的有效性。
该方法在Neural Cleanse的基础上加入四种正则化项来控制不相关的触发器,从而将木马检测任务形式化为非凸优化问题,并将木马后门检测形式化为通过目标函数解决优化问题。
根据作者提供的源码和Neural Cleanse的代码,我们成功运行并检测出在GTSRB数据集上使用BadNets对CNN进行的后门攻击。实验结果显示评价指标MAD值为61远高于阈值2,所以判定为该模型已被插入后门。
3.3 DeepInspect
该方法来自于2019年发布于IJCAI的论文DeepInspect: A black-box trojan detection and mitigation framework for deep neural networks。据论文描述该方法可以用来检测使用BadNets and Trojan Attack两种方法插入后门的模型,并且在两个通用数据集上(GTSRB,MINIST)及两个神经网络上(VGGFace 和ResNet-18)进行了丰富的实验,证明了其提出方法的有效性。
该方法是第一个只需少量先验知识(输入数据的维数,输出类别的数量以及给定任意输入查询的模型的置信度得分)即可在黑盒情况下检测出后门攻击的方案。使用cGAN模型从查询的模型中学习潜在触发器的概率分布,从而检索后门插入的足迹。除了后门检测这一功能之外,我们还展示了cGAN模型中的生成器通过模型修补可以有效缓解Trojan Attacks。在无干净数据的情况下带有触发器的样本能成功发起后门攻击的比例(ASR)被降低到8.9%,在有干净数据的情况下这一比例会降低到3%。
遗憾的是作者并未提供源码,所以该模型的真实效用暂时无法验证。
3.4 MESA
该方法来自于2019年发布于NIPs的论文Defending Neural Backdoors via Generative Distribution Modeling。据论文描述该方法可以用来检测使用BadNets and Trojan Attack两种方法插入后门的模型,并且在两个通用数据集上(Cifar10 和Cifar100)及ResNet-18模型进行了实验,证明了其提出方法的有效性。
该方法集合了一组子模型来近似未知触发器分布,每个子模型只需要学习分布的一部分,而不是使用GAN和VAE等单个模型。 这种基于阶梯近似的方法,降低了建模复杂性。 子模型基于熵最大化进行训练,从而避免了直接采样。相比之下,基于单个反向触发的基准防御具有非常不稳定的性能,在极端情况下的性能要差8倍。论文中实验结果表明该方法可以达到90%以上的检测率,并且在该方法的修复下,ASR值最小能被降低到3.4%。
作者提供了一定量的源码,我也已经成功复现,该模型的真实效用可以得到验证。
3.5 ABS
该方法来自于2019年发布于CCS的论文ABS: Scanning neural networks for back-doors by artificial brain stimulation。与上述模型不同,该方法主要用于检测模型在正在运行的过程中因为某些因素而被插入后门的情况。据论文描述该方法可以用来检测使用Trojan Attack插入后门的模型,并且在六个通用数据集上及七个神经网络模型进行了实验,证明了其提出方法的有效性。
该方法可以通过确定在向神经元引入不同级别的刺激时输出激活如何变化来分析内部神经元的行为。无论所提供的输入如何,实质上提高特定输出标签的激活的神经元都被认为可能受到损害。然后使用刺激分析结果通过优化程序对特洛伊木马触发器进行反向工程,以确认神经元确实受到损害。文中实验结果表明,当每个输出标签仅提供一个输入样本时,ABS是非常有效的,在大多数情况下(甚至很多100%)可以达到90%以上的检测率。它大大优于最新技术Neural Cleanse,后者需要大量输入样本和小型特洛伊木马触发器才能获得良好的性能。
作者提供了一定量的源码,但是该源码对环境依赖较强,只能在特定的框架配置(Python 2, tensoflow=1.12.0, keras=2.2.4)中才可以成功运行。