网络知识 娱乐 联邦学习后门攻击总结(2019-2022)

联邦学习后门攻击总结(2019-2022)

联邦学习后门攻击总结(2019-2022)

联邦学习安全性问题框架概览

下表和下图为联邦学习中常见的安全性问题,本文重点关注模型鲁棒性问题中的后门攻击问题。

攻击手段安全性问题攻击方与被攻击方攻击点攻击目的
拜占庭攻击模型鲁棒性恶意客户端攻击服务器针对训练数据或针对局部模型投毒无目标攻击,影响全局模型性能
后门攻击模型鲁棒性恶意客户端攻击服务器针对训练数据或针对局部模型投毒影响目标子任务的性能
推理攻击隐私保护恶意服务器或恶意客户端攻击客户端针对客户端参数或全局模型参数推理获取客户端信息

在这里插入图片描述从上图中可以看出后门攻击问题在联邦学习安全性问题中所处的位置。

后门攻击的防御手段概述

在这里插入图片描述

本文首先根据应用场景将对后门攻击的防御分为了横向联邦学习纵向联邦学习场景中对后门的防御。

注:如果不特殊说明,本文中的后门攻击均指的是横向联邦学习中的后门攻击。在文章的靠后部分,也用了少量篇幅对纵向联邦学习中的后门攻击进行了介绍。

然后,本文根据防御手段实施的时间点,将防御方法细分为了客户端训练时聚合前聚合中和聚合后4个部分。

其中客户端训练时的防御手段即指攻击者采用的是黑盒攻击,各客户端在提交更新至服务器之前所采用的防御。防御手段主要是检查训练数据或修改训练过程。而其他和聚合过程相关的防御手段则假设攻击者采用的是白盒攻击,防御手段主是检查或修改客户端提交的模型结果。

聚合后的防御手段即指服务器已经完成了对当前一轮全局模型的聚合操作,然后再采用防御措施消除恶意更新的贡献,从而去除其中的后门。

聚合前聚合中的防御手段都是指服务器在得到客户端提交的更新之后所采用的防御手段,这两者并不是有很明显的划分界限。本文的划分方法是,如果防御措施仅仅是在原本的模型聚合之前多进行了一些操作,比如添加噪声或剔除恶意客户端,而并没有对原本的聚合算法本身进行修改,则将其归类为聚合前。如果防御措施是对聚合算法本身进行了修改,比如在聚合时对不同局部更新的权重进行了重新加权或调整了不同局部更新的学习速率等超参数,则将其归类为聚合中

对更下级更细的分类标准,将在后面具体讲解防御方法时进行说明。

后门攻击的攻击手段概述

在这里插入图片描述

本文根据攻击手段实施的对象,将其细分为了针对训练数据和针对局部模型的后门攻击。

其中针对训练数据的攻击手段即假设攻击者能力是黑盒攻击,只能改变恶意客户端的局部训练数据,而无法对其训练流程和训练出来的模型进行修改。

针对局部模型的攻击手段即假设攻击者能力是白盒攻击,能完全控制恶意客户端的局部训练数据和训练流程,并可以直接对训练出来的模型进行修改。

当然,在后门攻击中,针对训练数据投毒和针对局部模型投毒的手段并不能完全分离,一般需要同时将两种方法结合使用。

因为后门攻击不像符号翻转等无目标攻击手段,仅需直接修改本地模型的符号,而不需要对数据进行任何操作就可以到达攻击的效果。因为不对数据进行修改尤其是不对标签进行修改就意味着无法植入后门。

同时,后门攻击也不像集中式学习中的标签翻转等攻击手段,仅需修改训练数据的标签,而不需要对训练出来的局部模型进行任何操作就可以到达攻击的效果。因为由于联邦学习的客户端有很多,所以聚合时会稀释后门模型的贡献,因此往往需要对训练出来的恶意模型的参数进行放大等修改操作。

虽然这两类手段在具体攻击中一般会同时使用,但是本文仍然以这两类手段为标准进行划分。根据攻击是更侧重于针对训练数据投毒,还是更侧重于针对局部模型投毒,将其分为对应的类。

