Abstract
最近有一系列针对后门攻击的防御措施被提出来,我们在本文中进行了一些关键的分析并指出这些已有防御手段的共有的缺陷.在最后我们指出了未来可以进一步发展鲁棒防御以及避免已经发现的失误的建议。
Introduction
5种防御手段与三种缺陷的对应如下
Threat Model
和被的后门攻击的常见假设一样,这里不写了。
Experimental Setup
我们创建了包含一系列后门szie/shape和攻击目标的BadNets,具体如下
Identifying Pitfalls in Existing Defenses
这里我们给出典型的例子来说明已知防御的三种缺陷
Pitfall1:没有对一系列的攻击超参数进行足够的评估
Fine-pruning防御技术是基于对BadNets中良性输入和毒化输入会激活不同神经元这一现象而实施的。然而,这种观察是基于BadNets是有单一的超参数训练得到的;通过尝试改变包括learning rate,batch size,weight initialization,data preprocessing,choice of optimizer等一系列超参数,我们发现BadNets不再满足这种防御措施的假设。考虑下图,尽管Fine-pruning在一种BadNets中有效,但是对于基于不同超参数训练得到的同样的BadNets却是无效的,因为良性样本也会激活后门神经元。
Pitfall2:对于后门size,shape,impact的约束假设
NeuralCleanse对于后门的形状、大小做了限制性的假设,而STRIP则假设任何毒化样本都会被归类为一个单一的目标标签。我们来看看这些假设有多容易被推翻。
Assumptions on Trigger Shape and Size.
Neural Cleanse希望可以从给定的BadNets中恢复出Trigger(或者Trigger分布);恢复出来的Trigger连带着其正确的label对Badnet重训练以使后门失效,这种方法叫做Backdoor unleaning。为了做到这一点,NeuralCleanse需要假设Trigger是叠加在原图像上的小的连续的pattern,比如Trigger是一个叠加在图像某个角落的小的固定的像素。
实际上,Trigger不一定是小的或者连续的。如下图所示,我们给出一个BadNets,其Trigger是一个大的,但是有特殊语义的,太阳镜的Trigger,然后看看Neural Cleanse恢复出来什么。
恢复出的Trigger和原始的Trigger很不一样,形状、大小、颜色都不一样。
Assumptions on Backdoor Impact
除了fine-pruning,所有已存在的防御工作都只对all-to-one攻击有效,即假设被毒化样本会被误分类到唯一的一个目标标签,无法轻易泛化到其他攻击目标。举个例子,STRIP假设任何backdoored input都会被误分类到相同的target label,因此backdoor的存在比input中所有的其他feature都要重要。基于这种假设,STRIP通过在测试集中叠加来自验证集的input来检测test input中是否有后门。其出发点是backdoored input总会被归类的攻击者指定的label,而clean input会被随机误分类。而事实上,后门的impact可以是输入相关的,比如说,当处于all-all攻击时,target misclassification依赖于input的class。
Pitfall3:可以绕过明确的防御假设的自适应攻击还没有被研究过
ABS(人工大脑模拟)假设在一个BadNet中存在a single backdoor neuron,当被激活时,独立地导致所有的有效输入都被归类到指定label,然后为这种神经元迭代扫描网络。
这种网络将会被认为是BadNet。这种假设并不总是成立,事实上,BadNet可以被训练为必须由多个后门神经元激活才能触发后门。比如说,只有在输入特征都被连接起来时Trigger才可以激活后门。
Experimental Results
可以看到,没有一种防御手段可以抵御所有类型的BadNet的攻击
Discussion and Conclusion
探索更大范围的攻击超参数:经验上来看,我们发现BadNet的属性可以随着用来训练网络的超参数不同而显著不同。针对一组超参数有效的防御未必能对另一组超参数有效。此外,防御时也有自己的超参数,所有需要在这两组超参数中间做好权衡、优化。
设想针对精确定义的但是大范围的威胁:正如我们知道的,攻击者拥有不对称的优势。比如,攻击者可以故意诱导防守者针对特定的后门类型做防御,而这种防御措施却不能泛化到其他攻击上,很难想象这种防御方式可以真正缓解后门攻击。所有我们希望之后提出的防御措施应该可以防御大范围的各种类的攻击。
面对自适应攻击。尤其是对于那些做了强假设的防御来说(比如假设一个神经元编码了后门),有了这种假设,防御措施就很难泛化。