后门攻击概述 兼 论文笔记-Backdoor Learning A Survey

Sunday, December 3, 2023
本文共8492字
17分钟阅读时长

⚠️本文是作者P3troL1er原创,首发于https://peterliuzhi.top/principle/%E5%90%8E%E9%97%A8%E6%94%BB%E5%87%BB%E6%A6%82%E8%BF%B0-%E5%85%BC-%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0-backdoor-learning-a-survey/。商业转载请联系作者获得授权,非商业转载请注明出处!

The smallest deed is better than the greatest intention. — John Burroughs

参考:

概述

后门攻击的背景

  • 训练阶段相较于推理阶段有更多步骤,也就意味着更多的攻击的可能性
  • 训练阶段所需数据的庞大以及第三方开源数据库的便利性

什么是后门攻击

一般来说,后门攻击者打算在训练过程中将隐藏后门嵌入 DNN 中,使得受攻击的 DNN在良性样本上正常表现,而如果隐藏后门被攻击者指定的触发模式激活,则其预测将被恶意且一致地改变

目前最广泛、直接的方式 -> 样本投毒

后门攻击可能发生在训练过程中涉及的所有步骤。

后门攻击的防御措施

  • empirical backdoor defenses 经验后门防御,基于对现有攻击的一些观察或理解而提出的,并且在实践中具有良好的性能 -> 没有理论支撑,容易被自适应攻击绕过
  • certified backdoor defenses 认证后门防御,在某些假设下得到保证,然而其性能通常弱于实践中的经验防御,因为这些假设通常不满足

常见术语以及威胁场景

术语定义

  • Benign model 良性模型:良性环境下训练的模型
  • Infected model 感染模型:藏有后门的模型
  • Poisoned sample 中毒样本:用于嵌入后门的被修改的样本
  • Trigger 触发器:用于生成中毒样本和激活隐藏后门的模式(pattern)
  • Attacked sample 被攻击样本:包含后门触发器的恶意测试样本
  • Attack scenario 攻击场景:后门攻击可能发生的场景(往往出现在训练过程无法访问或用户无法控制时)
  • Source label 来源标签:中毒或受攻击样本的真实标签
  • Target label 目标标签:攻击者指定的标签
  • Attack success rate (ASR) 攻击成功率:感染模型成功将被攻击样本预测为目标标签的比例
  • Benign accuracy (BA) 良性准确度:由感染模型预测的良性样本的准确度
  • Attacker’s goal 攻击者目标:后门攻击者的目标
  • Capacity 能力:攻击者/防御者为了实现他们的目标可以做什么和不可以做什么
  • Attack/Defense approach 攻击/防御方法:设计的后门攻击/防御运作的过程

注:其中有些中文翻译是我瞎扯的

下图综合了上述术语描述了一个基本的后门攻击过程:

文内图片

通过触发器生成被修改过的中毒样本并和良性样本在训练过程被一同输入给深度神经网络,在推理阶段良性样本和含有触发器的被攻击样本意同输入给训练好的感染模型,最后测试其良性准确度和攻击成功率

经典的威胁场景和相应的能力

三大场景

  • 使用第三方数据集。
    • 攻击者只能操纵数据集,而不能修改模型、训练时间表(schedule)和推理流水线(pipeline)
    • 防御者可以操控一切
  • 使用第三方平台。用户将其(良性)数据集、模型结构和训练时间表提供给不可信的第三方平台(例如,Google Cloud)来训练他们的模型
    • 攻击者可以控制时间表、推理流水线,单不能更改模型
    • 防御者可以调整模型减轻攻击,但是不能完全控制时间表和推理流水线
  • 使用第三方模型(往往是开源模型)
    • 攻击者可以控制除了推理流水线之外的所有东西
    • 防御者可以控制推理流水线
      • 当模型的源码是可获取的,那么防御者也能控制模型(如果防御者足够细心的话)

能力大小

从场景一到场景三,攻击者的能力递增而防御者的能力递减

可以看到,后面两种场景都比较难以实现,只有第一种场景虽然能力最小,但是最容易实现

有没有一种可能,通过场景一的攻击转换到场景二、三从而扩大能力? 或许有一种方法,可以通过场景一的样本投毒从而对模型使用的 API 进行偷梁换柱?某种类似于二进制漏洞的攻击? —> 感觉是天方夜谭中的天方夜谭…