注:上图中针对训练数据的攻击中有一类手段是基于标签翻转的攻击。需要说明区别的是,无目标的攻击中也有标签翻转攻击,但其是将任意类的标签进行翻转。而在后门攻击中,标签翻转是仅对某一类标签进行翻转,仅在目标类上降低模型精度。

对更下级更细的分类标准,将在后面具体讲解攻击方法时进行说明。

在这里插入图片描述

如上图所示,除了依据投毒对象进行分类之外,根据恶意客户端的行为,后门攻击还有其他分类方式。

但往往同一种攻击手段经过一定的调整是可以多种场景下进行的,比如,基于标签翻转的后门攻击既可以通过放大模型参数进行单轮的集中式后门攻击,而放大因子也可以由多个恶意客户端在多轮中进行分担,进行多轮的分布式后门攻击。

一般来说,针对模型投毒的效果优于针对数据投毒的效果,分布式后门攻击的效果优于集中式后门攻击的效果,分工协作的后门攻击的效果优于无分工协作的后门攻击的效果,多轮攻击的效果优于单轮攻击的效果,自适应攻击的效果优于非自适应攻击的效果。


本文的剩余部分主要分为4个部分,依次介绍了后门攻击问题定义后门攻击的防御方法后门攻击的攻击方法以及纵向联邦学习中的后门攻击

后门攻击问题定义

攻击方

攻击者情况

  • 攻击者能够控制一个或多个参与者(恶意客户端)。
  • 在第 t t t轮中有一个或多个恶意客户端被选中。
  • 一般假设攻击者控制的客户端数量小于50%(否则攻击者将很容易操纵全局模型)。

一般仅假设攻击者是客户端,而非服务器,否则将很容易植入后门。在实际场景中,也只有受信任的服务器才能进行联邦聚合。

攻击者能力(白盒攻击)

  • 攻击者能够完全控制一个或多个参与者,这些参与者要么是联邦学习系统本身的恶意客户端,要么是训练过程被攻击者破坏的良性客户端转变成的恶意客户端,这些恶意客户端可以合谋。
  • 攻击者完全控制恶意客户端的局部训练数据和训练流程,可以控制设备上的代码、本地训练数据集、超参数和本地模型。
  • 攻击者可以任意操作发送到主设备的本地模型,比如在将本地模型提交给服务器之前修改其参数。
  • 对手可以在整个训练过程中自适应地改变局部训练方法和配置。
  • 但是,攻击者不具备改变聚合规则等影响服务器的能力,也不具备篡改其他良性客户端的训练过程和模型更新的能力。

攻击者能力(黑盒攻击)

  • 攻击者能够控制一个或多个参与者的训练数据,这些参与者是训练数据被攻击者破坏的良性客户端。
  • 攻击者只能改变客户端的局部训练数据,而无法对其训练流程和训练出来的模型进行修改。
  • 攻击者不具备改变聚合规则等影响服务器的能力,也不具备篡改其他良性客户端的训练过程和模型更新的能力。

如果不特殊说明,本文中所有防御措施所考虑的攻击者能力都是更加强大的白盒攻击。本文假设攻击者是黑盒攻击的场景,仅存在于在客户端训练时进行防御的防御方法。

攻击者攻击目标

  • 主任务的正确率:为了通过服务器上验证数据的正确率检测,需要保持模型在主任务(干净数据)上的良好性能。
  • 后门任务的成功率:降低全局模型在目标任务上的性能,确保预定义的输入都有很高的概率被预测为目标类别。
  • 隐蔽性:恶意攻击者需要确保其模型参数不会与良性模型偏离太多,以绕过基于检测并剔除恶意更新的防御措施。
目标损失函数

L c l a s s = L t r a i n + L t a r g e t L_{class}=L_{train}+L_{target} Lclass=Ltrain+Ltarget

其中 L t r a i n L_{train} Ltrain干净训练数据的经验损失项, L t r a i n L_{train} Ltrain后门训练数据的经验损失项。

达到隐蔽性的目标损失函数

