电子机箱网站建设报告,北京建设银行分行招聘网站,做版权保护的网站,注册公司费用是多少ICLR 2024 https://github.com/zhmzm/Poisoning_Backdoor-critical_Layers_Attack 现有的FL攻击与防御方法大多关注于整个模型#xff0c;尚未意识到“后门关键#xff08;Backdoor-Critical, BC#xff09;层”的存在——这些层是模型中主导漏洞的小部分层。攻击BC层能够达… ICLR 2024 https://github.com/zhmzm/Poisoning_Backdoor-critical_Layers_Attack 现有的FL攻击与防御方法大多关注于整个模型尚未意识到“后门关键Backdoor-Critical, BC层”的存在——这些层是模型中主导漏洞的小部分层。攻击BC层能够达到与攻击整个模型同等的效果但被最新SOTA防御方法检测到的概率却大大降低。本文提出了一种通用的原位in-situ方法从攻击者的视角识别并验证BC层。在识别出BC层的基础上我们精心设计了一种新的后门攻击方法能够在多种防御策略下自适应地在攻击效果和隐蔽性之间寻求根本平衡。大量实验表明我们基于BC层感知的后门攻击能够在仅有10%恶意客户端的情况下成功突破七种SOTA防御并优于最新的后门攻击方法。
联邦学习后门防御
已经有多种防御方法被提出用于检测后门攻击并减轻其影响根据关键技术可分为三类基于距离的防御、基于反演的防御和基于符号的防御。基于距离的防御如FLTrustCao 等2021和FoolsGoldFung 等2020通过计算本地模型之间的余弦相似度和欧氏距离来检测潜在的恶意客户端。基于反演的防御如Zhang 等2022a利用触发器反演和后门消除来减轻全局模型中的后门。基于符号的防御如RLROzdayi 等2021检测客户端上传的本地模型更新中各参数的符号变化方向并调整各参数的学习率以减轻后门攻击。
motivaton
现有研究忽略了一个新的维度——后门攻击的有效性只与模型中一小部分层相关即后门关键Backdoor-Critical, BC层。为了证明BC层的存在我们首先在干净数据集上训练一个良性的五层CNN模型直到其收敛。然后在带有触发器的污染数据上训练该良性模型的一个副本得到一个恶意模型。我们将良性模型中的每一层替换为恶意模型中的相应层并测量后门攻击的成功率即识别嵌入触发器样本为目标标签的准确率。图1(a)显示除了fc1.weight层外恶意模型中其他层的缺失并不会降低BSRBackdoor Success Rate后门成功率。图1(b)显示只有来自恶意模型的fc1.weight层能够实现成功的后门任务。因此我们认为像fc1.weight这样的少数几层是后门关键层——即使缺失其中一个BC层后门成功率也会很低。BC层作为模型的一小部分在大型模型如ResNet18和VGG19中也可以观察到见图A-22。直观上较深的层更可能是BC层因为浅层学习的是简单、低级的特征如边缘、纹理而深层则将这些特征组合起来学习更复杂的高级概念 如物体及其组成部分Zeiler Fergus, 2014Bau 等2017Simonyan 等2013。 本文提出了一种层替换分析Layer Substitution Analysis这是一种通用的原位方法通过正向和反向层替换来识别BC层。我们进一步设计了两种新的后门攻击方法分层投毒攻击layer-wise poisoning attack和分层翻转攻击layer-wise flipping attack。这两种攻击方法利用已识别的BC层通过精确攻击这些层以最小的模型污染和极少的恶意客户端如10%客户端绕过最新的基于距离、反演和符号的防御方法。
识别后门关键BC层 在联邦学习FL环境下每一轮都有一个全局模型客户端可以用本地数据训练几个epoch各客户端的模型彼此相似因此新的全局模型是所有客户端模型的平均值Konečný等2016。在这种场景下我们有机会探索用污染数据训练的恶意模型与用干净数据训练的良性模型之间的差异。
我们认为如果第l层或一组L*层对后门任务至关重要将w_benign中的该层或这些层替换为w_malicious中的相应层会导致后门任务准确率BSR的下降。
3.1 总览 图2展示了用于为每个被攻击者控制的恶意客户端ii∈M识别BC层的“层替换分析”流程 步骤1用干净数据集D_clean, train训练初始模型w获得良性模型w_benign。然后用污染数据集D_poison, train在w_benign上继续训练以收敛于后门任务得到恶意模型w_malicious。 步骤2正向层替换——将恶意模型w_malicious的第l层逐个替换为良性模型w_benign的第l层l∈L。然后评估更新后的恶意模型wb2m(l)的后门成功率BSR并与原始恶意模型w_malicious的BSR进行比较。根据BSR的变化对各层排序。 步骤3按步骤2排序的层顺序进行反向层替换。逐步将恶意模型中的层复制到良性模型中直到更新后的模型BSR达到某一阈值。被复制的层索引即为BC层集合L*。
3.2 层替换分析. (下面为本文关键点) 步骤1本地训练 在FL环境下恶意客户端在本地数据集上识别BC层。i号恶意客户端的本地数据集D(i)被划分为训练集D(i)_clean,train和D(i)_poison,train以及验证集D(i)_clean,val和D(i)_poison,val。当恶意客户端i接收到全局模型w时先在D(i)_clean,train上训练w_benign至收敛然后在D(i)_poison,train上继续训练w_benign至收敛得到恶意模型w_malicious。
步骤2正向层替换 我们认为如果某层是BC层在恶意模型中用良性模型的该层替换会降低恶意模型的后门任务准确率BSR。
良性层 → 恶意模型我们首先观察当恶意模型的某一层被良性模型同层替换时BSR的变化。具体地用b2m(l)表示将恶意模型的第l层替换为良性模型的第l层的过程两个模型结构相同均有|L|层。
如图2所示执行b2m(l)会生成每层替换后的更新恶意模型wb2m(l)。我们用污染数据集D_poison,val评估所有wb2m(l)的BSR通过遍历所有层l∈L每个恶意客户端i可根据BSR的变化对各层排序定义为
ΔBSR_b2m(l) : BSR_malicious − BSR_b2m(l)
其中BSR_malicious为原恶意模型的BSRBSR_b2m(l)为替换第l层后的模型BSR。按ΔBSR_b2m(l)从高到低排序后进一步进行反向层替换以确认BC层。
步骤3反向层替换 我们认为如果某层是BC层在良性模型中用恶意模型的该层替换会提升良性模型的BSR。
恶意层→良性模型反向层替换过程定义为m2b(L*)。与b2m(l)只替换单层不同m2b(L*)替换一组L层。我们按ΔBSR_b2m(l)降序逐步将层加入L并用污染数据集D_poison,val评估更新模型的BSR。图2所示m2b(L*)迭代地将恶意模型w_malicious的L层复制到良性模型w_benign中直到更新后的模型BSR_m2b(L)达到预设阈值τBSR_maliciousτ∈(0,1]。 具体地比较BSR_m2b(L*)与阈值τBSR_malicious 如果BSR_m2b(L*) τBSR_malicious则继续按ΔBSR_b2m(l)降序添加层到L*并更新模型重新评估BSR。 如果BSR_m2b(L*) ≥ τBSR_malicious则新模型已达到与恶意模型相近的BSR停止添加。 我们认为L*中的层为BC层因为它们同时满足1从恶意模型移除会降低其BSR2复制到良性模型会提升其BSR至与恶意模型相近。需要注意反向层替换可识别单个BC层和BC层组合即后门任务可由多层组合学习。
攻击BC层
本节提出了两种基于BC层的攻击方法分层投毒LP攻击和分层翻转LF攻击分别针对基于距离、反演和符号的防御方法。
分层投毒LP攻击有点没太看懂 针对已识别的BC层集合L*我们设计了LP攻击从L*中选择BC层并精确地对这些层进行最小化修改以绕过现有的基于距离的防御方法Cao等2021Nguyen等2021Blanchard等2017。
在第t轮FL服务器选中的恶意客户端执行正向和反向层替换找出本轮的BC层集合L*_t。收到全局模型w_t简记为w后恶意客户端i分别用本地污染数据D(i)_poison和干净数据D(i)_clean训练本地恶意模型w(i)_malicious和良性模型w(i)_benign。
我们用向量v[v1, v2, …, vl]表示模型w(i)_benign或w(i)_malicious中选取的层的子集。如果vj1则良性模型w(i)_benign的第j层将被恶意模型w(i)_malicious的对应层替换。用u(i)_malicious[u(i)_malicious,1, …, u(i)_malicious,l]表示w(i)_malicious在层空间的表示u(i)_benign同理。
攻击者在第t轮的目标可表述为如下优化问题 其中◦为逐元素乘法w_{t1}为第t1轮的全局模型权重A为服务器聚合函数x′为嵌入触发器的图片y′为目标标签G(x)为全局模型对输入x的预测标签。A可采用K-means或HDBSCAN等聚类算法导致无法计算梯度。
这部分没写完具体看原论文
分层翻转LF攻击 当分层投毒LP攻击无法绕过基于符号的防御方法时后门相关参数很可能位于“符号不一致”区域并被反向符号的学习率所抵消。为应对这类基于符号的防御方法我们提出了分层翻转攻击Layer-wise Flipping attack。该方法在防御机制对这些层应用反向学习率之前主动对每个客户端i的BC层L*中的参数符号进行翻转从而保持BC层的后门效果。其定义如下 最终FL服务器会再次翻转BC层的参数符号从而恢复参数的原始符号并激活注入模型的后门。由于掌握了BC层的信息分层翻转攻击能够避免对其他无关层进行不必要的投毒这不仅提升了主任务的准确率还能伪装恶意更新降低被防御方法检测的风险。 基于符号的防御机制原理这类防御如 RLR会检测本地模型参数的“更新方向”即符号如果发现某些参数的符号和大多数客户端不一致就会降低这些参数的学习率甚至反向更新。 这样做的目的是抑制恶意更新尤其是后门攻击因为后门参数往往与正常训练的方向不一致。 直接投毒LP攻击会被抵消 如果攻击者直接在BC层投毒参数方向和大部分正常客户端不一致时服务器端会自动反向或缩小这些参数的更新幅度导致后门效果失效。 分层翻转攻击的思路 攻击者提前将BC层的参数符号翻转即取反这样在服务器聚合时服务器的防御机制会再次把这些参数符号翻转回来因为它认为这些参数方向异常反而恢复了原本的后门方向。 这样后门参数逃过了防御机制的“抵消”后门效果得以保留。 只针对BC层隐蔽性和主任务准确率更高只对关键层做翻转其他层保持正常有效减少了对主任务的干扰也更不容易被检测到。