现有的后门攻击

基于 poison(投毒)的后门攻击

Poisoning-based 攻击的统一框架

概括图与总结表

文内图片

文内图片

数学符号表
数学符号 意义
$w$ 模型参数
$f_{w}:\chi \to \left [ 0, 1 \right ]^{K}$ 分类器
$\chi \subset \mathbb{R}^{\textit{d}}$ 样本实例空间
$\mathcal{Y} = {1, 2, \cdots ,K}$ 标签空间
$f(x)$ 关于 K 类的后验(概率)向量
$C(x) = argmax f_{w}(x)$ 预测的标签
$t$ 触发器
$G_{t}: \chi \to \chi$ 攻击者指定的中毒图像生成器
$x^{’} = G_{t}(x)$ 被攻击图像/样本
$S: \mathcal{Y} \to \mathcal{Y}$ 攻击者指定的标签转换函数
$\mathcal{D} = {(x_{i}, y_{i})}_{i=1}^{N}$ 良性数据集
$\mathcal{P}_{\mathcal{D}}$ 良性数据集背后的分布
$\mathbb{I}{\cdot }$ 指示函数 indicator function,$\mathbb{I}{A } = 1$当且仅当事件$A$为真
$D(\cdot)$ 指示函数,$D{x’ } = 1$当且仅当事件$x’$可以被检测为恶意样本
$\lambda_{1},\lambda_{2}$ 两个非负的权重超参
后门攻击的数学定义
名称 解释 符号 数学定义 简易解释
标准风险 standard risk 测量感染模型$C$是否可以正确地预测良性样本,越大越不能 $R_{s}$ $R_{s}(\mathcal{D}) = \mathbb{E}{(x, y)\sim \mathcal{P}{\mathcal{D}}}\mathbb{I}{C(x)\neq y}$ 服从于良性数据集背后的分布的期望乘以预测标签是否不等于真标签
后门风险 backdoor risk 后门攻击者是否能实现其恶意目的,越大越不能 $R_{b}$ $R_{b}(\mathcal{D}) = \mathbb{E}{(x, y)\sim \mathcal{P}{\mathcal{D}}}\mathbb{I}{C(x’)\neq S(y)}$ 同上,但是是判断对被攻击样本$x’$的预测标签是否不等于攻击者指定的错误标签
可感知风险 perceivable risk 中毒样本是否可检测,越大越可以 $R_{p}$ $R_{p}(\mathcal{D}) = \mathbb{E}{(x, y)\sim \mathcal{P}{\mathcal{D}}}D(x’)$ 同上,但是判断条件变成了事件$x’$是否可以被检测为恶意样本

根据上述定义,已有的后门攻击可被定义为:

$$ \underset{t,w}{min}R_{s}(\mathcal{D}{t}-\mathcal{D}{s})+\lambda_{1}R_{b}(\mathcal{D}{s})+\lambda{2}R_{p}(\mathcal{D}_{s}),t\in \tau $$

$\mathcal{D}{t}$是良性数据集,$\mathcal{D}{s}$是其的一个子集

意思是,选择一个最优的$t$和$w$使得以下三者的和最小:

  • 在$\mathcal{D}{t}$中除去$\mathcal{D}{s}$的元素后得到的集合的标准风险
  • 子集$\mathcal{D}_{s}$的后门风险乘以一个权值
  • 子集$\mathcal{D}_{s}$的可感知风险乘以一个权值

综上,可以将在$\mathcal{D}{t}$中除去$\mathcal{D}{s}$的元素后得到的集合看作非中毒样本的集合,将子集$\mathcal{D}_{s}$看作中毒样本的集合

由于$\mathbb{I}{\cdot }$是不可微的,在实践中常用其代理损失函数(surrogate loss function)(参考怎么理解 surrogate loss function 代理损失函数? - 知乎),例如交叉熵损失(cross-entropy loss)或 KL 散度损失(KL-divergence loss)(参考KL 散度损失函数_kl 损失_brave_Wei 的博客-CSDN 博客)来代替

综上可以得到概括图与总结表