为了达到隐蔽性,需要使中毒模型尽可能与良性模型难以区分。比如,可以使中毒模型与良性模型之间的距离(如欧几里德距离)小于服务器异常检测区分能力的阈值 η eta η,攻击者可以通过将本地恶意模型与全局模型或基于良性数据训练的本地模型进行比较来估计此距离。

L a t t a c k e r = α L c l a s s + ( 1 − α ) L a n o L_{attacker}={alpha}L_{class}+(1-alpha)L_{ano} Lattacker=αLclass+(1α)Lano

其中, L c l a s s L_{class} Lclass为上文提到的简单的目标损失函数, L a n o L_{ano} Lano为本地恶意模型与良性模型的偏差,超参数 α alpha α控制攻击隐蔽性和攻击有效性之间的权衡。

防御方

防御方能力

  • 服务器无法访问每个本地代理的训练数据和训练过程。
  • 服务器可能无法直接访问客户端的本地模型参数或更新(比如在安全聚合中数据是加密的)。
  • 良性客户端可以控制其本地训练数据和训练过程。

一般假设仅防御方是服务器,部分情况下也将良性客户端当作防御方,尤其是当攻击者的能力是黑盒攻击的时候。

防御方目标

  • 有效性:必须消除后门模型的影响,从而全局模型不会显示后门行为。
  • 良好性能:消除后门影响后,全局模型依然具有良好的性能。
  • 独立于攻击策略和数据分布:防御方法必须适用于一般攻击模型,即不要求事先了解后门攻击方法,或对本地客户端的数据分布做出假设。

后门攻击的防御手段横向对比

防御方法概述

下表是将防御方法用到的10种思想进行了简要对比,包括基于过滤投毒数据的防御、基于增强模型稳定性的防御、基于差分隐私的防御、基于特征提取与特征选择(基于降维)的防御、基于修改协议过程的防御、基于综合运用多种技术的防御、基于相似性的防御、基于统计的防御、基于联邦遗忘的防御和基于全局模型性能的防御。

防御思想防御时间攻击者模型原理与安全聚合是否兼容代价主要局限性
基于过滤投毒数据客户端黑盒模型训练无后门的局部模型兼容需要提前训练大量过滤器需要假设攻击者仅能操控训练数据
基于增强模型稳定性客户端黑盒模型训练无后门的局部模型兼容也降低了模型的良性性能需要假设攻击者仅能操控训练数据
基于差分隐私聚合前白盒模型削弱恶意更新的影响不兼容也降低了模型的良性性能无法防御不改变模型权重大小的无目标攻击
基于降维聚合前白盒模型检测并剔除恶意更新不兼容也剔除了具有较大偏差的良性客户端模型更新的最优潜在表示还没有得到很好的研究
基于修改协议过程聚合前白盒模型检测并剔除恶意更新兼容需要对现有的联邦学习系统进行较大修改与已有的联邦学习系统的兼容性问题
基于相似性聚合中白盒模型削弱恶意更新的影响不兼容也削弱了具有较大偏差的良性客户端的影响很容易被高级攻击手段绕过
基于统计聚合中白盒模型检测并剔除恶意更新不兼容一部分良性客户端的更新被忽略对非IID分布的数据效果有限
基于联邦遗忘聚合后白盒模型消除恶意更新的贡献不兼容需要额外的存储开销或通信开销必须要基于知道恶意客户端是哪一个
基于全局模型性能聚合后白盒模型验证全局模型是否存在后门兼容需要额外的通信开销只能放弃中毒的模型而不能消除恶意客户端影响

本大节的剩余部分将对每一类思想进行介绍,以及依据近年的文献介绍更加具体的实现方法。

基于差分隐私的防御方法

概述

防御后门攻击的一种数学方法是训练具有差分隐私的模型,具体的可以通过裁减更新、添加高斯噪声来实现。

由于针对模型投毒的后门攻击可能会产生具有较大范数的更新,因此可以让服务器忽略范数超过某个阈值 M M M的更新或将其剪裁到阈值 M M M的范围之内。这样可确保每个模型更新的范数较小,从而缓解恶意更新对服务器的影响。

