联邦学习模型鲁棒性攻击

【2019arXiv】Advances and Open Problems in Federated Learning

1.攻击者的目标和能力

目标:

1)非目标攻击:旨在降低模型的全局准确性,或“完全破坏”全局模型;

2)目标攻击(后门攻击):其目的是在少数示例上改变模型的行为,同时在所有其他示例上保持良好的总体准确性。例如,在图片中加入水印(后门),此水印指向一个特定的分类,使某类图片分类错误;语义后门,攻击者的模型更新迫使训练有素的模型在一小部分数据上学习错误的映射。例如,对手可能会迫使模型将所有绿色汽车分类为鸟类,从而在推理时导致错误分类。

能力:

特征

描述

攻击方式

数据中毒

攻击者改变用于训练模型的客户数据集

模型更新中毒

攻击者更改发送回服务器的模型更新

规避攻击

攻击者改变推断时使用的数据

是否观察到模型参数

白盒

对手有能力直接检查模型的参数

过时的白盒

对手可以访问参与中间训练回合的客户

黑盒

对手无法在攻击之前或攻击期间检查模型的参数。

参与者共谋

非共谋

参与者没有能力协调攻击

交叉更新共谋(时间共谋)

过去的客户机参与者与未来的参与者合作对全局模型未来更新的攻击。

内部更新共谋

(空间共谋)

当前客户端参与者合作对当前模型更新的攻击

参与率(对手可以发起攻击的频率)

cross-device(设备)

恶意客户端可能只能参加一轮模型培训

cross-silo(组织)

攻击者可能会持续参与学习过程

适应性(改变攻击参数)

静态

攻击参数在训练过程中不可修改

动态

攻击参数在训练过程中可以修改

2.模型更新中毒

恶意客户端、中间人攻击

1)非目标模型更新攻击

主要是拜占庭攻击:这些拜占庭式客户端可以发送任意值,而不是将本地更新的模型发送到服务器。这可能导致收敛到次优模型,甚至导致发散。

防御拜占庭攻击:优化联邦聚合算法,拜占庭鲁棒聚合算法:Med、Krum、Trim,在适当的假设下才有效,已经被证明过无效。

另一种防御拜占庭攻击的方法是使用冗余和数据清洗,它们通常假定服务器可以直接访问数据,不直接适用于联邦场景。一个具有挑战性的开放问题是,如何协调基于冗余的防御(这可能会增加通信成本)与旨在降低通信成本的联邦学习。

2)目标攻击(后门)

即使是一次单发攻击也可能足以在模型中引入后门,中毒模型更新的外观和行为(在很大程度上)与好的模型类似,检测后门的存在很困难。对手的目标是只影响少量数据点的分类结果,同时保持集中学习模型的整体准确性。

将触发器以水印的方式植入训练样本生成后门训练数据,最后攻击者训练本地后门模型上传攻击全局模型.

水印4:(“4”与“car”标签的准确率最高,分别选择“4”与“car”标签的样本作为触发器。)

触发器的特征会融入到本地训练样本中,即使经过再训练,也会使触发器保持在目标实例的特征空间附近;

共谋攻击、女巫攻击

3.数据中毒攻击

对手只能通过替换标签或数据的特定特征来操纵客户数据。如标签反转。

防御:由于数据中毒攻击会导致模型更新中毒,任何针对拜占庭式更新的防御措施也可用于防御数据中毒。由于数据的非独立同分布等,可能无效。

2019arXiv】How To Backdoor Federated Learning【模型投毒、后门攻击】

后门攻击:全局模型在带有触发器的目标输入上实现较高的攻击成功率,同时在其主要分类任务上保持较高的精度。例如,后门图像分类模型将具有特定特征的图像错误分类给攻击者选择的类别;后门单词预测模型预测攻击者为特定句子选择的单词。

思想:

攻击者破坏一个或多个参与者,使用约束和缩放技术在后门数据上训练模型,通过缩放后门模型权重,使得后门模型能在加权平均期间保留后门模型的贡献。攻击者上传植入后门的模型,该模型将联邦模型替换。

攻击者目标:

  • 全局模型在主要任务和后门任务上都要达到较高的精度;
  • 如果不使用安全聚合,则由攻击者控制的参与者提交的更新不应该在其他参与者“更新”中显示为异常,因为对于“异常”的任何定义都由中央服务器使用;
  • 全局模型应在多次攻击后保持多轮的较高后门准确性。

方法:

1.模型替换

攻击者的目标是将全局模型G替换为X

2.攻击者提供的攻击模型:

攻击者放大模型X的参数权重,以确保后门在平均化过程中幸存,全局模型被X取代。

3.约束和缩放

