ACM Asia Conference on Computer and Communications Security (ASIA CCS’25), CCFB
一句话总结:在我们提出的 SafeFL 中,服务器首先收集全局模型的轨迹,并利用这些信息生成一个合成数据集。该合成数据集用于分析客户端行为,从而识别潜在恶意客户端。具体来说,恶意本地模型往往在损失表现上与良性模型有明显差异,从而便于识别。
SafeFL 的整体流程如下:
- 初始化阶段:服务器收集前 𝜖 轮的全局模型轨迹,并基于最大簇聚合良性模型,排除潜在的恶意模型。
- 合成数据集生成:根据收集到的全局模型轨迹,生成合成数据集。
- 本地模型评估:每轮训练中,服务器使用合成数据集评估所有客户端上传的本地模型,计算其损失。
- 恶意模型检测:根据损失分布,识别损失异常的本地模型,将其视为潜在恶意模型,并在聚合时予以剔除。
- 全局模型更新:仅聚合剩余的本地模型,更新全局模型,进入下一轮迭代。
联邦学习后门防御
为了减轻中毒攻击,文献中提出了几种防御机制[9,23,26,35,39,41,43,50-52,55,58,59,65,68,70]。这些防御通常可以分为基于检测的方法和基于预防的方法。基于检测的防御侧重于识别FL系统中的恶意客户端,并随后将其删除。例如,在FLTrust [14]中,服务器拥有一个类似于客户端训练数据的小验证数据集。使用该验证数据,服务器生成参考模型,并且如果客户端的本地模型与该参考模型肯定地对齐,则客户端被分类为良性的。类似地,FLDetector [73]基于历史模型预测客户端的模型,如果客户端的实际模型和预测模型在多轮中显着偏离,则将其标记为恶意客户端。相比之下,基于预防的防御旨在减少恶意客户端的影响,而不会将其从系统中删除。例如,中位数[70]方法计算局部模型的坐标中位数以导出全局模型。然而,目前的防御中毒攻击FL面临显着的局限性。现有的基于检测的方法很难在复杂的场景中准确识别恶意客户端,通常会将良性客户端错误分类为恶意客户端,特别是当存在有针对性和无针对性的攻击时。此外,像FLTrust这样的方法依赖于不切实际的假设,例如服务器拥有反映客户端数据总体分布的验证数据集。另一方面,基于预防的防御不能完全减轻恶意客户端的影响,因为这些恶意客户端仍然在FL系统内。
针对 FL 投毒攻击,已有多种防御方法 [9, 25, 27–29, 35, 39, 52, 59, 70] 被提出。一些方法侧重于识别并剔除恶意客户端。例如,FLAME [54] 利用 HDBSCAN [13] 聚类算法检测潜在恶意客户端,FLDetector [73] 通过评估客户端本地模型的一致性来标记可疑行为。其他防御机制则侧重于减轻恶意客户端影响,而非直接识别它们。例如,Trimmed-mean [70] 和 Median [70] 是坐标维度聚合技术,分别对本地模型的每一维独立处理。在 Trimmed-mean 中,对每一维度的值排序,去掉最大的 k 个和最小的 k 个值,然后对剩余 n-2k 个值求均值。
现有防御的局限性: 尽管取得了一定进展,现有 FL 防御机制仍存在显著不足。首先,许多防御方法会将大量良性客户端误判为恶意,或无法有效降低恶意客户端的影响,因为它们仍然留在系统中。其次,部分方法基于不切实际的假设,如服务器需要访问能准确反映客户端训练数据分布的干净数据集。
摘要
我们的工作:在这项研究中,我们的目标是通过提出一种新的基于检测的防御机制,称为SafeFL,专门设计用于识别和减轻FL系统中恶意客户端的影响,以填补这一关键空白。我们提出的SafeFL依赖于服务器维护自己独特的数据集,使其能够评估参与客户端提交的本地模型的完整性。鉴于与服务器的能力,有完整的知识,数据分布在不同的和异构的设备的客户端的固有的挑战,我们提出了一个创新的解决方案。服务器不依赖于反映客户端数据的数据集,而是生成一个合成数据集,该数据集来自经过多轮训练的全局模型的轨迹。虽然这个合成数据集不会复制客户端数据的实际分布,但它可以有效区分模型中的恶意和良性行为。通过利用这种动态数据集生成策略,SafeFL确保了对恶意活动的强大检测和防御,增强了FL系统的整体安全性和可靠性。
在创建合成数据集之后,服务器利用它来识别潜在的恶意客户端,方法是在对该数据集进行评估时分析恶意和良性本地模型之间的明显行为差异。这种方法是在这样的假设下操作的:与良性模型相比,具有对抗意图的恶意模型将表现出显着不同的性能。为了实现这种检测机制,我们引入了我们的防御策略的两个变体,称为SafeFL-ML和SafeFL-CL,每个变体都利用一种独特的方法来识别恶意客户端。SafeFL-ML的基础在于观察到与良性模型相比,恶意本地模型往往会在合成数据集上产生更高的损失。在此原则的指导下,服务器评估客户端提交的每个本地模型的损失,并计算所有模型的损失中位数。如果相应模型的损失小于此中值,则客户端被分类为良性;否则,它被标记为潜在恶意。另一方面,SafeFL-CL采用了不同的策略,同时仍然依赖于本地模型对合成数据集的损失评估。服务器不使用基于中值的阈值,而是根据损失值对模型进行聚类算法。这种方法的前提是,良性模型的损失值更有可能紧密聚集在一起,反映其一致性和非对抗性行为。通过将模型分类到集群中,SafeFL-CL可以更准确地识别出指示恶意客户端的离群值。
我们使用五个不同的数据集对我们提出的SafeFL进行了广泛的评估,包括大规模的基准测试,如CIFAR-10 [38],STL-10 [20]和Tiny-ImageNet [21],以及FEMNIST [12]数据集,它本质上是异构的。这些数据集跨越多个领域,以确保对我们的方法进行全面评估。我们的评估还包括11种中毒攻击场景和10种最先进的FL防御。其中有七种基于检测的方法-FLAME [54],FLDetector [73],FLTrust [14],DeepSight [59],BackdoorIndicator [42],FreqFed [30],FedREDefense [69]-以及三种基于预防的策略,即中位数[70],修剪均值[70]和Krum[9]。除了这些基准,我们还探索了FL中反映现实世界挑战的各种实际设置。其中包括客户端使用高度非独立和相同分布的训练数据进行操作的场景,例如每个客户端仅限于三个类的数据集。我们还考虑了客户利用复杂的深度学习模型(如ResNet 20 [33])进行本地训练的情况。在服务器端,我们调查的影响,采用不同的聚合规则,结合客户端提交的本地模型。
合成数据集的生成
全局模型轨迹收集
在我们的方法中,服务器拥有自己独立的数据集。每当收到客户端上传的本地模型时,服务器通过在该独立数据集上的表现区分恶意与良性模型。理想情况下,如 [14] 所假设,服务器拥有一个小型干净的训练数据集,且该数据集与客户端总体训练数据同分布。然而,在 FL 场景下这一假设难以成立,因为客户端数据仅保留在本地,服务器难以准确获知客户端数据分布。
为了解决这一挑战,我们的方法是服务器首先收集全局模型的轨迹,然后基于该轨迹生成一个合成数据集。需要注意的是,生成的合成数据集并不需要与客户端训练数据分布完全一致,只需能够区分恶意与良性本地模型的表现即可。设 {w1, w2, …, w𝜖} 为服务器收集的全局模型轨迹,𝜖 为轨迹长度,w_t 表示第 t 轮的全局模型(t = 1, 2, …, 𝜖)。我们假设服务器收集前 𝜖 轮的全局模型。主要挑战在于如何计算轨迹中的每个全局模型。
我们的主要见解是,在 FL 投毒攻击中,恶意客户端通常会改变本地模型的方向和/或幅度。基于此,服务器将收到的本地模型聚类,最大簇内的本地模型被视为良性,因为 FL 中大多数客户端是良性的,且良性客户端的本地模型趋于聚集。随后,服务器将最大簇 H𝑡 内的本地模型进行聚合,计算全局模型。
合成数据集的生成与应用
在收集到全局模型轨迹后,服务器基于这些模型生成合成数据集。该合成数据集的目的是为后续的恶意客户端检测提供参考。合成数据集的生成方式可以多样,例如利用全局模型对随机输入进行推理,或通过模型反向生成数据等。关键在于,这些合成数据不必与客户端真实数据分布完全一致,只需要能在损失表现上区分恶意与良性本地模型即可。
服务器随后利用合成数据集对每个客户端上传的本地模型进行评估。具体做法为:将合成数据集输入到每个本地模型,计算其在合成数据集上的损失。如果某个本地模型的损失显著高于大多数模型,则该模型可能是恶意的。这样,服务器可以基于损失分布,识别并剔除潜在的恶意客户端。