基于Bert与监督对比学习的动态恶意软件检测方法与流程

专利检索2026-06-14  4


本发明涉及恶意软件检测,具体涉及一种基于bert与监督对比学习的动态恶意软件检测方法、一种基于bert与监督对比学习的动态恶意软件检测系统、一种计算机设备、一种计算机可读存储介质及一种计算机程序产品。


背景技术:

1、本部分的陈述仅仅是提供了与本发明相关的背景技术,并不必然构成现有技术。

2、近年来,关于恶意软件检测的学术研究迅速增加。早期,基于签名的检测方法被广泛使用,随着时间的流逝,研究人员已经开始使用基于行为、启发式等技术进行恶意代码检测。基于签名的检测方法在商业防病毒软件中被广泛使用,在签名生成期间,使用静态功能,例如字节序列、汇编指令、字符串、操作码和dll列表,基于签名的检测方法可减少开销和执行时间,可以快速有效地检测已知恶意软件,但它无法检测到使用混淆和多态技术的新一代恶意软件;同时,属于同一家族的恶意软件也可以通过使用混淆技术轻松逃避基于签名的检测,此外,提取签名需要大量的人力。

3、基于行为的恶意软件检测方法使用监控工具观察程序行为,并确定程序是恶意软件还是良性软件,这属于动态分析技术,一般使用虚拟机或者沙箱执行恶意软件文件并捕获恶意软件运行时的活动,生成一个包含所有信息的运行行为报告,运行行为包括文件系统操作、注册表项更改、进程执行和网络活动,基于行为的检测可以用于确定是否为恶意软件的相关功能,当恶意软件的指令序列和签名发生变化时,恶意软件的功能也会或多或少地发生对应的变化。因此,它可以检测新的恶意软件,以及同一恶意软件的不同变种,对混淆和多态技术也可进行有效的识别。

4、在采用基于行为的恶意软件检测方法时,常使用n-gram算法、哈希编码或者距离算法进行特征处理,上述的特征处理方式并不能将样本的行为信息完全描述出来,难以识别提取的特性之间的异同。bert是一种语言模型,它在自然语言处理领域的多项任务上获得了不错的结果,bert的核心是transformer,与lstm等递归神经网络相比,transformer完全依靠注意力机制进行序列建模,bert利用一种新的预训练目标,使输入文本中的一些单词被随机屏蔽,模型尝试根据上下文预测屏蔽的单词,因此提供了比传统方法更丰富的语义表示,有助于提高模型在理解复杂语言结构和含义方面的能力。

5、在bert模型训练阶段,交叉熵损失是深度分类模型监督学习中应用最广泛的损失函数,但这种损失函数也存在着一些缺点,如对噪声标签缺乏鲁棒性、分类边界较差等。为了解决模型泛化性能差和概念漂移等问题,许多研究提出了对比学习的概念,对比学习旨在通过最大化相关样本之间的相似性并最小化不相关样本之间的相似性来学习数据表示,通常使用一种高自由度、自定义的规则生成正负样本,在模型预训练中有着广泛的应用。但对比学习对于硬负样本的挖掘过程难以调整且计算成本高,为了有效地区分正负样本对,自监督对比学习可能需要更多的训练数据以及更复杂的数据处理步骤,这可能导致训练过程的计算资源消耗增加。


技术实现思路

1、为了解决现有技术的不足,本发明提供了一种基于bert与监督对比学习的动态恶意软件检测方法,在对比学习的基础上考虑标签的影响,利用标签信息,将来自同一个类的良性与恶意样本拉得更紧密,来自不同类的样本距离拉得更远,提高了检测模型的泛化能力,同时减少了对应负样本挖掘的依赖。

2、为了实现上述目的,本发明采用如下技术方案:

3、第一方面,本发明提供了一种基于bert与监督对比学习的动态恶意软件检测方法。

4、一种基于bert与监督对比学习的动态恶意软件检测方法,包括以下过程:

5、将预处理后的api调用信息中的字符型信息进行编码,基于预编译的bert模型得到字符型api调用特征向量;

