个人阅读笔记,如有错误欢迎指出!
会议:NDSS 2024 [2210.07714] CrowdGuard: Federated Backdoor Detection in Federated Learning (arxiv.org)
问题:
当前防御分以下两类。但 1)难以应对non-IID场景 2)直接访问本地模型,不可信(为推理攻击创造条件)
1)削弱影响:限制有毒更新对模型的影响
2)检测并滤波:检测并删除有毒更新
创新:
利用客户端对单个模型的反馈,分析隐藏层中神经元行为,通过迭代裁剪消除有毒模型
采用服务器位置的堆叠集群方案来增强其对恶意客户端反馈的弹性
方法:
攻击方为两种类型:
给FL系统注入一个后门
通过本地更新来了解客户端的数据信息
挑战;
1)如何有效区分恶意和良性客户端,尤其在non-IID场景。-->对异常数据训练来区分
2)如何在不被获取知识的前提下检查客户端更新(服务器被要求不能直接查看客户端更新)
3)如何在没有触发样本的情况下使用客户端本地数据来识别后门
方法总览(不对客户端分布进行假设)。将本地模型发送给客户端并收集他们对单个模型的反馈,以识别后门模型,通过反馈回路和验证算法来分析各层的输出变化。①全局模型从服务器发送到被选中的客户端;②每个客户端使用TEE保护的环境初始化或更新起局部模型,训练后的局部模型被安全的发送回服务器。在该步骤中,模型传输被加密,使用安全聚合算法;③服务器将客户端局部模型发送到各客户端进行交叉验证;④各客户端在其本地TEE中的enclave中对其他客户端局部模型解密,并计算HLBIM检查后门对其他模型投票(算法1),客户端使用算法1生成的HLBIM矩阵来评估其他客户端模型,通过过滤移除被认为是恶意的模型,产生投票(算法2);⑤客户端将投票结果发送到服务器;⑥服务器利用两层聚类算法对各客户端投票结果进行聚合;⑦确定最终哪些客户端是良性的将其聚合成为全局模型。
客户端反馈
服务器接收到客户端模型后,将这些模型分发到客户端验证enclave。每个enclave利用其本地数据集来识别中毒的模型并将反馈提交给服务器
用于后门检测的隐藏层分析
客户端分析模型每一层的输出,结果作为投票反馈给服务器
1)从局部模型中提取隐藏后门检查度量HLBIM(hide layer backdoor inspection metric)
不改变方向(检查欧几里得距离),改变方向(检查余弦相似度),以上两个矩阵都基于深层输出DLOs(deep layer outputs),通过将本地数据输入到局部模型和全局模型中获得
分析所有层的DLOs:1)为每个DLO计算全局模型和每个局部模型之间的余弦距离和欧几里得距离(18行) 2)生成DLO比率,使用验证客户端的本地模型进行参考以显示模型之间的差异,每个客户端都假设自己的本地模型是良性的,若DLOs相等则比例为1(21行) 3)为了进一步突出比率之间的差异,通过减去1并在保留符号的情况下对结果进行平方来缩放值(22行) 4)得到的DLO矩阵在每个标签的样本维度上平均,从而单独划分出每个标签类别的效果,把矩阵的索引从s (sample) 改为label(24行) 5)实验中将矩阵进行concate来降低矩阵维度减少计算成本该步骤将不同标签的值分离,保证只使用来自相同标签的样本来识别异常行为(25行)
2)基于模型修剪的投票决策
利用PCA分析不同模型之间的差异(14行)。PCA通过分析第一维的主成分值将二维矩阵降为一维。PC值的中位数是良性的。
如果所有模型都是良性的,则PC值遵循类似的分布且PC值与中位数之间的绝对距离应遵循相同的分布。如下图,n个客户端投毒率为40%的情况下迭代地修剪恶意客户端
利用不同的显著性检验分析均值、方差和异常值(15行)。通过student-T-Test检查平均值,通过F-Test检查方差。显著性水平设置为0.01
- student-T检验,用于确定两组数据是否有显著性差异,其基本思想是比较两组数据的均值,看他们是否存在统计上的显著差异。,为两个向量的差,是差值的标准差,是样本大小。最终查看t值再t分布表中对应的概率(p值)
- F-T检验,用于比较两组或多组数据方差的统计方法,检验不同分组的均值是否相等。F={较大的样本方差}/{较小的样本方差},查看F分布表得出p值
- 为了防止对手试图欺骗F检验,使用D检验来分析总体分布
- 通过这些测试后,找到异常值。为了识别这样的异常值,设置了两个阈值:1)使用箱线图分析所有数据点的四分位数范围。2)根据3σ-规则(也称为68-95-99.7规则,是一个统计学上的经验法则,描述的是在正态分布情况下,数据与均值的偏差程度。这条规则是基于正态分布的性质,可以用来估计在一个正态分布数据集中各个数据点出现位置的概率)对区间内各点的距离进行分析。位于区间之外的数据点被标记为显著值
如果测试表明存在中毒模型,使用层次聚类算法生成两个聚类(16-21行),并修剪位于较小聚类中的模型,重复修剪直至显著性检验报告不存在可疑模型(15行)。
服务器端投票聚合
客户端以二进制向量的形式向服务器提供投票后,服务器面临着来自对手的而已投票以及良性客户端无意的错误投票。因此采用二级堆叠聚类,从所有提交中选择最具代表性的投票向量。
第一级,目的为通过修剪两个集群中较小的集群来消除明显的恶意投票(因为多数参与方为良性的)
第二级,该聚类是对其余部分的简单多数投票,确保聚合的鲁棒性,防止轻微错误分类。通过DBSCAN聚类算法提取最频繁的二进制投票向量并检查输出的聚类大小,最大集群的投票是投票聚合的最终结果。
该策略首先通过多数识别良性投票,然后通过多数选择最佳投票作为最终决策的策略。
实验:
non-IID设置:1)随机选择一个主标签分配q%的样本,其余标签从均匀分布的所有标签中选择。因此,当q = 1.0时,每个客户端只使用主标签上的数据,如果主标签不同,则不同客户端的数据是不相交的;2)与1类似,选择主标签的后续标签作为第二主标签;3)Dirichlet分布和正态分布
攻击方式用CBA攻击,,数据投毒率10%,模型投毒率45%,共20个客户端
可视化结果。a.一个标签(本例中为8)从每个局部模型到全局模型的平均余弦距离,难以清除识别出有毒模型;b.HLBIM度量下的单个标签余弦距离;c.整个HLBIM在余弦距离下的可视化结果;d.全良性客户端下的HLBIM(三次检验后);e.主成分分析结果,第一轮显著性检验;f.第二轮显著性检验;g.第三轮显著性检验;h.离群点检测算法在第二轮修剪中的箱图。
在不同设置,不同后门攻击下的结果。在t=0轮就开始部署防御策略与投毒结果不好,因为所有模型的参数都发生了显著变化,中毒模型的影响可以忽略不记
性能开销。SGX为在TEE环境下的测试,认证开销平均0.1s,可以忽略不计。在三个平台上HLBIM消耗的时间类似,区别较大的是在三个平台上DLOs所需的时间。
对比实验
总结:
通过客户端交叉验证的方法避免了隐私对服务器的暴露,可以和安全局和策略兼容。
但是这篇文章虽然对计算时间开销进行了实验测试,但是并未测试通信开销。由于该文中提出服务器需要给所有被选中的客户端发送其他客户端的加密模型,因此通信开销为平方级的,客户端越多通信开销越大。