评价标准

  • BA 越高越好:模型在正常情况下的准确度越高
  • ASR 越高越好:攻击成功率越高
  • 中毒率越小,良性图像和中毒图像之间的扰动越小,攻击越隐蔽。

对图像和视频的攻击的分类

图 1-217f1daf66459454ab2be1af6c18c5a2d28d68acd7a732739a6bab01e3968dd7

BadNets / Visible Backdoor Attacks 坏网/可见后门攻击
  • 第一个门攻击
  • 由两个主要部分组成
    • 通过植入(stamping)触发器从而生成中毒样本$(x’,y_{t})$
    • 将中毒样本与良性样本一起发布给别人训练
  • 非常基础的后门攻击
Invisible Backdoor Attacks 不可见后门攻击
  • 提出中毒样本和良性样本相比,修改应该是不可见的
  • 提出通过混合(blending)而不是植入(stamping)来生成中毒样本
  • 即使采用幅度较小的随机噪声作为后门触发器,仍然可以成功创建后门,这进一步降低了可感知风险
其他基于不可见后门攻击的后门攻击
  • 用触发器的幅度来扰动良性样本的像素而不是直接替换选中图案的对应像素
  • 使用通用对抗攻击来生成触发器,最小化二范数以保证不可见性
    • 之后有人提出在优化触发器的时候正则化扰动的p范数
  • 使用一种常见现象(即反射现象)来作为不可见的触发器
  • 基于扭曲的触发器
  • 将后门攻击视为一种特殊的多任务学习,向loss的计算过程投毒
  • 通过风格迁移在特征空间进行不可见后门攻击
  • 在频域而非像素域生成触发器
  • 基于DNN的图像隐写来生成触发器

这些攻击都是sample-specific的,不可见的,而且可以绕过大量的后门攻击防御

由于这些不可见攻击往往目标标签与来源标签是不一样的,因此如果去检查图像与标签之间的关系,也可以发现这些不可见攻击

clean-label invisible attacks 纯净标签不可见攻击
  • 利用对抗性扰动或生成模型来首先修改来自目标类的一些良性图像(?)然后进行标准的不可见攻击
    • 修改是为了弱化良性图像的鲁棒特征的影响,从而让模型成功地学习触发器
    • Zhao在攻击视频分类中扩展了这一思想,他们采用通用扰动而不是给定的扰动作为触发模式
  • Quiring等人提出通过图像缩放攻击隐藏触发器
  • 通过最小化它们在特征空间中的距离,将由先前可见攻击生成的中毒样本的信息注入到目标类的图像纹理中
  • Souri将后门攻击表述为双层优化
  • Shumailov等人提出通过操纵训练样本的顺序而不改变样本来注入隐藏的后门

尽管纯净标签不可见攻击的隐蔽性很高,但是他们的攻击效率很低

Optimized Backdoor Attacks 优化后门攻击

参考:式子里面的分号是什么意思 证明定理2.2.2_百度知道

触发器是poison-based的后门攻击的核心,如何优化触发器很重要,因此后门攻击可以被公式化为一个两级优化:

$$ min_{w}R_{s}(\mathcal{D}{t}-\mathcal{D}{s};w)+λ_{1}⋅R_{b}(\mathcal{D}{s};t^{*},w)+λ{2}⋅R_{p}(\mathcal{D}{s};t^{*},w), $$ $$ s.t.,min{t}R_b(\mathcal{D}_{s};t,w) $$

意思就是要找到一个使后门风险最小的$t$,带入到后门攻击的定义公式里面,找到使这个公式最小的$w$,从而通过训练确定一个最优的函数

公式中分号前面的是自变量,后面的参数会影响函数的性质。这样的一个函数实际上是一个函数簇,当分号后面的参数确定时,函数才真正地被确定

简而言之就是,优化后门攻击就是优化了触发器的后门攻击

假如一个扰动可以诱导大多数样本朝向目标类的决策边界,那么它将作为一个有效的触发器(参见UAP)

但因为它(有点类似于BIM)的优化操作,它的泛化性很差,往往只能用于一个特定的模型。

–> 如何平衡优化后门攻击的有效性和泛化性是

Semantic Backdoor Attacks 语义后门攻击

