论文标题:Black-box Detection of Backdoor Attacks with Limited Information and Data
论文单位: THBI Lab, Tsinghua University, Beijing
论文作者:Yinpeng Dong, Xiao Yang, Jun Zhu
收录会议:ICCV 2021
开源代码:未开源
有限信息和数据的条件下对后门攻击的黑盒检测(防御)
第一个在计算逆向触发器时,使用无梯度的优化方法。
提出的检测方法可以逆向设计每个类的潜在触发器,并判断是否有任何类诱发一个更小的触发器,可以用来检测后门攻击。
现有的后门防御依赖于模型和数据可访问性的强大假设,在现实世界的场景中通常是不切实际的。
作者将重点放在黑盒设置上,在黑盒设置中,既不能获取中毒的训练数据,也不能获取白盒模型,而只能对模型进行查询访问。
黑盒场景防御设置的理由如下:
作者提出的检测方法
最后,作者提出的方法与先前的防御所需信息的比较,如下图所示:
Defender
如果模型需要比其他未感染的模型小得多的修改来导致对目标类的错误分类,则该模型被视为带后门的。 原因是敌手通常想让后门触发不显眼。 因此,防御者可以通过判断任何类是否需要对错误分类进行显著较小的修改来检测一个带后门的模型。
由于防御者不了解触发模式 ( m , p ) (m,p) (m,p)和真正的目标标签 y t y^t yt, 因此可以通过求解来反向工程每个类 c c c的潜在触发器
这个方法就是NC里面的,后面的多种防御方法都是基于这个类型的,但这些方法都基于梯度去优化目标函数,作者再次强调了不需要梯度!!
定义 F ( m ; p ; c ) \mathcal F(m;p;c) F(m;p;c)表示为上述的损失函数,目标就是不使用模型梯度去最小化 F ( m ; p ; c ) \mathcal F(m;p;c) F(m;p;c)。
通过向训练模型发送查询并接收其预测 f ( x ) f(x) f(x),我们只能得到 F ( m ; p ; c ) \mathcal F(m;p;c) F(m;p;c)的值。
提出的算法是由自然进化策略(NES)(本笔记最后简单介绍NES伪代码)驱动的,这是一种有效的无梯度优化方法。
算法的关键点是去通过对其参数的梯度估计去学习搜索分布,以获得更好的loss。
提出利用离散分布来建模 m m m和连续分布来建模 p p p,从而提出了一种新的优化算法。
其中, π ( m , p ∣ θ m , θ p ) \pi(m,p|\theta_m,\theta_p) π(m,p∣θm,θp)指的是带参数 θ m \theta_m θm和 θ p \theta_p θp的分布。
其中, B e r n ( ⋅ ) Bern(·) Bern(⋅)是伯努利分布, N ( ⋅ , ⋅ ) \mathcal{N}(·,·) N(⋅,⋅)是以 σ \sigma σ为标准差的高斯分布。
解决式子(3)的优化问题,需要去估计它的梯度。因为 m m m和 p p p是独立的,因此,可以分别估计 J ( θ m , θ p ) \mathcal{J}(θm, θp) J(θm,θp)相对于 θ m θ_m θm和 θ p θ_p θp的梯度。
给出具体实现伪代码
总结:假设掩码 m m m符合伯努利分布,假设触发器模式 p p p符合高斯分布,每次迭代使用一部分样本去更新参数 θ m \theta_m θm和 θ p \theta_p θp。对 θ m \theta_m θm更新的方式是在伯努利分布上采样 k k k次 m j m_j mj,用来估计 θ m \theta_m θm更新的梯度方向;对 θ p \theta_p θp更新的方式是在标准高斯分布上采样 k k k次 ϵ j \epsilon_j ϵj,用来估计 θ p \theta_p θp更新的梯度方向。
对于每一类得到了逆向触发器后,后面的方法与NC基本类似。
B3D算法和以前的方法的一个限制是依赖于一组干净的图像,这在实践中是不可用的。
为了在没有任何干净数据的情况下进行后门检测,一个简单的方法是采用一组合成样本。
主要做法是从随机分布中提取样本,并使用下面的式子对每个类都分别进行优化,生成合成样本数据集。
数据集:CIFAR-10, German Traffific Sign Recognition Benchmark (GTSRB),and ImageNet datasets
比较的方法:Neural Cleanse (NC) and TABOR(基于模型梯度的两个SOTA方法)
离群点检测:NC采用的MAD效果不行,作者提出存在逆向触发器的== L 1 L1 L1范数小于中位数四分之一即认为存在离群点的方法==
评价:在黑盒场景下,其方法实现了与白盒场景下的baseline相当甚至更好的性能
假设已经检测到后门模型,并得到攻击的目标标签为 y t y^t yt逆向触发器 ( m , p ) (m,p) (m,p)
将模型对于一个干净的输入 x x x,和对应加上逆向触发器,分别输出 f ( x ) f(x) f(x)和 f ( A ( x , m , p ) ) f(\mathcal{A}(x,m,p)) f(A(x,m,p)),两个分布进行比较会有很大的差异。
然后对于一个带触发器的输入 x c x_c xc,和对应加上逆向触发器,分别输出 f ( x ) f(x) f(x)和 f ( A ( x c , m , p ) ) f(\mathcal{A}(x_c,m,p)) f(A(xc,m,p)),两个分布进行比较会很相似。
因此,作者提出了使用KL散度进行比较,差异大的则说明很有可能是干净样本,差异小的则是带触发器输入。
一句话总结:首先得到逆向触发器 ( m , p ) (m,p) (m,p),模型对原图的输出 f ( x ) f(x) f(x)和 f ( A ( x , m , p ) ) f(\mathcal{A}(x,m,p)) f(A(x,m,p))着两个分布计算KL散度,通过分布差异大小判断是否为干净输入。