一种恶意代码模型检测方法、装置和计算机可读介质
未命名
09-23
阅读:65
评论:0
1.本技术属于互联网安全技术领域,尤其涉及一种恶意代码模型检测方法、装置和可读介质。
背景技术:
2.近年来,隐私泄露事件频发,如何有效保护隐私成为了研究热点。其中,联邦学习作为一种具有隐私保护特性的分布式机器学习训练框架,可以通过源数据不出本地而仅交互模型参数的方式,保护参与共享用户的数据的隐私安全。但是,申请人发现,目前存在联邦学习模型的参数被嵌入恶意代码,从而通过模型数据进行恶意代码夹带导致风险扩散的问题。
技术实现要素:
3.有鉴于此,本技术提供一种恶意代码模型检测方法、装置和计算机可读介质,以用于解决联邦学习模型的参数被嵌入恶意代码,从而通过模型数据进行恶意代码夹带导致风险扩散的问题。
4.为解决上述问题,本技术提供如下方案:
5.一种恶意代码模型检测方法,包括:
6.获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集;
7.确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度集合;
8.根据所述不同单一局部模型分别对应的相似度集合,从所述局部模型集中确定出对应的相似度满足预设条件的局部模型,作为恶意代码模型。
9.可选的,所述获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集,包括:
10.获取各边缘侧设备基于各自的本地数据对对应的预训练模型进行训练生成的局部模型,得到局部模型集;
11.其中,所述预训练模型为:边缘侧设备从中心侧设备获取的当前轮全局模型,或边缘侧设备本地构建的模型,所述当前轮全局模型为中心侧设备根据从各边缘侧设备最新获取的局部模型集对上一轮全局模型进行更新所得的模型或根据从各边缘侧设备最新获取的局部模型集构建的模型。
12.可选的,所述确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度,包括:
13.确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的模型距离,得到不同单一局部模型分别对应的模型距离集;其中,基于模型距离表征模型相似度,模型距离与模型相似度呈反相关关系。可选的,所述确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的模型距离,包括:
14.获取所述单一局部模型与每一其他局部模型在各个对应位置参数的参数数据;
15.根据所述单一局部模型与每一其他局部模型在各个对应位置参数的参数数据,确定所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离;
16.根据所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离,确定所述单一局部模型与所述每一其他局部模型间的模型距离,得到所述局部模型集中单一局部模型分别与其他各局部模型间的模型距离。
17.可选的,所述根据所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离,确定所述单一局部模型与所述每一其他局部模型间的模型距离,得到所述局部模型集中单一局部模型分别与其他各局部模型间的模型距离,包括:
18.确定所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离对应的预设统计量,将确定出的预设统计量作为所述单一局部模型与相应其他局部模型间的模型距离。
19.可选的,所述根据所述不同单一局部模型分别对应的相似度,从所述局
20.部模型集中确定出对应的相似度满足预设条件的局部模型,作为恶意代码模型,包括:
21.根据不同单一局部模型分别对应的模型距离集,从所述局部模型集中确定出对应的模型距离满足预设条件的局部模型,作为恶意代码模型。
22.可选的,所述根据不同单一局部模型分别对应的模型距离集,从所述局部模型集中确定出对应的模型距离满足预设条件的局部模型,作为恶意代码模型,包括:
23.对于每一单一局部模型,根据所述单一局部模型对应的模型距离集,确定所述局部模型集中与所述单一局部模型间的模型距离满足距离条件的局部模型,作为候选模型;所述距离条件至少能用于使确定出的候选模型与所述单一局部模型间的模型距离大于所述模型距离集中非候选模型与所述单一局部模型间的模型距离;
24.发起对不同单一局部模型分别对应的候选模型的投票请求;
25.获取不同单一局部模型分别对应的候选模型的投票结果;
26.根据获取的投票结果,确定不同单一局部模型分别对应的候选模型中满足投票条件的局部模型,作为恶意代码模型;
27.其中,所述预设条件包括所述距离条件和所述投票条件。
28.可选的,确定出的所述恶意代码模型的数量为一个,每个恶意代码模型代表一个攻击者;所述方法还包括:
29.获取配置的攻击者的数量;
30.在配置的攻击者数量表征需检测出多个攻击者的情况下,从不同单一局部模型分别对应的模型距离集中去除所述恶意代码模型对应的模型距离集以及所述恶意代码模型在其他各单一局部模型分别对应的模型距离集中的模型距离,得到所述其他各单一局部模型分别对应的更新后的模型距离集;
31.针对所述其他各单一局部模型分别对应的更新后的模型距离集,触发所述根据不同单一局部模型分别对应的模型距离集,从所述局部模型集中确定出对应的模型距离满足预设条件的局部模型,作为恶意代码模型的步骤,直至检测出所配置数量的恶意代码模型。
32.一种恶意代码模型检测装置,包括:
33.模型获取单元,用于获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集;
34.第一确定单元,用于确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度;
35.第二确定单元,用于根据所述不同单一局部模型分别对应的相似度,从所述局部模型集中确定出对应的相似度满足预设条件的局部模型,作为恶意代码模型。
36.一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时,能用于实现如上文任一项所述的恶意代码模型检测方法。
37.由以上方案可知,本技术公开的恶意代码模型检测方法、装置和计算机可读介质,获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集,确定局部模型集中单一局部模型分别与单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度集合,根据不同单一局部模型分别对应的相似度集合,从局部模型集中确定出对应的相似度满足预设条件的局部模型,作为恶意代码模型。本技术通过计算各局部模型之间的相似度,将对应的相似度满足预设条件的局部模型检测为恶意代码模型,解决了恶意代码模型带来的风险扩散问题。
附图说明
38.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
39.图1是本技术提供的联邦学习工作原理示意图;
40.图2是本技术提供的多层神经网络模型示意图;
41.图3是本技术提供的ieee 754单精度浮点数据表示方法示意图;
42.图4是一种通过模型供应链进行恶意代码传播的示意图;
43.图5是本技术提供的一种联邦学习中利用模型进行恶意代码传递的示意图;
44.图6是本技术提供的恶意代码模型检测方法的一种流程示意图;
45.图7是本技术提供的一种模型参数的距离示意图恶意代码模型检测方法的另一种流程示意图;
46.图8是本技术提供的恶意代码模型检测方法的另一种流程示意图;
47.图9是本技术提供的恶意代码模型检测装置的组成结构图。
具体实施方式
48.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示
learning,vfl)和联邦迁移学习(federated transfer learning,ftl)。
61.联邦学习根据参与方的数量、参与模型聚合的频率和技术能力进一步将hfl分为面向企业的hfl(h2b)和面向消费者的hfl(h2c)。在h2b模式下,通常只有少数参与者,每个参与者可以频繁地被选择进行参数聚合,参与者往往具有较高的技术能力和算力。在h2c模式下,可能有数千甚至数百万的参与者,在每一轮的训练中,通常聚合器只会选择其中的一个子集进行参数聚合,因此每个参与者被频繁地选择进行参数聚合的机会很低,它们通常具有有限的算力。
62.目前,攻击者的攻击方式有很多种。在僵尸网络、勒索软件、apt等高级恶意软件活动中,一些攻击者会将恶意代码附加到看似无害的载体如图片等文件中,并且能够不破坏载体的结构。普通用户通常看不到这些秘密信息,但是这些恶意代码很容易被检测软件发现。还有更加的隐蔽的侵入方法是使用隐写术将要传递的恶意代码嵌入到载体中,然而,一般的隐写载体由于信道容量小,不适合传递大型恶意软件。现如今,攻击者的另一种侵略方式是在机器学习模型参数中嵌入恶意代码来规避安全检测,这种方法可以在不影响模型精度的同时携带大型恶意软件。
63.参见图2所示,图2是本技术提供的多层神经网络模型示意图。
64.在神经网络模型中,每个神经元都有若干权重参数和1个偏置参数,模型隐藏层h1的第一个神经元的输出可以表示为:o1=f(∑xi·w1i
+b1)。
65.其中f代表激活函数,xi代表上层输入,w
1i
代表各输入对本神经元的权重值,b为本神经元的偏置值。大多数机器学习编程框架使用ieee 754单精度浮点数作为神经网络参数的默认存储类型。如图3所示,ieee 754单精度浮点数可以表示为s
×
1.m
×2e
。其中符号位(s)决定该浮点数的正负,指数位(e)是2的幂,它的作用是对浮点数加权;尾数位(m)是二进制小数,代表浮点数的有效小数。
66.攻击者提出的stegonet通过将恶意软件嵌入到深度神经网络模型(deep neural,networks,dnns)中,然后通过dnns模型供应链进行传播。可使用4种嵌入恶意软件的方法:最低有效位(lsb)替换、弹性训练、值映射和符号映射。借鉴图像隐写中的lsb算法,stegonet通过替换模型参数最低有效位将恶意软件嵌入dnns模型中。对于大型dnns模型,该方法可以在不降低模型性能的前提下嵌入大型恶意软件。但对于较小的模型,随着恶意软件字节数的增加,模型性能会急剧下降。在弹性训练中,攻击者首先挑选一些模型参数进行恶意软件嵌入,然后将这些参数固定,再次训练该模型,使其精度恢复至未嵌入恶意软件时的状态。与lsb替换方法相比,该方法可以在模型中嵌入更大的恶意软件。值映射和符号映射方法将恶意软件字节映射到模型参数中,但是这种映射方法需要一个置换映射表来恢复恶意软件,这会限制嵌入恶意软件的大小。
67.通过分析浮点数的格式,发现浮点数的绝对值是由指数部分决定的,通过调整指数部分可以使浮点数绝对值固定在一定的区间内。例如,将浮点数的第3-6比特位设为1,最后24位设为任意值(即0x3c000000到0x3cffffff),则浮点数的绝对值在0.0078到0.0313之间。因此,提出固定神经元参数的首字节为0x3c或0xbc等值,在其后的3字节嵌入恶意软件,以此将参数变化限制在一定区间内,然后通过再训练的方式保证模型的精度。他们在不同的模型和恶意软件样本上验证了快速替换的可行性,如在178mb大小的alexnet模型中嵌入36.9mb的恶意代码,而模型的精度损失不到1%。
68.业界通过实验发现常规的恶意软件检测引擎无法对恶意代码模型进行检测。并通过实验指出,由于dnns的复杂特性,使用传统的隐写分析方法无法对stegonet进行有效检测。鉴于此,业界提出可以将神经元参数,先由浮点数转换为16进制表示,然后再与现有的恶意软件特征数据库进行对比,但是这种基于特征数据库的检测方法很容易通过加密等方式进行规避。他们还指出可以通过模型压缩、裁剪和调优等方式主动破坏模型中可能存在的恶意软件,同时保持模型的精度不受影响,然而,申请人研究发现,在联邦学习中,中心服务器只是将各个本地模型进行加权聚合后得到的全局模型下发给各个客户端,训练一旦开始,机器学习模型结构、超参数等信息就已确定,无法再进行修改,因此,主动破坏模型中可能存在的恶意软件这种防御方法在联邦学习中并不适用。
69.基于此,本技术主要针对攻击者通过模型供应链进行攻击的方式给出应对方案。参见图4,提供了一种通过模型供应链进行恶意代码传播的示意图。
70.攻击者首先自行训练或下载一个训练好的模型,然后将恶意软件嵌入其中,根据嵌入代码后模型的精度来判断是否需要再微调模型以提高模型的性能。随后攻击者将嵌入恶意代码的模型发布到互联网上,控制受害主机下载该模型,提取恶意软件并执行。
71.针对上述攻击方式,本技术进一步建立对应的威胁模型,威胁模型具体建立在面向企业的横向联邦学习场景下,如图5所示,假定在联邦学习系统中有k个客户端和1个中心服务器,威胁模型定义如下:
72.受害者:受害者为联邦学习中心。我们假设中心在一个安全的环境中部署模型聚合服务,该安全环境使用本文提出的检测方法对收到的客户端模型进行分析,检测通过后还会对客户端模型进行性能测试,因此,如果客户端模型没有通过检测或模型性能过低,都不会发送给中心。
73.攻击者:我们假设攻击者为参与联邦学习训练的客户端之一,即攻击者的能力是有限的,无法通过控制多个客户端进行共谋攻击。此外攻击者拥有训练模型的数据,并且会遵守联邦学习协议正常执行模型训练,只是在本地模型训练结束以后在模型中嵌入恶意软件。
74.攻击者的目标:攻击者的目标是在中心服务器上执行恶意软件,因为中心会对客户端模型的性能进行测试,所以攻击者需要保持嵌入恶意代码的模型性能不会过低而导致模型被拒绝。
75.诚实模型:诚实模型是指客户端遵循联邦学习协议训练得到且未嵌入任何数据的本地模型。
76.参见图6所示的恶意代码模型检测方法的流程图,针对上述威胁模型,本技术提供的恶意代码模型检测方法包括以下处理流程:
77.步骤101、获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集。
78.具体的,中心侧设备获取各边缘侧设备基于各自的本地数据对对应的预训练模型进行训练生成的局部模型,得到局部模型集。
79.其中,预训练模型可以是边缘侧设备从中心侧设备获取的当前轮全局模型,或边缘侧设备本地构建的模型,当前轮全局模型为中心侧设备根据从各边缘侧设备最新获取的局部模型集对上一轮全局模型进行更新所得的模型或根据从各边缘侧设备最新获取的局
部模型集构建的模型。
80.示例性的,在联邦学习场景中,局部模型集可以是在第一轮训练时,中心服务器从客户端获取的基于预训练模型所得的各局部模型,构成的第一轮训练的局部模型集,也可以是在经历了几轮训练之后,中心服务器从客户端获取的本轮训练所得的各局部模型,构成的本轮训练的局部模型集。
81.步骤102、确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度集合。
82.具体的,联邦学习在每轮训练开始时,中心侧会将上一轮训练得到的全局模型θr发送给参与训练的各个客户端,因为各客户端都是在模型θr的基础上使用其私有数据继续训练,并且各客户端都有一个共同目标,就是减小模型损失,从而提高模型准确率,所以各客户端得到的本地模型θ
ir
应该彼此相似。而如果攻击者在模型参数中(如模型参数后三字节)随意嵌入恶意代码,且并不像诚实模型那样以提高模型准确率为目标去改变参数的大小,势必会降低恶意代码模型与诚实模型之间的相似度,即如果一个局部模型与其他局部模型之间相似度较低,偏离应具备的高相似度特征,那么该模型极有可能为携带恶意代码的模型。基于上述研究,本技术提出的基于模型相似度进行恶意代码模型检测的方法,利用诚实模型之间的相似度大于诚实模型与恶意代码模型之间相似度的特点来检测恶意代码模型。
83.相应的,在获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集后,继续确定局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度集合,以用于恶意代码模型的检测。
84.本技术实施例采用各局部模型之间的距离来表征/衡量局部模型之间的相似度,其中,模型距离与模型相似度呈反相关关系,也就是模型间的模型距离越大,代表两模型间的相似度越低,模型间的模型距离越小,代表两模型间的相似度越高。从而,中心侧设备具体可确定局部模型集中单一局部模型分别与单一局部模型之外的其他各局部模型间的模型距离,得到不同单一局部模型分别对应的模型距离集,采用用于表征模型相似度的模型距离来参与恶意代码模型的检测。
85.可选的,本技术实施例采用不同局部模型之间的参数距离来衡量不同局部模型之间的模型距离。
86.结合参见以下公式:
[0087][0088]
客户端模型参数可以看作是全局模型参数xr加上一个很小的扰动量ε(ε∈r)得到,因此各诚实模型的参数值原则上应该在一个很小的区间内波动。而恶意模型与诚实模型之间则与之相对,其模型参数的波动较大。诚实模型是指客户端遵循联邦学习协议训练得到且未嵌入任何数据的本地模型,也可以称为局部模型。
[0089]
从而通常情况下,不同模型间的参数距离,与模型相似度呈反相关关系,与模型距离呈正相关关系,即不同模型间的参数距离越大,则不同模型间的模型距离越大,相似度越小,反之不同模型间的参数距离越小,则模型距离越小,相似度越大。
[0090]
进一步,结合参见图7提供的模型参数距离的一个示例。申请人发现,可能存在恶
意代码模型与诚实模型之间参数距离小于诚实模型之间距离的情况,这是因为各客户端的数据不同,所以部分参数在训练时的变化方向和幅度会有所不同,为了解决这个问题,本技术提出采用局部模型之间各个对应位置参数的参数距离的统计量,而非某一个参数距离来衡量模型距离,也即衡量模型相似度,以有效平衡诚实模型间少量参数距离大于诚实模型与恶意代码模型参数距离的情况,消除个别参数距离偏离规律所带来的检测误差。
[0091]
其中,各个对应位置参数的参数距离统计量,可以但不限于为两个局部模型各个对应位置参数距离的距离和、加权距离和、平均距离值或加权平均距离等中的任意一种。
[0092]
以统计量为局部模型间各个对应位置参数距离和为例,以下提供基于该统计量的模型距离计算方法,其中,给定两个模型θ
x
和θy,其模型距离为各参数的距离之和,参见以下公式:
[0093][0094]
其中xi和yi为模型θ
x
和θy和相同位置的神经元参数值,|x
i-yi|代表xi和yi的距离,n为需要计算的参数总量。由于模型距离是两个模型间各个对应位置参数的参数距离和,从而能够有效平衡诚实模型间少量参数距离大于诚实模型与恶意代码模型参数距离的情况。
[0095]
实际应用中,可由中心服务器获取局部模型集中每两个模型在各个对应位置参数的参数值,基于各个对应位置参数的参数值计算对应位置参数间的参数距离,进而对各个对应位置参数的参数距离进行距离和、加权距离和、平均距离等统计量计算,并将计算所得的统计量作为这两个模型之间的模型距离。
[0096]
步骤103、根据所述不同单一局部模型分别对应的相似度集合,从所述局部模型集中确定出对应的相似度满足预设条件的局部模型,作为恶意代码模型。
[0097]
需要说明的是,预设条件包括距离条件和投票条件,即满足预设条件的局部模型,为既满足距离条件也满足投票条件的局部模型。具体的,在联邦学习的场景下,用局部模型的模型距离集来间接表征相似度集合。
[0098]
中心服务器根据获取的每一个单一局部模型对应的模型距离集,将其中满足距离条件的局部模型筛选出来,作为候选局部模型。其中,距离条件至少能用于使确定出的候选模型与所述单一局部模型间的模型距离大于所述模型距离集中非候选模型与所述单一局部模型间的模型距离,示例性的,满足距离条件的局部模型可以为与某一局部模型对应的模型距离集中模型距离最大的或者模型距离属于距离降序序列中topk的模型距离分别对应的局部模型。逐个将训练过程中的各局部模型对应的模型距离集中模型距离大的模型筛选出来作为候选模局部模型集。
[0099]
然后,中心服务器发起对不同局部模型对应得候选局部模型集中的局部模型的投票请求,获取投票结果。从而能够从各局部模型对应的候选局部模型集中确定出符合投票条件的局部模型为恶意代码模型。满足投票条件的局部模型指的是候选局部模型集中投票得数超出预设阈值的局部模型。
[0100]
之后,中心侧获取不同单一局部模型分别对应的候选模型的投票结果,根据获取的投票结果,确定不同单一局部模型分别对应的候选模型中满足投票条件的局部模型,作为恶意代码模型,需要说明的是,满足投票条件的距离模型可以是指,对候选模型进行投票后,得票数超过预设阈值的局部模型,这样的距离模型被检测为恶意代码模型。
[0101]
对于上述在联邦学习场景下进行的恶意代码模型检测方法,有如下示例进行进一步阐述:
[0102]
假设有10个客户端,在第r轮联邦学习训练时,中心服务器会收到10个本地模型型,对于模型:
[0103]
计算分别与的模型距离d
1,2
,d
1,3
,d
1,4
,...,d
1,10
,如计算分别与的模型距离f()函数是上面模型距离的计算函数。假设d
1,2
,d
1,3
,d
1,4
,
…
,d
1,10
中最大的值为d
1,2
,就代表模型与模型相似度最低,更可能为恶意代码模型,因此对进行投票。
[0104]
对于模型重复上述步骤,如计算分别与的模型距离,找出最大值,并对其对应的模型进行投票。
[0105]
需要说明的是,申请人通过实验的方式验证提出的恶意代码检测方法具有较好的性能指标,如在178mb大小模型中嵌入0.375mb恶意代码时,检测方法的真正率为82.9%,误报率为1.8%,嵌入0.75mb恶意代码时,真正率为96.6%,误报率为0.38%。
[0106]
综上所述,本技术公开的恶意代码检测方法,获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集,确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的模型距离,得到不同单一局部模型分别对应的模型距离集,根据不同单一局部模型分别对应的模型距离集,从所述局部模型集中确定出对应的模型距离满足预设条件的局部模型,作为恶意代码模型。本技术通过计算局部模型之间的模型距离,并使用模型距离量化模型之间的相似度,将对应的相似度满足预设条件的局部模型检测为恶意代码模型,解决了恶意代码模型带来的风险扩散问题。
[0107]
可选的,在一实施例中,参见图8,本技术提供的攻击者为多个的情况下恶意代码检测方法的另一种流程示意图。
[0108]
步骤201、获取配置的攻击者的数量。
[0109]
具体的,攻击者的数量是可以预先根据经验假设,并根据假设情况进行相应的数量配置。
[0110]
步骤202、在配置的攻击者数量表征需检测出多个攻击者的情况下,从不同单一局部模型分别对应的模型距离集中去除所述恶意代码模型对应的模型距离集以及所述恶意代码模型在其他各单一局部模型分别对应的模型距离集中的模型距离,得到所述其他各单一局部模型分别对应的更新后的模型距离集。
[0111]
示例性的,中心侧收集全部的客户端模型,对每个客户端模型计算与剩余其他模型的模型距离d
i,j
,得到一个距离列表因此一共可以得到k个距离列表。
[0112]
中最大的d
i,j
代表模型与模型的相似度最低,更可能为恶意代码模型,因此对模型进行投票,对所有距离列表进行上述操作,统计所有投票,得票数大于等于阈值t的客户端模型被判定为恶意代码模型,在多个攻击者的情况下,首先执行上述步骤,假设客户端模型被判定为恶意代码模型,则将以外的客户端模型对应的距离列表
中的d
i,z
去除,得到k-1个新的距离列表,也就是更新后的模型距离集。
[0113]
步骤203、针对所述其他各单一局部模型分别对应的更新后的模型距离集,触发所述根据不同单一局部模型分别对应的模型距离集,从所述局部模型集中确定出对应的模型距离满足预设条件的局部模型,作为恶意代码模型的步骤,直至检测出所配置数量的恶意代码模型。
[0114]
然后执行对更新后的模型距离集中满足投票条件的模型进行投票,得到下一个恶意代码模型,重复执行步骤202和步骤203直至检测出预先假设的攻击者数量。
[0115]
综上所述,本技术完成存在多个攻击者的恶意代码检测工作,能够最大限度的完成恶意代码模型的检测工作,最大程度的降低恶意代码模型给联邦学习过程中带来的风险。
[0116]
对于上述恶意代码模型检测方法,本技术还提供了一种恶意代码模型检测装置,该装置的组成如图9所示。
[0117]
模型获取单元10,用于获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集。
[0118]
第一确定单元20,用于确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度集合。
[0119]
第二确定单元30,用于:
[0120]
根据所述不同单一局部模型分别对应的相似度集合,从所述局部模型集中确定出对应的相似度满足预设条件的局部模型,作为恶意代码模型。
[0121]
在一实施方式中,模型获取单元10,具体用于:
[0122]
获取各边缘侧设备基于各自的本地数据对对应的预训练模型进行训练生成的局部模型,得到局部模型集。
[0123]
其中,所述预训练模型为:边缘侧设备从中心侧设备获取的当前轮全局模型,或边缘侧设备本地构建的模型,所述当前轮全局模型为中心侧设备根据从各边缘侧设备最新获取的局部模型集对上一轮全局模型进行更新所得的模型或根据从各边缘侧设备最新获取的局部模型集构建的模型。
[0124]
在一实施方式中,第一确定单元20,具体用于:
[0125]
确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的模型距离,得到不同单一局部模型分别对应的模型距离集。其中,基于模型距离表征模型相似度,模型距离与模型相似度呈反相关关系。获取所述单一局部模型与每一其他局部模型在各个对应位置参数的参数数据。
[0126]
根据所述单一局部模型与每一其他局部模型在各个对应位置参数的参数数据,确定所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离。
[0127]
根据所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离,确定所述单一局部模型与所述每一其他局部模型间的模型距离,得到所述局部模型集中单一局部模型分别与其他各局部模型间的模型距离。
[0128]
确定所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离对应的预设统计量,将预设统计量作为所述局部模型集中单一局部模型分别与其他各局部模
型间的模型距离。
[0129]
在一实施方式中,第二确定单元30,具体用于:
[0130]
根据不同单一局部模型分别对应的模型距离集,从所述局部模型集中确定出对应的模型距离满足预设条件的局部模型,作为恶意代码模型。
[0131]
对于每一单一局部模型,根据所述单一局部模型对应的模型距离集,确定所述局部模型集中与所述单一局部模型间的模型距离满足距离条件的局部模型,作为候选模型;所述距离条件至少能用于使确定出的候选模型与所述单一局部模型间的模型距离大于所述模型距离集中非候选模型与所述单一局部模型间的模型距离;发起对不同单一局部模型分别对应的候选模型的投票请求。
[0132]
获取不同单一局部模型分别对应的候选模型的投票结果。
[0133]
根据获取的投票结果,确定不同单一局部模型分别对应的候选模型中满足投票条件的局部模型,作为恶意代码模型。
[0134]
其中,所述预设条件包括所述距离条件和所述投票条件。
[0135]
在一实施方式中,所述装置还包括:
[0136]
攻击者数量获取单元,用于获取配置的攻击者的数量。
[0137]
模型距离去除单元,用于在配置的攻击者数量表征需检测出多个攻击者的情况下,从不同单一局部模型分别对应的模型距离集中去除所述恶意代码模型对应的模型距离集以及所述恶意代码模型在其他各单一局部模型分别对应的模型距离集中的模型距离,得到所述其他各单一局部模型分别对应的更新后的模型距离集。
[0138]
第三确定单元,用于针对所述其他各单一局部模型分别对应的更新后的模型距离集,触发所述根据不同单一局部模型分别对应的模型距离集,从所述局部模型集中确定出对应的模型距离满足预设条件的局部模型,作为恶意代码模型的步骤,直至检测出所配置数量的恶意代码模型。
[0139]
另外,本技术实施例还提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,能用于实现恶意代码模型检测方法的各个处理步骤。
[0140]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0141]
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0142]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
[0143]
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何
其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0144]
以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
技术特征:
1.一种恶意代码模型检测方法,其特征在于,包括:获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集;确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度集合;根据所述不同单一局部模型分别对应的相似度集合,从所述局部模型集中确定出对应的相似度满足预设条件的局部模型,作为恶意代码模型。2.根据权利要求1所述的方法,其特征在于,所述获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集,包括:获取各边缘侧设备基于各自的本地数据对对应的预训练模型进行训练生成的局部模型,得到局部模型集;其中,所述预训练模型为:边缘侧设备从中心侧设备获取的当前轮全局模型,或边缘侧设备本地构建的模型,所述当前轮全局模型为中心侧设备根据从各边缘侧设备最新获取的局部模型集对上一轮全局模型进行更新所得的模型或根据从各边缘侧设备最新获取的局部模型集构建的模型。3.根据权利要求1所述的方法,其特征在于,所述确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度集合,包括:确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的模型距离,得到不同单一局部模型分别对应的模型距离集;其中,基于模型距离表征模型相似度,模型距离与模型相似度呈反相关关系。4.根据权利要求3所述的方法,其特征在于,所述确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的模型距离,包括:获取所述单一局部模型与每一其他局部模型在各个对应位置参数的参数数据;根据所述单一局部模型与每一其他局部模型在各个对应位置参数的参数数据,确定所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离;根据所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离,确定所述单一局部模型与所述每一其他局部模型间的模型距离,得到所述局部模型集中单一局部模型分别与其他各局部模型间的模型距离。5.根据权利要求4所述的方法,其特征在于,所述根据所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离,确定所述单一局部模型与所述每一其他局部模型间的模型距离,得到所述局部模型集中单一局部模型分别与其他各局部模型间的模型距离,包括:确定所述单一局部模型与每一其他局部模型在各个对应位置参数的参数距离对应的预设统计量,将确定出的预设统计量作为所述单一局部模型与相应其他局部模型间的模型距离。6.根据权利要求3所述的方法,其特征在于,根据所述不同单一局部模型分别对应的相似度集合,从所述局部模型集中确定出对应的相似度满足预设条件的局部模型,作为恶意代码模型,包括:根据不同单一局部模型分别对应的模型距离集,从所述局部模型集中确定出对应的模
型距离满足预设条件的局部模型,作为恶意代码模型。7.根据权利要求6所述的方法,其特征在于,所述根据不同单一局部模型分别对应的模型距离集,从所述局部模型集中确定出对应的模型距离满足预设条件的局部模型,作为恶意代码模型,包括:对于每一单一局部模型,根据所述单一局部模型对应的模型距离集,确定所述局部模型集中与所述单一局部模型间的模型距离满足距离条件的局部模型,作为候选模型;所述距离条件至少能用于使确定出的候选模型与所述单一局部模型间的模型距离大于所述模型距离集中非候选模型与所述单一局部模型间的模型距离;发起对不同单一局部模型分别对应的候选模型的投票请求;获取不同单一局部模型分别对应的候选模型的投票结果;根据获取的投票结果,确定不同单一局部模型分别对应的候选模型中满足投票条件的局部模型,作为恶意代码模型;其中,所述预设条件包括所述距离条件和所述投票条件。8.根据权利要求3所述的方法,其特征在于,确定出的所述恶意代码模型的数量为一个,每个恶意代码模型代表一个攻击者;所述方法还包括:获取配置的攻击者的数量;在配置的攻击者数量表征需检测出多个攻击者的情况下,从不同单一局部模型分别对应的模型距离集中去除所述恶意代码模型对应的模型距离集以及所述恶意代码模型在其他各单一局部模型分别对应的模型距离集中的模型距离,得到所述其他各单一局部模型分别对应的更新后的模型距离集;针对所述其他各单一局部模型分别对应的更新后的模型距离集,触发所述根据不同单一局部模型分别对应的模型距离集,从所述局部模型集中确定出对应的模型距离满足预设条件的局部模型,作为恶意代码模型的步骤,直至检测出所配置数量的恶意代码模型。9.一种恶意代码模型检测装置,其特征在于,包括:模型获取单元,用于获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集;第一确定单元,用于确定所述局部模型集中单一局部模型分别与所述单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度集合;第二确定单元,用于根据所述不同单一局部模型分别对应的相似度集合,从所述局部模型集中确定出对应的相似度满足预设条件的局部模型,作为恶意代码模型。10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,能用于实现如权利要求1-8任一项所述的恶意代码模型检测方法。
技术总结
本申请公开一种恶意代码模型检测方法、装置和计算机可读介质,获取各边缘侧设备经各自的本地模型训练所生成的局部模型,得到局部模型集,确定局部模型集中单一局部模型分别与单一局部模型之外的其他各局部模型间的相似度,得到不同单一局部模型分别对应的相似度集合,根据不同单一局部模型分别对应的相似度集合,从局部模型集中确定出对应的相似度满足预设条件的局部模型,作为恶意代码模型。本申请通过计算各局部模型之间的相似度,将对应的相似度满足预设条件的局部模型检测为恶意代码模型,解决了恶意代码模型带来的风险扩散问题。解决了恶意代码模型带来的风险扩散问题。解决了恶意代码模型带来的风险扩散问题。
技术研发人员:孙奕 陈性元 汪德刚 高琦 杨帆 张东巍 王友贺 林玮
受保护的技术使用者:中国人民解放军战略支援部队信息工程大学
技术研发日:2022.11.15
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/