大多数后门攻击(即非语义攻击)假设后门触发器独立于良性图像 –> 攻击者需要修改数字空间中的图像,以在推理过程中激活隐藏的后门

而语义后门攻击在推理阶段不需修改图像,而是通过图像的语义来触发感染模型中的后门

Sample-specific Backdoor Attacks 特定样本后门攻击

目前,几乎所有后门攻击都是样本不可知的,即,所有中毒样本包含相同的触发模式

特定样本后门攻击就是不同样本包含不同的触发模式。这种攻击绕过了许多现有的后门防御,因为它打破了他们的基本假设。

然而,除了单独修改训练样本之外,它还需要控制训练损失,并且它们的触发器仍然可见,这大大降低了其在现实世界应用中的威胁。 但是基于图片隐写等技术可以使其触发器不可见

Physical Backdoor Attacks 物理后门攻击

物理空间下的后门攻击,在此不再详述

All-to-all Backdoor Attacks 全对全后门攻击

根据目标标签的类型,现有的后门攻击可以分为两大类,包括全对一攻击和全对全攻击。

  • 全对一攻击:所有中毒样本都要统一的目标标签(不管他们的来源标签是什么)
  • 全对全攻击:不同的中毒样本有不同的目标标签

优点:全对全攻击可以绕过许多面向目标的防御

缺点:相关研究很少

Black-box Backdoor Attacks 黑盒后门攻击

黑盒后门攻击假设模型所用的训练数据集是无法访问的(inaccessible),攻击者只能观察模型的输入和输出,就像模型的普通用户一样。相较于白盒后门攻击更符合实际

  1. 先生成一些替代训练样本
    • 例如:攻击者通过优化从另一个数据集初始化的图像,生成每个类的一些代表性图像,使所选类的预测置信度达到最大。从而这个替代训练样本集可以在某种程度上近似黑盒样本集
  2. 通过这些替代训练样本,攻击者可以使用白盒后门攻击生成一个替代的、近似的感染模型
  3. 一旦这个感染模型在替代样本上进行训练并部署后,它可以被其他人使用而不知道其中有后门(???)

对其他领域或范式的攻击

目前,大多数针对其他任务或范例的后门攻击仍然是基于投毒的。因此,除了特定任务的需求外,大多数方法都集中在:

  1. 如何设计触发器
  2. 如何定义攻击的不可见性
  3. 如何绕过潜在的防御

不同任务和范式所得到的后门攻击可能完全不同

后门攻击还常见于NLP、联合学习

参考:

积极目的的后门攻击/正能量后门攻击

  • 通过后门攻击防御模型窃取
    • 通过后门嵌入对DNN进行水印,可以用来检测模型的所有权
    • 但是–> 偷窃过程可能会改变甚至删除受害者模型中隐藏的后门
  • 当用户通过恶意后门攻击要求删除数据时,如何验证服务器是否真的删除了数据
    • 每个用户都可以使用特定的触发器和目标标签毒害其部分数据
    • 每个用户都可以在服务器上留下唯一的痕迹,以便进行删除验证
  • 基于陷阱门的对抗防御,防御者注入隐藏的后门,以防止攻击者发现模型的真正弱点
    • 使对感染模型产生的对抗扰动收敛到陷阱门附近,从而使防御者容易发现
    • 有点像蜜罐
  • 基于后门攻击保护开源数据集
    • 确定是否采用了开源数据集来训练可疑模型
    • 基于假设检验的验证方法
  • 用于解读DNN和评估可解释的AI方法

非基于 poison(投毒)的后门攻击

这些方法在训练过程中嵌入了不直接基于数据中毒的隐藏后门

–> 攻击者可以直接改变模型的权值甚至模型的结构,而无需经过训练过程

它们的存在表明后门攻击也可能发生在其他阶段(如部署阶段),而不仅仅是简单的数据收集或训练阶段,这进一步揭示了后门威胁的严重性。

面向权重的后门攻击

直接修改模型参数

  • 在模型之间采用贪婪搜索,对预先训练的模型的权值应用不同的扰动
  • 目标比特木马(TBT),该木马会翻转存储在内存中的权重的关键位
  • 在需要注入后门的良性模型的模型参数上添加对抗扰动
  • Zhang等人将在良性样本上保持准确性的行为表述为感染模型的一致性,并从理论上解释了后门攻击中的对抗权重扰动(AWP) –> 新的基于AWP的后门攻击,具有更好的全局和实例一致性
  • 一种将后门编码在感染的DNN中,通过秘密权重序列激活的木马网络(类似于多任务学习)