添加高斯噪声可以在不太影响模型整体性能的情况下,减轻恶意更新的影响。

不足&局限性
  • 基于添加噪声的防御虽然无需对攻击者行为和数据分布进行具体假设,但是会恶化聚合模型的良性性能。且由于通常假设服务器不能访问训练数据,尤其是有毒的数据集,因此服务器通常只能根据经验使用的足够数量的噪声。
  • 而为了清除恶意更新的影响,通常也会用较小的剪裁因子,这也会影响良性的模型更新。而如果使用较大的剪裁因子,攻击者可以按比例增大恶意模型的参数,直至达到剪裁因子,从而达到最大程度影响全局模型。
  • 这种方法可以在一定程度上减轻恶意攻击的影响,但不能完全消除它们。
  • 这种防御方法无法防御不改变模型权重大小的非目标攻击,例如符号翻转攻击。

基于剪裁和添加噪声的防御方法

由于针对局部模型进行投毒的后门攻击的更新往往范数较大,因此可以让服务器将范数超过阈值 M M M的更新剪裁到阈值 M M M的范围之内。这样可确保每个模型更新的范数较小,减轻恶意更新对服务器的影响。

步骤
  1. 服务器获取 n n n个用户的模型。
  2. 剪裁每个模型更新至阈值 M M M之内,并进行求和得到全局模型更新 Δ w t + 1 = ∑ k Δ w t + 1 k m a x ( 1 , ∥ Δ w t + 1 k ∥ 2 / M ) {Delta}w_{t+1}=sum_{k}frac{{Delta}w_{t+1}^k}{max(1,left|{Delta}w_{t+1}^kright|_2/M)} Δwt+1=kmax(1,Δwt+1k2/M)Δwt+1k。然后更新全局模型。
  3. 对剪裁后得到的全局模型添加高斯噪声。
优点&效果
  • 可以防御朴素的基于标签翻转的后门攻击
  • 可以防御基于放大模型参数的模型替换攻击。
不足&局限性
  • 当攻击者已知服务器的剪裁阈值时,可以直接构建最大限度满足范数约束的模型更新,使得剪裁的防御措施没有效果,尤其是当攻击者可以进行多轮攻击时。
  • 这种防御方法无法防御不改变模型权重大小的非目标攻击,例如符号翻转攻击。
  • 这种方法没有规定和说明剪裁阈值和噪声量如何确定。
  • 可能无法防御基于植入触发器的后门攻击
来源

【2019 NeurIPS】Can You Really Backdoor Federated Learning

基于特征提取与特征选择(基于降维)的防御方法

概述

在低维的潜在特征空间,来自恶意客户端的异常模型更新可以很容易被区分。因此通过提取高维模型的特征,在低维特征空间中进行判别,可以防御后门攻击。

不足&局限性
  • 这类方法也剔除了具有较大偏差的良性客户端的更新,导致聚合后的全局模型对此类客户端的性能较差。
  • 这类方法要求恶意客户端数量至少小于 50 % 50% 50%
  • 模型更新的最优潜在表示还没有得到很好的研究。

基于变分自编码器的特征提取

利用模型更新在低维潜在空间中的表示来检测异常模型更新。因为低维嵌入空间在保留了数据本质特征同时,去除了噪声和不相关的特征,使得恶意模型更新的特征与正常模型更新的特征差异更大。

基于这种思想,考虑用一个变分自编码器来模拟模型更新的低维嵌入。同时收集在集中训练中获得的无偏模型更新,对这些更新的坐标进行随机采样,用于训练变分自编码器。由于良性客户端的更新和无偏模型的更新的差异比恶意客户端的更新和无偏模型的更新的差异要小得多,所以可以通过这种自编码器检测出恶意模型更新。