6、将预处理后的api调用信息中的数值型信息进行编码,得到数值型api调用特征向量;

7、计算api调用信息中字符型参数的统计特征,得到api字符型参数统计特征向量;

8、对字符型api调用特征向量、数值型api调用特征向量和api字符型参数统计特征向量进行拼接;

9、基于拼接后的api调用特征,结合训练好的检测模型,得到恶意软件检测结果;其中,检测模型的预训练阶段通过最小化监督对比损失函数更新检测模型权重。

10、作为本发明第一方面进一步的限定,api调用信息的预处理,包括:

11、在cuckoo沙箱中获取样本运行时行为报告,在样本运行行为报告中获取api调用的具体信息包括api类别、api名称和api参数,基于哈希函数生成api调用时的散列值,删除重复api调用。

12、作为本发明第一方面进一步的限定,将预处理后的api调用信息中的字符型信息进行编码,得到字符型api调用特征向量,包括:

13、获取样本运行行为报告中的api名称、api类别以及字符型api调用参数;

14、过滤掉以‘0x’开头的参数后,按照设定的自然语言生成格式将参数过滤后的信息转换为适合理解的自然语言格式的句子;

15、基于生成的自然语言格式的句子,通过预编译的bert模型进行编码,将bert模型的最后一层输出的平均值作为字符型api调用特征向量。

16、作为本发明第一方面进一步的限定,将预处理后的api调用信息中的数值型信息进行编码,得到数值型api调用特征向量,包括:

17、基于预处理后的api调用信息,获取数值型的api调用参数,参数以键值对的形式存在,得到参数名以及对应的参数值;

18、过滤出属于整数或者浮点数的参数值,执行对数转换与哈希编码,得到经过哈希编码和对数变换处理后的一个压缩表示,以所述压缩表示作为数值型参数的特征向量。

19、作为本发明第一方面进一步的限定,计算api调用信息中字符型参数的统计特征,得到api字符型参数统计特征向量,包括:

20、基于预处理后的api调用信息,获取字符型的api调用参数,过滤掉以‘0x’开头的字符型参数;

21、获取字符型参数的统计特征,包括字符型参数总数、字符参数长度平均值、字符参数中字符总数、字符分布熵值、以及字符型参数中包含文件路径、注册表、ip地址、url和dll文件的数量;

22、将计算得到的字符型参数的统计特征进行拼接,得到api字符型参数统计特征向量。

23、作为本发明第一方面进一步的限定,检测模型的预训练,包括:

24、将api调用特征分别输入到模型a与模型b中,模型a对api调用特征进行前向传播后停止梯度更新;

25、依据模型a的输出、模型b的输出以及标签信息通过监督对比损失函数计算损失;

26、根据对比损失函数计算模型b的梯度,再通过优化算法更新模型b的权重;

27、在模型b的权重更新完成后,模型a的权重通过与模型b权重的加权平均进行间接更新,作为下一轮迭代的模型a权重,预训练结束后获取训练好的模型b权重;

28、检测模型的结构与模型b的结构相同,将训练好的模型b权重迁移到检测模型中,基于权重迁移后的检测模型对api调用特征进行学习和降维,将学习和降维后的api调用特征输入到分类器中进行分类,得到恶意软件分类检测结果。

29、第二方面,本发明提供了一种基于bert与监督对比学习的动态恶意软件检测系统。

30、一种基于bert与监督对比学习的动态恶意软件检测系统,包括:

31、字符型api调用特征向量生成单元,被配置为:将预处理后的api调用信息中的字符型信息进行编码,基于预编译的bert模型得到字符型api调用特征向量;

32、数值型api调用特征向量生成单元,被配置为:将预处理后的api调用信息中的数值型信息进行编码,得到数值型api调用特征向量;

33、api字符型参数统计特征向量生成单元,被配置为:计算api调用信息中字符型参数的统计特征,得到api字符型参数统计特征向量;