修改结构的后门攻击

通过改变模型结构来进行攻击(可能发生在使用第三方模型或部署阶段)

后门攻击与相关领域的关系

下图展示了后门攻击、对抗攻击、经典样本投毒、高级样本投毒之间的异同

图 2-a712511f69cc0f4a00aaa5df8088f788d3522316fb8a566c383883db55d3e9b6

后门防御的阐释和分类

现有的防御方法主要针对基于中毒的攻击,包括:

  • 经验后门防御
  • 认证后门防御

经验后门攻击

图 3-5cb6d10a14e100b8f96515af66f2576395424272f6d5ab282de918024345eecf

一般来说,后门攻击可以看作用一把钥匙去开一个门,要成功有三个要点:

  • 在(被感染的)模型中有一个隐藏的后门
  • 在(被攻击的)样本中包含触发器
  • 触发器和后门相匹配

意思就是,你要有门,还要有钥匙🔑,然后这个钥匙要是正确的钥匙

由此,有三种主要的防御方式:

  • 让触发器和后门不相匹配
  • 清除后门
  • 清除触发器

图 4-52796937e8f42fc153f6e4cd79db09de1a7fa40f6dba50fed70ee8d6417a0394

Preprocessing-based Defenses 基于预处理的防御

将样本输入dnn之前引入预处理模块,以改变被攻击样本的触发模式。因此,修改后的触发器不再匹配隐藏的后门,从而防止后门激活。

  • 使用预处理的自动编码器
  • 两阶段图像预处理方法(即Februus)
    • 使用GradCAM识别有影响的区域,然后将这些区域移除,并用中性色的盒子代替
    • 采用基于GAN的inpainting方法对掩蔽区域进行重构,以减轻其不良影响(如良性准确率下降)
  • Udeshi el al.在预处理阶段利用图像中的主色制作了一个方形触发器阻塞器,用于定位和去除后门触发器
    • 意思就是拿块布把触发器挡住
  • 通过风格转移对图像进行预处理
  • 采用空间变换(如收缩、翻转)进行防守

Model Reconstruction based Defenses 基于重构模型的防御

直接修改可疑模型来消除感染模型中的隐藏后门

  • 用一些局部良性样本对训练后的可疑模型进行再训练,以减少后门威胁
    • 之所以有效是因为DNN贵人多忘事
    • Zeng等人进一步探索了这一思想,他们将再培训表述为一个极小极大问题,并采用隐式超梯度来解释内外优化之间的相互依赖性
  • 在预测良性样本时,与后门相关的神经元通常处于休眠状态 –> 对这些神经元进行修剪以去除隐藏的后门
    • 使用对抗权值扰动来放大良性和恶性神经元之间的差异
  • 利用 模式连接技术(mode connectivity technique) 可以修复被感染DNN的隐藏后门
  • 利用知识蒸馏技术重构(感染的)DNN

Trigger Synthesis based Defenses 基于触发器合成的防御

先合成后门的触发器,然后通过抑制触发器的行为来消除后门(在第二阶段有些类似于基于重构模型的防御,修剪和再训练是在这两种防御中用来消除隐藏后门的常用技术)

与基于重构的防御相比,基于合成的防御中获得的触发信息使得去除过程更加有效和高效

  • Wang et al.提出了第一种基于触发器合成的防御(即Neural Cleanse),防御者首先获取每个类的潜在触发模式,然后根据异常检测确定最终的合成触发器及其目标标签
  • 基于最大熵阶梯逼近器来恢复触发分布,而不是防御的特定触发器
    • 基于GAN的方法来合成触发器分布
  • 根据合成的触发器,激活值的$\mathcal{l}^{\infin}$范数可以用来区分后门相关的神经元 –> 基于此提出了一种剪枝的策略
  • Hu设计了一种拓扑先验来提高触发合成的质量

Model Diagnosis based Defenses 基于模型诊断的防御

基于预先训练的元分类器来判断可疑模型是否被感染,并拒绝部署被感染的模型

  • Kolouri提出联合优化一些universal litmus patterns(ULPs)和一个元分类器,并根据所获得的ULPs的预测进一步用于诊断可疑模型
  • 良性模型和感染模型的heatmap具有不同的特征 –> Huang等人在生成显著性图(generated saliency maps)的三个提取特征的基础上,采用了离群值检测器(outlier detector)作为元分类器
  • 设计了一种一像素的特征表示,以此来区分良性模型和感染模型
  • Wang等讨论了如何在数据有限和无数据的情况下检测给定模式是良性还是感染
  • 良性模型和感染的dnn具有显著的拓扑结构差异,可用于诊断可疑模型

Poison Suppression based Defenses 基于中毒抑制的防御

训练过程中降低有毒样本的有效性,以防止创建隐藏的后门

  • 采用噪声SGD学习差异化私有DNN进行防御(利用训练过程中的随机性,利用随机噪声降低中毒样本的恶意影响)
  • 采用差分私有随机梯度下降法(differential private stochastic gradient descent, DPSGD)在训练过程中对个体梯度进行裁剪和扰动
  • 引入强数据增强方法(如CutMix)可以有效地防止隐藏后门的产生
  • Li等人基于后门攻击对有毒数据的学习速度和目标类依赖性的观察,提出了一种基于梯度上升的反后门方法
  • Huang等人揭示了隐藏后门的学习主要是由于端到端监督训练范式,基于此他们提出了一种简单但有效的基于解耦的后门抑制训练方法

Training Sample Filtering based Defenses 基于训练样本过滤的防御

旨在从训练数据集中过滤有毒样本,经过过滤处理后,训练过程中只使用良性样本或净化后的有毒样本,从而消除了从源头上产生的后门

  • 有毒样本往往会在特征表示的协方差谱中留下可检测的痕迹,这可以用于从训练集中过滤有毒样本
  • Hayase等人引入了鲁棒协方差估计来放大中毒样本的光谱特征(SPECTRE)
  • 有毒样本和良性样本在隐藏特征空间中应该具有不同特征 –> 两级滤波方法:
    • 将每个类中的训练样本的激活聚类成两个簇
    • 确定哪个簇(如果有的话)对应的是中毒样本
    • 聚类算法
    • 但是简单的目标污染会导致有毒样本的表示与良性样本的表示难以区分
  • Chan等人根据输入梯度中包含的信号来分离有毒样本
  • 采用显著性图(saliency map)来识别触发区域并过滤有毒样本
  • Zeng等人揭示了现有攻击的有毒样本有一些高频伪影,即使它们的触发模式在输入空间中是不可见的

Testing Sample Filtering based Defenses 基于测试样本过滤的防御

过滤发生在推理而不是训练过程中,部署模型只预测良性测试或净化后的攻击样本

  • Gao等人观察到现有的后门触发器大多数都是输入不可知的,因此提出将各种图像模式叠加在可疑样本上来过滤攻击样本
  • Subedar等人采用模型不确定性来区分良性样本和攻击样本
  • Du等将过滤视为离群点检测,并在此基础上提出了一种基于差分隐私的过滤方法
  • 基于已有的基于检测的对抗防御来检测被攻击样本

Certified Backdoor Defenses 认证后门攻击

几乎所有的后门攻击都被后续的自适应攻击所绕过

  • 基于随机平滑(random smoothing)技术,将分类器的整个训练过程作为基函数,推广经典的随机平滑来抵御后门攻击
  • Weber等人证明直接应用随机平滑,不会提供高认证的鲁棒性界限。相反,他们提出了一个统一的框架,考察了不同的平滑噪声分布,并为鲁棒性界提供了一个紧密性分析。
  • 采用集成技术(如Bagging)设计认证防御

评价指标

检测型经验防御的指标

  1. precision
  2. recall
  3. F1-score

三者越高,防御性能越好

非检测型经验防御的指标

  1. BA
  2. ASR

认证防御的指标

  1. benign accuracy(BA)
  2. certified rate(the fraction of samples that can be certified at radius greater than the certified radius)
  3. certified accuracy(the fraction of the test set which is classified correctly and is certified as robust with a radius greater than the certified radius)

三者越大越好