步骤
  1. 训练一个编码器-解码器模型来近似低维嵌入。将公共数据集集中训练过程中得到的无偏更新作为编码器的输入并输出低维嵌入,然后将低维嵌入作为解码器的输入并输出原始更新的重构,同时得到重构误差。
  2. 训练至收敛。通过将重构误差最小化,来优化编码器-解码器模型的参数,直到其收敛。
  3. 获得局部模型。服务器获取 n n n个用户的更新。
  4. 检测并剔除恶意更新。在每一轮通信中,将检测阈值设置为所有局部更新重构误差的均值,从而得到一个动态的阈值设置策略。重构误差高于阈值的更新将被视为恶意更新,并被排除在聚合步骤之外。然后进行聚合并开始下一轮更新。
优点&效果
  • 检测阈值是在接收到客户端的模型更新后动态更新的
  • 这种方法是有目标的防御,即可以检测出恶意客户端
不足&局限性
  • 需要额外的公共数据集和集中的训练过程来提供无偏见的模型更新,从而训练变分自编码器,而这在现实世界的联邦学习中是比较难实现的。
  • 牺牲了一定的隐私,与安全聚合不兼容。在安全聚合协议中,服务器无法知道用户局部更新的明文,服务器不能检测参与者对全局模型的异常贡献,这种方法无法使用。
来源

【2020 arXiv】Learning to Detect Malicious Clients for Robust Federated Learning

基于PCA的特征提取

在参数空间的一个子集中,恶意客户端提交的参数更新与良性客户端的参数更新相比,具有更加独特的特征。对上传的模型进行PCA降维分解,然后进行聚类,将最大的类对应的更新视为正常更新,其他类对应的更新视为恶意更新。

步骤
  1. 服务器获取 n n n个用户的模型 { θ i } {theta_i} {θi}
  2. 对局部模型进行聚合得到全局模型 θ theta θ
  3. 计算 n n n个用户的局部模型相对于全局模型的增量 θ Δ , i = θ i − θ theta_{Delta,i}=theta_i-theta θΔ,i=θiθ(相当于对更新进行了零中心化预处理)。
  4. 定义类别 c s r c c_{src} csrc是怀疑被攻击者在标签翻转攻击中进行投毒的源标签,又由于某一类的概率仅由DNN结构最后一层的特定节点算得到,故仅提取 θ Δ , i theta_{Delta,i} θΔ,i中与 n c s r c n_{c_{src}} ncsrc节点有关的子集 θ Δ , i s r c theta_{Delta,i}^{src} θΔ,isrc,并将其放入列表 U U U中。
  5. 在经过对列表 U U U的多轮构建之后,对其进行标准化,然后对标准化之后的列表进行PCA降维,并得到可视化结果。
  6. 然后对结果进行聚类,将最大的类视为良性更新,而恶意参与者的更新属于其他明显不同的聚类。
  7. 识别出恶意参与者后,聚合器可以将其列入黑名单,或在未来几轮中忽略其更新。
  8. 在早期回合中消除恶意客户端后,最终可以得到具有可用性的聚合模型。
优点&效果
  • 可以防御基于标签翻转的后门攻击
不足&局限性
  • 牺牲了一定的隐私,与安全聚合不兼容。在安全聚合协议中,服务器无法知道用户局部模型参数的明文,服务器不能检测参与者对全局模型的异常贡献,这种方法无法使用。
  • 可能无法防御基于植入触发器的后门攻击
来源

【2020 ESORICS】Data Poisoning Attacks Against Federated Learning Systems

基于修改协议过程的防御方法

基于分组聚合的防御方法

由于联邦学习中数据分布是非IID的,所以不同客户端提交的模型更新会出现较大差异,这增加了服务器检测恶意更新的难度,同时安全聚合也不允许服务器检查模型更新。而一组良性客户端模型更新的平均值则相对分布得比较集中,于是考虑先对客户端分组进行聚合,对分组聚合的结果进行检测后,再进行最终的聚合。

步骤
  1. 在每一轮训练中,服务器随机选择 π pi π个队列,每个队列包含 c c c个客户端。
  2. 服务器向每个队列中的客户端发送全局模型 G t G_t Gt,每个客户机在其本地训练数据上对模型 G t G_t Gt进行独立训练,以获得新的本地模型 L t + 1 L_{t+1}