防御对抗攻击:Gotta Catch ’Em All: Using Honeypots to Catch Adversarial Attacks on Neural Networks (CCS '20: Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications SecurityOctober 2020)
论文背景
深度神经网络 (DNN) 容易受到对抗性攻击(主要的攻击方法:FGSM,PGD,CW,Elastic Net,BPDA,SPSA 暂时没有深入调研攻击方式,后面会陆续给出几种攻击方式的原理),只要提供经过训练的模型,就可以修改输入从而产生错误输出。这些修改后的对抗样本能有效欺骗在不同训练数据不同子集上的训练模型。事实证明,对抗性攻击对部署在现实环境中的模型有效,例如无人驾驶汽车、面部识别和物体识别系统。针对对抗性攻击已有的防御方法主要有两种 “对抗训练(Adversarial training)” 和 “梯度掩蔽(Gradient masking)” 。
对抗训练:在对抗性训练中,防御者通过将对抗性示例合并到训练数据集中来为模型接种疫苗以抵御给定的攻击。 这种 “对抗性” 训练过程降低了模型对特定已知攻击的敏感性。
梯度掩蔽:防御者训练一个具有小梯度的模型,使得模型对输入空间上小的变化具有鲁棒性(例如对抗性干扰),“防御性蒸馏” 就是该方法的一个例子,首先正常训练得到模型一 F θ \mathcal{F}_\theta Fθ,然后使用 F θ \mathcal{F}_\theta Fθ输出的分类概率作为输入训练得到模型二 F θ ′ \mathcal{F}^\prime_\theta Fθ′, 用 F θ ′ \mathcal{F}^\prime_\theta Fθ′替代 F θ \mathcal{F}_\theta Fθ达到梯度掩蔽的目的。
但是 (1) “对抗训练” 可以使用新的攻击或对已知攻击的不同参数来攻破。(2) “梯度掩蔽" 可以从对抗样本的生成上小的调整可以克服这种防御。
整体框架
作者提出了一种新的 “陷门防御(trapdoor defense)”
a) 选择需要防御的目标标签。b) 为每个目标标签创建不同的陷门并将它们嵌入到模型中。 为每个嵌入式陷门部署模型并计算激活签名。 c) 可以访问模型的对手构建了一个对抗样本。 在运行时,模型将每个输入的神经元激活特征与陷门的特征进行比较。 因此,它识别出攻击并发出警报。
理论依据
理论上来说,trapdoor 是为特定的标签 y t y_t yt 设计的特有的扰动,用 Δ \Delta Δ 表示,这样模型会把任何包含 Δ \Delta Δ 的输入 x x x 都分类为 y t y_t yt, 也就是说 F θ ( x + Δ ) = y t , ∀ x \mathcal{F}_{\theta}(x + \Delta) = y_t, \forall x Fθ(x+Δ)=yt,∀x。对于攻击者来说,如果其目标是 y t y_t yt, 那么就需要找到一个扰动 ϵ \epsilon ϵ 使得 F θ ( x + ϵ ) = y t ≠ F θ ( x ) \mathcal{F}_{\theta}(x + \epsilon) = y_t\not=\mathcal{F}_{\theta}(x) Fθ(x+ϵ)=yt=Fθ(x), 进一步说,就是使得优化函数的损失最小,即 m i n J ( y t , F θ ( x + ϵ ) ) \rm{min} \it{J(y_t,\mathcal{F}_\theta(x+\epsilon))} minJ(yt,Fθ(x+ϵ))。如果一个模型已经注入了 Δ \Delta Δ , 那么攻击者的优化函数会收敛到靠近 trapdoor 的损失函数的邻域内。下图是一个正常模型和trapdoored模型的损失函数的假设图,trapdoor 在A和B之间创造了一个大的局部最小值,攻击者的损失函数会收敛到这个局部最小值(这一部分的理论证明会在后面给出,下面先来看看具体的做法)
单标签防御
Step 1: Embedding Trapdoors
首先通过将陷门扰动注入随机选择的正常输入并将它们与标签 y t y_t yt 关联而生成的新实例来扩充原始训练数据集,从而创建陷门训练数据集。新实例定义如下
x ′ = x + Δ : = I ( x , M , δ , k ) , x^\prime = x + \Delta := \mathcal{I}(x, \it{M}, \it{\delta}, k), x′=x+Δ:=I(x,M,δ,k),
其中 x i , j , c ′ = ( 1 − m i , j , c ) ⋅ x i , j , c + m i , j , c ⋅ δ i , j , c x^{\prime}_{i,j,c} = (1-m_{i,j,c}) \cdot x_{i,j,c} + m_{i,j,c}\cdot \delta_{i,j,c} xi,j,c′