本发明属于网络安全,更具体地,涉及一种物联网恶意代码检测模型的更新方法和系统。
背景技术:
1、随着物联网(internet of things,简称iot)的快速发展和广泛应用,物联网设备的安全问题日益突出。物联网设备由于其通常具有较弱的安全防护和计算能力,成为网络攻击者的首要目标。在这种情况下,恶意代码的检测与防护对于维护物联网设备和网络的安全至关重要。
2、在现有恶意代码检测方法中,基于签名的检测方法和基于行为的检测方法是最广泛使用的两种方法,前者依赖于预先定义的恶意软件特征(如文件指纹、字符串模式、二进制代码序列等)签名库,通过匹配已知的恶意代码特征进行检测,但无法检测到新型或变种的恶意代码;后者通过监控设备上的程序行为(如文件操作、网络请求等)来识别潜在的恶意活动,但可能会产生较多的误报,且对系统资源的消耗较大,因此这两种方法难以在攻击高度变化、资源有限的物联网环境下实行。
3、为了克服上述两种方法存在的缺陷,基于深度学习方法的物联网恶意代码检测得到了日益广泛的应用,其包括两种实现方式,第一种是使用云计算的方式,将深度学习检测模型部署在云端,边缘端物联网设备进行恶意代码检测时将待检测文件上传至云端并等待返回结果;第二种是基于轻量级检测模型的方式,其根据边缘端物联网设备的性能,部署轻量级的检测模型进行实时检测。
4、然而,上述两种基于深度学习方法的物联网恶意代码检测方法都存在一些不可忽略的缺陷:
5、第一、使用云计算的方式需要将待检测文件上传至云端并等待反馈,这会导致延迟和实时性问题;
6、第二、基于轻量级检测模型的方式由于轻量级模型网络深度浅,难以学习到恶意代码的深层次特征,因此检测准确性相对较低;
7、第三、基于轻量级检测模型的方式在物联网环境快速变化、设备不断更新、恶意代码也在不断进化的情况下,其边缘端物联网设备难以实现检测模型的及时更新,这导致该方式对动态环境的适应性差。
技术实现思路
1、针对现有技术的以上缺陷或改进需求,本发明提供了一种物联网恶意代码检测模型的更新方法和系统,其目的在于,解决现有使用云计算的方式需要将待检测文件上传至云端并等待反馈,这会导致延迟和实时性问题的技术问题,以及现有基于轻量级检测模型的方式由于轻量级模型网络深度浅,难以学习到恶意代码的深层次特征,因此检测准确性相对较低的技术问题,以及现有基于轻量级检测模型的方式在物联网环境快速变化、设备不断更新、恶意代码也在不断进化的情况下,其边缘端物联网设备难以实现检测模型的及时更新,这导致该方式对动态环境的适应性差的技术问题。
2、为实现上述目的,按照本发明的一个方面,提供了一种物联网恶意代码检测模型的更新方法,是应用在包括第一检测模型、云端恶意代码数据中心、以及第二检测模型的环境中,所述更新方法包括以下步骤:
3、(1)边缘端从本地读取多个源文件,并将所有源文件批量转换为多张rgb图像,所有rgb图像构成图像集;
4、(2)边缘端将步骤(1)得到的图像集中的每张rgb图像输入预先训练好的第一检测模型,以得到该rgb图像对应的源文件的检测结果,并根据该检测结果判断该源文件中是否包含恶意代码,如果包含恶意代码,则将该源文件上传至云端的恶意代码数据中心进行数据更新,并转入步骤(3),否则过程结束;
5、(3)云端获取步骤(2)数据更新后的云端恶意代码数据中心中的所有恶意代码样本,并使用该恶意代码样本对预训练好的第二检测模型进行更新,从而得到更新后的第二检测模型;
6、(4)云端利用步骤(3)更新后的第二检测模型对边缘端的第一检测模型进行更新,以得到更新后的第一检测模型;
7、(5)云端判断是否接收到来自客户的终止指令,如果是则过程结束,否则返回步骤(1)。
8、优选地,步骤(1)具体为,获取每个源文件,并读取源文件中的每个字节数据;随后,将每三个字节数据映射到一个rgb像素点,其中第一个字节数据表示红色分量,第二个字节数据表示绿色分量,第三个字节数据表示蓝色分量;随后,将获取的多个rgb像素点填充到图像中,以得到中间图像,该中间图像的高度和宽度根据源文件大小而确定;最后,采用双线性插值法将得到的中间图像的大小缩放至128*128,以得到最终的rgb图像。
9、优选地,第一检测模型是轻量级的图卷积模型,其具体包括起始部分、四个基础模块、三个子采样层以及最后部分,该模型的具体结构为:
10、起始部分,其输入是维度为3*128*128的图像,首先使用一个3*3步长为2的常规卷积处理输入图像,以得到维度为16*64*64的第一特征张量;接着,使用一个3*3深度可分卷积dw-conv对特征张量进行处理,以得到维度为32*64*64的第二特征张量;随后,对得到的第二特征张量进行1*1的逐点卷积操作,以得到第三特征张量;最后,对第三特征张量使用一个步长为2的3*3深度可分卷积进一步采样,以得到维度为32*32*32的第四特征张量。此外,起始部分还在第一层3*3常规卷积输出和1*1的逐点卷积输出之间添加一个快捷连接。
11、第一基础模块,其输入为起始部分输出的维度为32*32*32的第四特征张量,经过一个1*1的卷积将通道数扩大到原来的6倍,以得到维度为192*32*32的第五特征张量,随后,对该第五特征张量进行3*3深度可分卷积处理,以输出维度为192*32*32的第六特征张量,最后,使用一个1*1卷积将第七特征张量的通道数回缩至输入第一基础模块前的数目,最终输出维度为32*32*32的第八特征张量。
12、第一子采样层,其输入为第一基础模块输出的维度为32*32*32的第八特征张量,其首先使用步幅为2的2*2卷积层对第八特征张量进行处理,随后,将处理结果输出给一个批归一化层,以得到维度为64*16*16的第九特征张量。
13、第二基础模块,其输入为第一子采样层输出的第九特征张量,首先对该第九特征向量进行1*1的卷积处理,将通道数扩大到输入的6倍,以得到维度为384*16*16的第十特征张量,然后,对该第十特征张量进行3*3深度可分卷积处理,以输出维度为384*16*16的第十一特征张量,最后再使用一个1*1卷积层对该特征张量进行处理,输出维度为64*16*16的第十二特征张量。
14、第二子采样层,其输入为第二基础模块输出的维度为64*16*16的第十二特征张量,其首先使用步幅为2的2*2卷积层对第十二特征张量进行处理,随后,将处理结果输入一个批归一化层,以得到维度为128*8*8的第十三特征张量;
15、第三基础模块,其输入为第二子采样层输出的维度为128*8*8的第十三特征张量,首先对该第十三特征张量进行1*1的卷积处理,将通道数扩大到输入的6倍,以得到维度为768*8*8的第十四特征张量,然后,对该第十四特征张量进行3*3深度可分卷积处理,以得到维度为768*8*8的第十五特征张量,最后,使用一个1*1卷积层对该第十五特征张量进行处理,以输出维度为128*8*8的第十六特征张量。
16、第三子采样层,其输入为第三基础模块输出的维度为128*8*8的第十六特征张量,其首先使用步幅为2的2*2卷积层对第十六特征张量进行处理,随后,将处理结果输入一个批归一化层,以得到维度为256*4*4的第十七特征张量。
17、第四基础模块,其输入为第三子采样层输出的维度为256*4*4的第十七特征张量,首先使用一个1*1的扩展卷积层对该第十七特征张量进行处理,以得到维度为1024*4*4的第十八特征张量,随后,对该第十八特征张量进行3*3的深度可分离卷积处理,以得到维度为1024*4*4的第十九特征张量,最后,使用1*1的卷积对该第十九特征张量进行特征压缩,以输出维度为256*4*4的第二十特征张量。
18、最后部分,其输入为第四基础模块输出的第二十特征张量,首先使用1*1的卷积层对该第二十特征张量进行处理,以得到维度为256*4*4的第二十一特征张量,然后,使用全局平均池化gap将该第二十一特征张量转换成256*1*1的最终特征张量,最后,将最终特征张量输出到全连接分类器中,以得到最终的输出结果。
19、优选地,第一检测模型是通过以下步骤蒸馏训练得到的:
20、(2-1)从virusshare和virustotal网站获取40000个活跃的恶意样本,从多个操作系统和应用软件中提取25000个可执行程序作为良性样本,将每个良性样本和每个恶意样本均转换成大小为128*128的二分类图像,所有的二分类图像构成数据集,将该数据集按照8:2的比例划分为训练集和验证集,并初始化第一检测模型的模型参数,以得到初始化后的第一检测模型;具体为:将第一检测模型的训练批大小设为128,学习率设置为0.001,选择adam优化算法,将蒸馏温度t和参数γ分别设置为1和1.5。
21、(2-2)针对步骤(2-1)中获取的训练集中的每个样本而言,将该样本输入初始化后的第一检测模型的起始部分,以获取该样本对应的、维度为32*32*32的特征张量;
22、(2-3)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-2)获取的该样本对应的特征张量输入第一检测模型的第一基础模块,以获取该样本对应的、维度为32*32*32的特征张量;
23、(2-4)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-3)获取的该样本对应的特征张量输入第一检测模型的第一子采样层,以获取该样本对应的、维度为64*16*16的特征张量;
24、(2-5)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-4)获取的该样本对应的特征张量输入第一检测模型的第二基础模块,以获取该样本对应的、维度为64*16*16的特征张量;
25、(2-6)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-5)获取的该样本对应的特征张量输入第一检测模型的第二子采样层,以获取该样本对应的、维度为128*8*8的特征张量;
26、(2-7)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-6)获取的该样本对应的特征张量输入第一检测模型的第三基础模块,以获取该样本对应的、维度为128*8*8的特征张量;
27、(2-8)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-7)获取的该样本对应的特征张量输入第一检测模型的第三子采样层,以获取该样本对应的、维度为256*4*4的特征张量;
28、(2-9)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-8)获取的该样本对应的特征张量输入第一检测模型的第四基础模块,以获取该样本对应的、维度为256*4*4的特征张量;
29、(2-10)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-9)获取的该样本对应的特征张量输入第一检测模型的head部分,以获取该样本对应的、维度为256*1*1的最终输出特征张量,并将该最终输出特征张量输入全连接层,以得到该样本对应的预测值;
30、(2-11)针对步骤(2-1)中获取的训练集中的每个样本而言,根据步骤(2-11)得到的该样本对应的预测值计算总损失值lsum;总损失值等于:
31、lsum=lgt+lmofa;
32、其中lgt为步骤(2-10)获取的该样本对应的预测值与该样本中预测目标的真实值之间的交叉熵损失,lmofa表示知识蒸馏损失;
33、(2-12)针对步骤(2-1)中获取的训练集中的每个样本而言,根据步骤(2-11)获取的该样本的总损失值、并利用反向传播方法对第一检测模型进行迭代训练,直到该第一检测模型收敛为止,从而获取初步训练好的第一检测模型;
34、(2-13)利用步骤(2-1)得到的验证集对步骤(2-12)初步训练好的第一检测模型进行验证,以得到最终训练好的第一检测模型。
35、优选地,知识蒸馏损失lmofa是通过以下步骤得到的:
36、(2-11-1)为第一检测模型每个阶段层设置对应的投影器,以处理不同阶段层输出的不同维度的特征。
37、(2-11-2)针对步骤(2-1)中获取的训练集中的每个样本而言,将该样本输入已训练好的第二检测模型,以得到维度为512*1*1的最终输出特征teacher_logits,并通过该最终输出特征teacher_logits计算第二检测模型对该样本的预测概率分布pt:
38、pt=softmax(teacher_logits/t)
39、(2-11-3)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-3)得到该样本对应的特征张量输入至第一阶段层的投影器中,以得到维度为512*1*1的投影器输出特征张量stage1_logits,并通过投影器输出特征张量stage1_logits计算第一阶段层的知识蒸馏损失lofa1;
40、(2-11-4)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-5)得到的该样本对应的特征张量输入至第二阶段层的投影器中,以得到维度为512*1*1的投影器输出特征张量stage2_logits,并根据该投影器输出特征张量stage2_logits、并使用与步骤(2-11-3)相同的方法计算第二阶段层的知识蒸馏损失lofa2。
41、(2-11-5)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-7)得到的该样本对应的特征张量输入至第三阶段层的投影器中,以得到维度为512*1*1的投影器输出特征张量stage3_logits,并根据该投影器输出特征张量stage3_logits、并使用与步骤(2-11-2)相同的方法计算第三阶段层的知识蒸馏损失lofa3。
42、(2-11-6)针对步骤(2-1)中获取的训练集中的每个样本而言,将步骤(2-9)得到的该样本对应的特征张量输入至第四阶段层的投影器中,以得到维度为512*1*1的投影器输出特征张量stage4_logits,并根据该投影器输出特征张量stage4_logits、并使用与步骤(2-11-3)相同的方法计算第四阶段层的知识蒸馏损失lofa4。
43、(2-11-7)针对步骤(2-1)中获取的训练集中的每个样本而言,根据步骤(2-10)得到的该样本对应的维度为256*1*1的最终输出特征张量,并使用与步骤(2-11-3)相同的方法计算第一检测模型最终输出的知识蒸馏损失lofal
44、(2-11-8)将步骤(2-11-3)至步骤(2-11-6)得到的各个阶段层的知识蒸馏损失、以及步骤(2-11-7)得到的模型最终输出的知识蒸馏损失进行权重求和,以得到最终的知识蒸馏损失lmofa:
45、lmofa=0.8*(lofa1+lofa2+lofa3)+0.9*lofa4+lofal;
46、
47、优选地,步骤(2-11-1)具体为,
48、第一检测模型的前两个阶段层采用线性投影器,其中每个线性投影器的结构为:首先是一个1*1卷积,将第一检测模型的第一或第二阶段层的输出特征通道数与第二检测模型输出对齐,随后接入一个自适应平均池化层,将任何大小的输入特征图池化成1*1大小,再接入展平层将多维数据展平成一维,最后接入全连接层根据特征维度和目标分类数,将展平后的特征映射到类别输出;
49、第三阶段层使用混合投影器,其在上述线性投影器基础上,在输入头部加上一层3*3卷积,通过3*3卷积和随后的1*1卷积逐步将第一检测模型第三阶段层输出特征维度增加到与第二检测模型的输出特征维度适配;
50、第四阶段层使用混合投影器,其是在第三阶段层的混合投影器的基础上,在1*1二维卷积后插入一个多头注意力层,用于捕获特征间的依赖关系,强化模型对特征间复杂关系的学习。
51、步骤(2-11-3)具体为:
52、具体而言,本步骤首先通过投影器输出特征张量stage1_logits得到第一阶段层的投影器对该样本的预测概率分布ps1:
53、ps1=softmax(stage1_logits/t)
54、然后,通过预测概率分布ps和步骤(2-11-2)得到的预测概率分布pt计算第一阶段层的知识蒸馏损失lofa1:
55、
56、其中,和分别表示预测概率分布ps1和pt中该样本预测为其真实类别的概率,表示所有可能预测到的类别集合,表示遍历对除了真实类别以外所有可能的类别c,将对应的进行累加求和后取平均值。
57、优选地,第二检测模型是基于convnextv2模型得到,具体是通过在其中的7*7卷积模块后添加多头注意力层,并在多头注意力层后添加通道压缩模块得到;
58、步骤(3)中的第二检测模型是通过以下步骤训练得到的:
59、a、从virusshare和virustotal网站获取40000个恶意样本,并从各类操作系统以及各类应用软件中获取25000个可执行程序作为良性样本;
60、b、将步骤a得到的每个良性样本和恶意样本转换为大小为128*128的二分类图像,所有的二分类图像构成数据集,将该数据集按照8:2的比例划分为训练集和验证集;。
61、c、初始化第二检测模型的模型参数,以得到初始化后的第二检测模型;具体是将第一检测模型的训练批大小设为128,学习率设置为0.001,选择adam优化算法。
62、d、针对步骤b获取的训练集中的每个样本(其维度为3*128*128)而言,将该样本输入初始化后的第二检测模型,以输出该样本对应的、维度为512*1*1的最终特征张量,并将该最终特征张量输入全连接层,以得到该样本对应的预测值;
63、e、针对步骤b获取的训练集中的每个样本而言,根据步骤d得到的该样本对应的预测值与该样本的真实值计算交叉熵损失。
64、f、针对步骤b获取的训练集中的每个样本而言,使用步骤e获取的交叉熵损失、并利用反向传播方法对第二检测模型进行迭代训练,直到第二检测模型收敛为止,从而得到初步训练好的第二检测模型;
65、g、使用步骤a得到的验证集对步骤f初步训练好的模型进行验证,以得到最终训练好的第二检测模型。
66、优选地,步骤(3)中对预训练好的第二检测模型进行更新,从而得到更新后的第二检测模型这一过程包括以下步骤:
67、(3-1)获取步骤(2)数据更新后的云端恶意代码数据中心中所有的恶意代码样本。
68、(3-2)对步骤(3-1)获取的所有恶意代码样本进行分析,以判断其攻击类型和攻击方式,以及其所属的恶意代码家族,是否与云端数据中心中对应的原有样本相似,如果是则转入步骤(3-3),否则转入步骤(3-4);
69、(3-3)使用基于微调的增量学习方法对第二检测模型进行训练,以得到更新后的第二检测模型;步骤(3-3)包括以下子步骤:
70、(3-3-1)将步骤(3-1)得到的所有恶意代码样本与云端恶意代码数据中心中与其相似的对应样本按照数量比例3:7结合作为数据集,并按照8:2的比例将数据集集划分为训练集和验证集;
71、(3-3-2)将步骤(3-3-1)得到的数据集中的每个样本转化为rgb图像,所有的rgb图像构成rgb数据集;
72、(3-3-3)对当前的第二检测模型进行初始化操作,以得到初始化后的第二检测模型;
73、(3-3-4)针对步骤(3-3-1)得到的训练集的每一个样本而言,将该样本输入步骤(3-3-3)初始化后的第二检测模型,以得到维度为512*1*1的特征张量,并将该特征张量输入全连接层,得到该样本对应的预测值,并通过预测值与该样本的真实值计算交叉熵损失,并利用该交叉熵损失对第二检测模型进行迭代训练,直到该第二检测模型收敛为止,从而得到初步训练好的第二检测模型。
74、(3-3-5)使用步骤(3-3-1)得到的验证集对步骤(3-3-4)初步训练好的第二检测模型进行验证,以得到更新后的第二检测模型。
75、(3-4)使用基于正则化的增量学习方法对第二检测模型进行训练,以得到更新后的第二检测模型;步骤(3-4)包括以下子步骤:
76、(3-4-1)以当前的第二检测模型作为模型预训练的起点,将从云端数据恶意代码中心随机选择的多个样本与步骤(3-1)得到的恶意代码样本按照7:3的比例结合作为增量学习训练的样本集(其目的在于,确保训练数据集的多样性和全面性),并按照8:2比例将样本集划分为训练集和验证集;
77、(3-4-2)将步骤(3-4-1)得到的样本集中的每个样本转化为rgb图像,所有的rgb图像构成rgb数据集;
78、(3-4-3)对当前的第二检测模型进行初始化操作,以得到初始化后的第二检测模型,并计算初始化后的第二检测模型的fisher信息矩阵(用于衡量模型中各项参数对于数据预测的重要性)。
79、(3-4-4)针对步骤(3-4-1)所得到的训练集中的每一个样本而言,将该样本输入步骤(3-4-3)初始化后的第二检测模型,以得到该样本对应的预测值,根据该样本的预测值与真实值获取交叉熵损失lgt,并根据该交叉熵损失计算总损失lsum:
80、lsum=lgt+∑ifi(θi―θold,i)2,
81、其中fi是步骤(3-4-3)得到的fisher信息矩阵中的第i个对角元素,θi是步骤(3-4-3)初始化后的第二检测模型中第i个参数的值,θold,i是步骤(3-4-3)初始化后的第二检测模型中第i个参数的值,且有i∈[1,第二模型中所有参数的总数];
82、(3-4-5)使用步骤(3-4-4)得到的总损失lsum、并利用反向传播方法对第二检测模型进行迭代训练,直到该第二检测模型收敛为止,从而得到初步训练好的第二检测模型。
83、(3-4-6)使用步骤(3-4-1)得到的验证集对步骤(3-4-5)初步训练好的第二检测模型进行验证,以得到更新后的第二检测模型。
84、优选地,步骤(4)中使用第二检测模型对第一检测模型进行更新这一过程包括以下子步骤:
85、(4-1)判断步骤(3)所得到第二检测模型是否是使用基于微调的增量学习方法训练得到,如果是则转入步骤(4-2),否则转入步骤(4-3)
86、(4-2)对第一检测模型同时进行蒸馏和基于微调的增量学习,得到更新后的第一检测模型,然后转入步骤(4-4);步骤(4-2)包括以下子步骤:
87、(4-2-1)获取步骤(3-3-1)所得到的数据集作为对第一检测模型训练的数据集,并按照8:2的比例将数据集划分为训练集和验证集;
88、(4-2-2)对当前的第一检测模型进行初始化操作,以得到初始化后的第一检测模型;
89、具体而言,初始化操作不涉及重置模型的权重,只是将学习率设置为0.0001,选择adam优化算法,并且在进行增量训练更新前,冻结第一检测模型的前三阶段层的权重;
90、(4-2-3)针对步骤(4-2-1)得到的训练集的每一个样本而言,将该样本输入步骤(4-2-3)初始化后的第一检测模型,以获取该样本对应的预测值,并根据该预测值计算总损失lsum1:
91、lsum1=lgt1+lmofa1
92、其中lgt1表示步骤(4-2-4)获取的该样本对应的预测值与该样本中预测目标的真实值之间的交叉熵损失,lmofa1表示知识蒸馏损失,且有:
93、lmofa1=0.9*lofa4+lofal
94、(4-2-4)使用步骤(4-2-4)得到的总损失lsum1、并利用反向传播方法对第一检测模型进行迭代训练,直到该第一检测模型收敛为止,并在经过验证集验证后得到训练好的第一检测模型,转入步骤(4-4);
95、(4-3)对第一检测模型同时进行蒸馏和基于正则化的增量学习,以得到更新后的第一检测模型,然后转入步骤(4-4);步骤(4-3)包括以下子步骤:
96、(4-3-1)获取步骤(3-4-1)所得到的样本集作为对第一检测模型训练的数据集,并按照8:2比例将数据集划分为训练集和验证集。
97、(4-3-2)对当前的第一检测模型进行初始化操作,以得到初始化后的第一检测模型;
98、(4-3-3)针对步骤(4-3-1)得到的训练集的每一个样本而言,将该样本输入步骤(4-2-3)初始化后的第一检测模型中提取特征并计算总损失:
99、lsum2=lgt2+lmofa2+∑ifi(θi―θold,i)2,
100、知识蒸馏损失lmofa2的值在初始轮次训练时为:lmofa2=0.9*lofa4+lofal,
101、在训练过程中,如果验证集准确率和损失函数连续5个训练轮次没有下降,则知识蒸馏损失为:
102、lmofa2=0.8lofa3+0.9*lofa4+lofal
103、(4-3-4)使用步骤(4-3-3)得到的总损失lsum2、并利用反向传播方法对第一检测模型进行迭代训练,直到该第一检测模型收敛为止,以得到初步训练好的第一检测模型,并利用验证集对初步训练好的第一检测模型进行验证,以得到训练好的第一检测模型。
104、(4-4)对训练好的第一检测模型进行封装序列化处理,并将处理后得到的第一检测模型投入边缘端使用。
105、按照本发明的另一方面,提供了一种物联网恶意代码检测模型的更新系统,是应用在包括第一检测模型、云端恶意代码数据中心、以及第二检测模型的环境中,所述更新系统包括:
106、第一模块,其设置于边缘端,用于从本地读取多个源文件,并将所有源文件批量转换为多张rgb图像,所有rgb图像构成图像集;
107、第二模块,其设置于边缘端,用于将第一模块得到的图像集中的每张rgb图像输入预先训练好的第一检测模型,以得到该rgb图像对应的源文件的检测结果,并根据该检测结果判断该源文件中是否包含恶意代码,如果包含恶意代码,则将该源文件上传至云端的恶意代码数据中心进行数据更新,并转入第三模块,否则过程结束;
108、第三模块,其设置于云端,用于获取第二模块数据更新后的云端恶意代码数据中心中的所有恶意代码样本,并使用该恶意代码样本对预训练好的第二检测模型进行更新,从而得到更新后的第二检测模型;
109、第四模块,其设置于云端,用于利用第三模块更新后的第二检测模型对边缘端的第一检测模型进行更新,以得到更新后的第一检测模型;
110、第五模块,其设置于云端,用于判断是否接收到来自客户的终止指令,如果是则过程结束,否则返回第一模块。
111、总体而言,本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
112、1、本发明由于采用了步骤(2),其将检测模型部署在边缘端物联网设备上,对物联网设备中的恶意代码快速响应,由此解决了现有使用云计算的方式需要将待检测文件上传至云端并等待反馈,导致的延迟和实时性问题。
113、2、本发明由于采用了步骤(2-1)到步骤(2-13),其设计轻量检测模型,并使用知识蒸馏技术将云端高性能模型的检测能力传递给轻量检测模型,提升改进了轻量检测模型的检测能力,由此解决了现有基于轻量级检测模型的方式由于轻量级模型网络深度浅,难以学习到恶意代码的深层次特征,因此检测准确性相对较低的技术问题。
114、3、本发明由于采用了步骤(3)和步骤(4),其先利用增量学习技术对云端高性能模型进行更新,再同时知识蒸馏技术和增量学习技术对轻量检测模型进行更新,解决了现有基于轻量级检测模型的方式在物联网环境快速变化、设备不断更新、恶意代码也在不断进化的情况下,由于其边缘端物联网设备难以进行检测模型更新,导致该方式对动态环境的适应性差的技术问题。
1.一种物联网恶意代码检测模型的更新方法,应用在包括第一检测模型、云端恶意代码数据中心、以及第二检测模型的环境中,其特征在于,所述更新方法包括以下步骤:
2.根据权利要求1所述的物联网恶意代码检测模型的更新方法,其特征在于,步骤(1)具体为,首先,获取每个源文件,并读取源文件中的每个字节数据;随后,将每三个字节数据映射到一个rgb像素点,其中第一个字节数据表示红色分量,第二个字节数据表示绿色分量,第三个字节数据表示蓝色分量;随后,将获取的多个rgb像素点填充到图像中,以得到中间图像,该中间图像的高度和宽度根据源文件大小而确定;最后,采用双线性插值法将得到的中间图像的大小缩放至128*128,以得到最终的rgb图像。
3.根据权利要求1或2所述的物联网恶意代码检测模型的更新方法,其特征在于,
4.根据权利要求1至3中任意一项所述的物联网恶意代码检测模型的更新方法,其特征在于,第一检测模型是通过以下步骤蒸馏训练得到的:
5.根据权利要求4所述的物联网恶意代码检测模型的更新方法,其特征在于,知识蒸馏损失lmofa是通过以下步骤得到的:
6.根据权利要求5所述的物联网恶意代码检测模型的更新方法,其特征在于,
7.根据权利要求6所述的物联网恶意代码检测模型的更新方法,其特征在于,
8.根据权利要求7所述的物联网恶意代码检测模型的更新方法,其特征在于,步骤(3)中对预训练好的第二检测模型进行更新,从而得到更新后的第二检测模型这一过程包括以下步骤:
9.根据权利要求8所述的物联网恶意代码检测模型的更新方法,其特征在于,步骤(4)中使用第二检测模型对第一检测模型进行更新这一过程包括以下子步骤:
10.一种物联网恶意代码检测模型的更新系统,是应用在包括第一检测模型、云端恶意代码数据中心、以及第二检测模型的环境中,其特征在于,所述更新系统包括:
