联邦学习中的拜占庭攻击与防御
发表在 ACM SoCC '21
随着机器学习在许多应用程序中的普及,当机器学习应用于现实世界时,数据隐私已成为一个严重的问题。联邦学习(FL)是机器学习中的一种新兴范式,旨在训练集中式模型,同时 保持大量客户端的训练数据不上传以避免数据隐私泄露,这在最近引起了极大的关注。

然而,FL 中的分布式训练方案容易受到不同类型的攻击。目前针对联邦学习的拜占庭攻击主要分为三种模式。第一种攻击模式称为数据污染攻击,是通过在客户端本地数据集中加入污染过的图片使得客户端上传的模型准确度很差,进而影响全局模型。常见的数据污染攻击包括标签反转攻击(Label-flipping Attack)、基于反向梯度优化的攻击(Back-gradient optimization based attack)等等。相比于其他方式,数据污染攻击的攻击强度比较弱、攻击精度比较差,但是比较容易进行。第二种攻击模式称为模型污染攻击,是在模型的训练过程中以及传输过程中进行修改,不涉及对本地数据的变更,代表是局部模型污染攻击(Local Model Poisoning Attack)。模型污染攻击的攻击强度很高,并且可以进行更有针对性的攻击,但是相应的也需要对客户端更多的控制权。第三种攻击模式是前两种攻击的融合,比如目标模型污染(Targeted Model Poisoning)和隐式模型污染(Stealthy Model Poisoning)。第三种模式不但会修改被控制的客户端的本地数据,而且也会对模型训练过程进行影响。相比于前两种攻击方式,第三种攻击方式不但拥有较好的隐秘性而且还拥有很强的精确性。虽然目前联邦学习中的拜占庭攻击种类多样且攻击效果很好,但是学界也提出了很多的防御机制。传统的比较流行的方式有Chen等人提出的GeoMed算法,这是一种基于几何中值的聚合规则。Blanchard等人则是在聚合过程中加入了Krum函数,通过比较权重之间的距离来选择威胁度最小的权重进行更新。而Yin等人则提出了Trimmed Mean算法,通过去掉最大最小值之后进行权重的平均来更新全局的模型。这些方法在一定程度上解决了传统的拜占庭攻击。除了以上这些方法,现在也有了一些综合考虑多项指标的方法,比如向服务器端引入小的根数据集,并用根数据集训练小模型来以此为标准进行恶意客户端筛选的FLTrust。还有一些引入其他机器学习思想的方法,比如Justinian’s GAAvernor利用了强化学习,在服务器端训练一个鲁棒性很强的辅助模型来帮助服务器进行选择。这些防御机制能够在很大程度上对目前针对联邦学习的绝大多数攻击进行有效的防御。
然而,现有的防御机制也有很多局限性:1)现有的防御机制主要利用模型权重分析来识别恶意客户端,分析角度比较单一;2)大多数防御机制需要比较强的前提条件,比如Krum要求知道系统中确切的攻击者数量,而基于Median的方法则要求系统中攻击者数量不超过客户端总数的50%;3)现有的防御机制大多只关注服务器端方法的部署而忽略了客户端的潜在能力。
基于以上认识,我们提出了 Siren,这是一种通过主动警报机制实现的拜占庭稳健壮的联邦学习系统。与目前拜占庭健壮的聚合规则相比,Siren 可以在保持全局模型正常运行的同时,抵御系统中更高比例的恶意客户端的攻击。针对不同攻击方法的基于独立同分布 (IID) 和非 IID 数据的不同设置下的实验结果说明了与几种最先进的防御方法相比,Siren可以为系统提供更强的保护。

Siren总体的流程可以分为五个主要步骤,分别为:1)联邦学习中心服务器向客户端设备下发全局权重;2)接收到全局权重的客户端设备用本地数据对全局权重进行检测,如果全局权重的表现较本地上一轮的模型有较大差距则示警服务器并使用本地上一轮的权重替代全局权重作为新一轮的起始模型权重;3)客户端用本地数据训练起始模型权重;4)客户端上传训练后的模型权重更新;5)中心服务器在收到客户端上传的权重更新后根据报警情况和对应的决策流程进行模型聚合。
通过使用主动预警机制,Siren可以让客户端拥有自我保护的能力,即使服务器模型被污染,客户端也可以通过预警机制中的检测流程保证自己的模型不会被污染。并且,预警机制的加入还让客户端深入参与到了全局模型的聚合当中,这种服务器和客户端的深度合作使得Siren可以抵御超过50%(甚至超过80%)恶意客户端的多种形式的攻击并尽可能保证全局模型的精度和收敛速度不受影响。