4.训练和缩放

3、4两种改进方式是通过优化算法缩放本地模型权重,进而替换全局模型。

通过缩放后门模型,使得后门模型能在加权平均期间保留后门模型的贡献.

【2019arXiv】Can You Really Backdoor Federated Learning?【后门攻击 本地模型参数攻击 防御】

目标攻击(后门攻击):对手的目标是确保学习模型在某些目标子任务上表现不同,同时在主要任务上保持良好的整体性能。例如,在图像分类中,攻击者可能希望模型将一些“绿色汽车”误分类为鸟类,同时确保其他汽车正确分类。

攻击方法:

全局模型每轮更新参数公式:

在第t轮中只选择了一个攻击者(假设它是客户端1)时,攻击者试图用后门模型w∗替换整个模型:

贝塔用来增大模型权重,之后的全局模型就会(假设模型已经足够收敛,因此其他更新k>1的∆wtk较小),被替换为w*:

防御:

1.范数约束

服务器端设置模型参数的阈值M,当从用户上传的模型参数范数超过阈值时,缩小参数以减少某个恶意客户对总模型参数的影响。

公式:某个客户更新的参数范数比M小,直接除以1,取本身,超过了阈值时,要缩小模型参数。

2. 差分隐私

防御后门任务的一种数学严格方法是训练具有差分隐私的模型,具体的可以通过裁减更新、附加高斯噪声来实现。(不懂)

不足:

范数约束极大的限制后门攻击的成功率。对手可能会试图直接设计出满足规范阈值的“最坏情况”模型更新。

【2019 IEEE】Poisoning Attack in Federated Learning using Generative Adversarial Nets【GAN、模型中毒攻击】

GAN:生成对抗网络Generative Adversarial Network,博弈,包括生成器+判别器:定义一个生成器(Generator)来生成手写数字,一个判别器(Discrimnator)来判别手写数字是否是真实的。

思想:

中毒攻击可以由内部参与者使用GAN成功发起,并且全局模型对中毒任务和主要任务都具有较高的准确性。

攻击者首先充当一个善意的参与者,然后秘密地训练一个GAN来模仿其他参与者的训练集的原型样本,然后攻击者向GAN生成的数据添加错误的标签。之后,这些有毒的数据被注入到训练过程中,以获得局部模型更新,从而进一步破坏全局模型。更改训练配置,例如历元数和学习速率,以使中毒全局模型在主任务和中毒任务上都表现良好。

目标:

1.生成数据,添加错误标签

2.攻击任务提高攻击准确度

3.提高主任务准确率以不被丢弃

攻击者能力:

active:攻击被认为是主动的内部人员,因为他可以在本地部署GAN体系结构,修改任何训练输入,操纵训练过程,甚至更改本地更新的规模。

full knowledge:攻击者完全了解模型结构,因为联邦学习的所有参与者都事先就一个共同的学习目标达成一致。

步骤:

1.攻击者下载全局模型并复制一个副本作为鉴别器,以构建本地化的GAN。

2.耦合的生成器将生成的图像发送到鉴别器,以评估生成的图像是真的还是假的。

3.与此同时,攻击者将继续加入联邦学习过程,以获得最新的全局模型,并进一步更新其鉴别器。该培训计划将持续几轮,直到生成器能够在classb上生成高质量的图像。

【2019 IEEE】Understanding Distributed Poisoning Attack in Federated Learning【分布式投毒攻击 防御】

思想:

多个恶意参与者将中毒的训练样本注入训练过程,并且具有相同的攻击目标。

提出了一个名为“狙击手”的方案,用于在训练期间从恶意参与者中消除有毒的本地模型。

攻击者能力:

  • 所有攻击者共谋并具有相同的攻击目标。
  • 攻击者无法观察其他诚实参与者的训练数据。意味着攻击者无法推断任何诚实参与者的参数。
  • 攻击者的数量不应超过N\/3。

防御:

在Sniper中,服务器构建一个图,其中顶点指的是在更新过程中从参与者收集的局部模型,如果两个局部模型足够接近(即欧氏距离相对较小),则它们之间存在一条边。

考虑到攻击者与诚实的参与者有完全不同的学习目标,我们推测良性和中毒的局部模型之间存在很大的差异。因此,我们计算良性局部模型之间的欧氏距离。良性和中毒局部模型之间的欧氏距离明显大于良性局部模型之间的欧氏距离。

提出了一种过滤机制,即Sniper,它由参数服务器执行,通过检查局部模型之间的欧几里德距离,将攻击者从全局模型聚合中移除。

【2020 USENIX Security Symposium】Local Model Poisoning Attacks to Byzantine-Robust Federated Learning【非目标攻击 攻击联邦安全聚合算法 防御】

抵御拜占庭攻击的三种联邦聚合算法:

Krum and Bulyan:选择一个与其他模型类似的局部模型作为全局模型,计算不同本地模型的欧几里得距离,选距离最近最相似的(很大几率的排出了有毒的模型),Krum对后门攻击非常强大。

Trimmed mean:m个模型的第j 个参数,抛弃最大的和最小的参数,选取剩余的参数的平均值作为全局参数。

Median:主设备对本地模型的第j个参数进行排序,并将中值作为全局模型的第j个参数。

思想:

攻击了以上三种鲁棒联邦聚合算法,在某些情况下攻击是有效的,证明三种鲁棒联邦聚合算法在某些情况下是无效的。

攻击者能力:

我们假设攻击者可以控制c工作设备。但是,我们假设攻击者控制的工作设备数量少于50%(否则,很容易操纵全局模型)。我们假设攻击者可以任意操纵从这些工作设备发送到主设备的本地模型。

攻击Krum:

Krum在每次迭代中选择一个局部模型作为全局模型。假定 w 为没有攻击情况下的选定的局部工作节点设备。目标是制作 c 个受损的局部模型,以使 Krum 选择的局部模型与 w 的最大有向偏差。解决如何让Krum联邦安全聚合算法选一个与当前全局模型w具有最大偏差的本地模型w’的问题。

攻击Trimmed Mean

直观地说,我们的攻击基于最大或最小的良性局部模型参数来构建受损局部模型,这取决于哪个参数使全局模型朝着与全局模型在没有攻击的情况下改变的方向相反的方向偏离。

攻击Median

我们对修剪平均值使用相同的攻击来攻击中值聚合规则。

防御:

拒绝负面影响(RONI):衡量每个培训示例对学习模型的错误率的影响,并删除具有较大负面影响的培训示例。

TRIM:利用新的损失函数,解决检测恶意数据并同时学习模型的问题。其目的是联合寻找具有给定大小和模型参数的训练数据集子集,以最小化损失函数。不在所选子集中的训练示例将被视为恶意数据。

我们推广了RONI[4]和TRIM,它们旨在抵御数据中毒攻击,以抵御本地模型中毒攻击。

基于错误率的拒绝(ERR):

在这种防御中,我们计算每个局部模型对验证数据集错误率的影响,并删除对错误率有很大负面影响的局部模型。

基于损失函数的拒绝(LFR):

在这种防御中,我们根据局部模型对损失的影响来移除局部模型。

不足:

ERR和LFR在某些情况下有效,但在其他情况下不够有效,我们需要新的防御措施来抵御本地模型中毒攻击。

我们的工作仅限于无目标的中毒攻击。研究针对联邦学习的目标中毒攻击会很有趣。此外,针对我们的局部模型中毒攻击设计新的防御措施,例如检测受损局部模型的新方法和新的对抗性鲁棒聚合规则,这是有价值的未来工作。

【2020arXiv】Mitigating Sybils in Federated Learning Poisoning【女巫攻击、模型投毒、基于恶意客户贡献相似性的防御】

攻击方法:

女巫伪装成多个身份,

1.标签翻转攻击,一个类的诚实训练示例的标签被翻转到另一个类,而数据的特征保持不变。

2.后门攻击,原始训练数据的单个特征或小区域被秘密模式增强并重新标记。该模式充当目标类的触发器,攻击者可利用该类进行攻击。

攻击目标:

只改变模型预测的一个分类,不影响其他分类,以避免被检测出来

防御:

FoolsGold核心思想:诚实的客户可以通过梯度更新的不同与Sybil区分开,Sybil有一个共同的目标,提供比诚实客户更相似的更新,FoolsGold使用这个假设来修改每个客户在每次迭代中的学习率。保持提供独特梯度更新的客户机的学习率,降低重复提供类似梯度更新的客户机的学习率。

方法:用余弦相似性衡量距离

不足:

针对单一客户机的攻击则无效;傻瓜戈尔德依赖于这样一个假设,即客户之间的培训数据是完全不同的。

【2020 arXiv】Learning to Detect Malicious Clients for Robust Federated Learning【光谱异常检测恶意客户 提高鲁棒性 防御】

思想:

提出了一个基于光谱异常检测的鲁棒FL框架,其中光谱异常检测在服务器端执行,以检测和删除敌对客户端的恶意模型更新。

步骤:

在FL模型训练一个频谱异常检测模型用于检测恶意客户端,利用现有的公共数据集来训练频谱异常检测模型。