34、向量拼接单元,被配置为:对字符型api调用特征向量、数值型api调用特征向量和api字符型参数统计特征向量进行拼接;

35、恶意软件检测结果生成单元,被配置为:基于拼接后的api调用特征,结合训练好的检测模型,得到恶意软件检测结果;其中,检测模型的预训练阶段通过最小化监督对比损失函数更新检测模型权重。

36、第三方面,本发明提供了一种计算机设备,包括:处理器和计算机可读存储介质;

37、处理器,适于执行计算机程序;

38、计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如本发明第一方面所述的基于bert与监督对比学习的动态恶意软件检测方法。

39、第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如本发明第一方面所述的基于bert与监督对比学习的动态恶意软件检测方法。

40、第五方面,本发明提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时,实现如本发明第一方面所述的基于bert与监督对比学习的动态恶意软件检测方法。

41、与现有技术相比,本发明的有益效果是:

42、1、本发明不仅考虑api调用名称与类别,还考虑了api调用时参数以及参数的统计特征,将api调用信息细分为字符型api调用与数值型api调用,对于字符型api调用将其转换为自然语言格式后,通过bert模型进行嵌入,获得字符型api调用的特征向量,对于数值型api调用使用对数转换以及哈希编码,考虑参数名与参数值的对应关系,获得数值型api调用的特征向量,对于字符型参数的统计特征,考虑字符型参数总数、字符参数长度平均值、字符参数中字符总数、字符分布熵值以及参数中包含文件路径、注册表、ip地址、url和dll文件的数量等统计信息作为统计特征,能够更全面地捕捉api调用的特性,提高模型泛化能力,增强特征的解释性。

43、2、本发明通过计算模型a与模型b两个模型的输出结果与标签的对比损失,反向更新模型b的权重,使用监督对比学习鼓励编码器为同一类中的样本提供紧密对齐的表示,从而产生比自监督对比学习更稳健的聚类,将训练好的模型权重迁移到检测模型中进行训练与学习,最后通过分类器输出分类结果,提高了检测模型的泛化能力与分类准确率。

44、本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。


技术特征:

1.一种基于bert与监督对比学习的动态恶意软件检测方法,其特征在于,包括以下过程:

2.如权利要求1所述的基于bert与监督对比学习的动态恶意软件检测方法,其特征在于,

3.如权利要求1所述的基于bert与监督对比学习的动态恶意软件检测方法,其特征在于,

4.如权利要求1所述的基于bert与监督对比学习的动态恶意软件检测方法,其特征在于,

5.如权利要求1所述的基于bert与监督对比学习的动态恶意软件检测方法,其特征在于,

6.如权利要求1所述的基于bert与监督对比学习的动态恶意软件检测方法,其特征在于,

7.一种基于bert与监督对比学习的动态恶意软件检测系统,其特征在于,包括:

8.一种计算机设备,其特征在于,包括:处理器和计算机可读存储介质;

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-6任一项所述的基于bert与监督对比学习的动态恶意软件检测方法。

10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-6任一项所述的基于bert与监督对比学习的动态恶意软件检测方法。


技术总结
本发明提供了一种基于Bert与监督对比学习的动态恶意软件检测方法,属于恶意软件检测技术领域。将预处理后的API调用信息中的字符型信息进行编码,基于预编译的Bert模型得到字符型API调用特征向量;将预处理后的API调用信息中的数值型信息进行编码,得到数值型API调用特征向量;计算API调用信息中字符型参数的统计特征,得到API字符型参数统计特征向量;对上述特征向量进行拼接,基于拼接后的API调用特征,结合训练好的检测模型,得到恶意软件检测结果;其中,检测模型的预训练阶段通过最小化监督对比损失函数更新检测模型权重;本发明提高了检测模型的泛化能力,同时减少了对应负样本挖掘的依赖。

技术研发人员:杨淑棉,杨永琪,赵大伟,徐丽娟,李鑫,于福强
受保护的技术使用者:山东省计算中心(国家超级计算济南中心)
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1163843.html

最新回复(0)