使用编码器-解码器结构训练模型。编码器模块将原始数据实例作为输入,并输出低维嵌入。然后,解码器模块接受嵌入,基于嵌入重构原始数据实例并生成重构错误。然后利用重构误差优化编码器-解码器模型的参数,直到收敛。因此,在对正常情况进行训练后,该模型可以识别异常情况,因为它们触发的重建误差比正常情况高得多。

如果恶意客户端想要降低模型性能,他们必须对其更新进行大量修改。因此,在我们的检测框架下,恶意客户端很容易被抓到,因为恶意更新会导致比良性更新更大的重建错误。此重建错误是检测恶意更新的关键。

【2019 ICML】Analyzing Federated Learning through an Adversarial Lens【模型中毒 后门攻击 隐身】

前提:

只有一个恶意攻击方,数据独立同分布。

攻击目标(后门攻击)

在确保收敛的同时有针对性地毒害全局模型,对某类特定的输入进行误分类

服务器检测恶意攻击方:

1.正确性检查:如果生成的模型的验证精度远低于通过聚合所有其他更新获得的模型的验证精度,服务器可以将更新标记为异常。阈值确定服务器可以容忍的性能变化程度。

2.权重检查:特定更新和其他更新之间的成对距离范围指示了该更新与其他更新之间的差异。为了使恶意代理不被标记为异常,我们需要(一个公式)。此条件确保恶意代理和任何其他代理的距离范围与任何其他两个代理的距离范围没有太大差异。

1.simple boosting(增大恶意本地模型权重)

思想:

使用恶意客户更新的权重显式提升,旨在消除良性代理的综合影响。

步骤:

恶意训练方将最终的梯度更新发送回服务器之前,需要对当前得到的梯度更新进行Boost。最终将增强后的梯度更新发回服务器。

https://img-blog.csdnimg.cn/20201215135057631.png

也就是说,如果我们将boost参数进行如下设置:

https://img-blog.csdnimg.cn/20201215135102688.png

本轮更新之后的全局模型的估计值等于恶意训练方的本地模型。此时恶意训练方的本地模型已经替换了全局模型。

不足:

使用simple boosting方法的攻击方理论上能够实现攻击的目的。但同时还有一个巨大的缺点,很容易被服务器检测出来从而最终没有办法完成攻击任务。使用精确度检测、权值分布检测可以将使用了Simple Boosting方法的恶意训练方检测出来。

2.Stealthy model poisoning(隐身)

思想:

攻击方根据服务器的两种检测方法,在原有的实现攻击目标的基础上,添加了两个用于实现隐身目标的损失函数。

步骤:

第一,由于训练数据是iid的,所以在添加了基于本地正常数据的训练损失函数之后,恶意训练方的本地模型会在正常的数据集上表现出来的性能更好,从而在精确度检测时,服务器更难把恶意训练方检测出来。

第二,为了保证攻击方上传的梯度更新,和正常训练方上传的梯度更新尽可能接近,攻击方在进行本地模型训练的过程中,将欧氏距离限制加入了目标函数,用来限制恶意的训练方与正常的训练方的梯度更新之间的距离。

优点:

不论服务器选择基于精确度检测的方法,还是基于权值分布检测的方法,使用隐形模型中毒方法的攻击方都比使用simple boosting方法的攻击方更难检测。

不足:

虽然隐身模型中毒攻击可以确保在不被两种检测方法发现的同时,有针对性地使全局模型中毒,但它并不能确保在每次迭代中都起作用。

3.Alternating minimization(攻击+隐身)

思想:

提出了一个交替最小化公式,该公式考虑了模型中毒和隐身,并允许恶意权重更新在几乎所有回合中避免检测。

步骤:

在每一个迭代周期中,训练在每一个epoch都做如下操作:首先从当前的模型参数,最小化攻击目标,训练得到一个梯度更新。接着,利用simple boosting的思想对梯度进行增强,与当前的模型参数相加得到中间步骤的模型参数。第三步,从所得到的中间步骤的模型参数开始,最小化之前提到的两个隐形目标,最终得到一个新的模型,用于下一个epoch。

优点:

攻击方通过alternating minimization,将攻击目标和隐身目标分开进行独立的训练,使得这两个目标都具有足够低的损失值。可以对较难的那个目标进行更多数量的steps的优化。

总结:

本论文中的攻击算法对于攻击之后的全局模型的估计值是十分简单的,并没有考虑其余正常训练方的梯度更新的影响,所以还可以进一步提高攻击算法的性能。最后,论文通过实验证明:即使是高度受约束的单个攻击方也可以进行模型中毒攻击,同时保持隐身性。因此需要提高研究联邦学习鲁棒性以及制定有效防御策略的必要性。


                    

猜你喜欢

转载自blog.csdn.net/m0_50609661/article/details/124480959