恶意代码同源性分析方法、装置、电子设备及存储介质与流程

文档序号:36326961发布日期:2023-12-09 17:12阅读:69来源:国知局
恶意代码同源性分析方法与流程

本技术涉及网络安全,具体而言,涉及一种恶意代码同源性分析方法、装置、电子设备及存储介质。


背景技术:

1、随着云计算和加密货币的广泛应用,全球互联网用户面临着越来越高级、持续性的恶意代码攻击风险。攻击者不断更新勒索和病毒注入方式以达到更为具体的攻击目的。目前主流的恶意代码检测技术无法检测新型未知恶意代码,因为恶意软件作者可以通过多种编码行为来绕过现有代码检测技术,如使用代码加密、压缩、变形等方式来改变恶意代码的特征,从而使得其无法被正确检测且误报率较高。


技术实现思路

1、本技术实施例的目的在于提供一种恶意代码同源性分析方法、装置、电子设备及存储介质,将恶意代码的视觉特征和恶意代码的汇编代码序列特征进行结合,实现了多模态特征融合,可获得更全面、准确的特征信息,提高检测准确率,解决了现有方法检测结果准确率不高的问题。

2、本技术实施例提供了一种恶意代码同源性分析方法,所述方法包括:

3、将待检测代码转化为灰度图像;

4、逆向生成所述待检测代码的反汇编代码;

5、基于所述汇编代码进行特征嵌入和拼接,获得特征矩阵;

6、将所述灰度图像和所述特征矩阵输入预训练的基于transformer的双编码器模型获得双模态特征,所述双模态特征包括图像模态特征和代码序列特征;

7、将所述图像模态特征和代码序列特征分别非线性投影到相同的嵌入空间中,获得视觉特征重投影矩阵和代码序列特征重投影矩阵;

8、使用加型注意力机制计算视觉特征重投影矩阵和代码序列特征重投影矩阵之间的相似度;

9、基于所述相似度分别对所述视觉特征重投影矩阵和代码序列特征重投影矩阵进行特征融合和拼接,获得特征融合矩阵;

10、基于所述特征融合矩阵进行特征匹配计算,获得分析结果。

11、在上述实现过程中,将恶意代码的视觉特征和恶意代码的汇编代码序列特征进行结合,实现了多模态特征融合,充分发挥不同模态的优势,在恶意代码分析中获得更全面、准确的特征信息,解决了现有方法检测结果准确率不高的问题。

12、进一步地,所述将待检测代码转化为灰度图像,包括:

13、将所述待检测代码的字节码序列转化为一维原始像素数据流;

14、基于所述一维原始像素数据流设定所述待检测代码的宽度;

15、将所述字节码序列中的字节转换为整数范围[0,255];

16、将生成的整数字节序列按照所述宽度转化为二维矩阵,且长度不足的用0补齐;

17、将所述二维矩阵进行等比例缩放,获得灰度图像gi,且维度大小满足gi∈rh×h。

18、在上述实现过程中,将代码转换成灰度图像,以便利用灰度图像提取视觉特征。

19、进一步地,所述基于所述汇编代码进行特征嵌入和拼接,获得特征矩阵,包括:

20、提取所述汇编代码中的子例程特征集合;

21、提取所述汇编代码中的关键块队列;

22、利用所述子例程特征集合并按照队列顺序对关键块进行特征嵌入和拼接操作,获得特征矩阵。

23、在上述实现过程中,利用关键块提取和子例程特征提取来捕获汇编代码序列特征,相比于全面分析整个代码,仅分析关键块和子例程可以大大减少计算和检测时间,从而更加针对性地提取恶意代码的特征。

24、进一步地,所述利用所述子例程特征集合并按照队列顺序对关键块进行特征嵌入和拼接操作,获得特征矩阵,包括:

25、对所述子例程特征集合中的操作码使用one-hot进行编码并使用word2vec进行词向量嵌入,获得嵌入矩阵;

26、将每个关键块中的操作码和操作数按照队列顺序分别进行特征嵌入,转化为特征向量;

27、若所述关键块中出现子例程名称,则替换为对应的嵌入矩阵;

28、按照队列顺序进行嵌入和拼接,直至达到最大模型输入长度n,停止拼接,得到特征矩阵。

29、在上述实现过程中,利用关键块提取和子例程提取方法来捕获汇编代码序列特征,且对长度进行了限制,从而减少数据处理的复杂性和成本,降低不必要的计算和存储需求,从而提高计算资源的利用效率。

30、进一步地,所述将所述灰度图像和所述特征矩阵输入预训练的基于transformer的双编码器模型获得双模态特征,包括:

31、利用vit模型从所述灰度图像中提取特征,得到图像模态特征;

32、将所述特征矩阵输入bert模型,获得代码序列特征。

33、在上述实现过程中,vit模型能够更准确地捕获恶意代码图像的相关特征,而bert模型则能更好地捕获代码序列的语义信息,因此,可以更精确地表示恶意代码的关键特征。

34、进一步地,所述利用vit模型从所述灰度图像中提取特征,得到图像模态特征,包括:

35、将所述灰度图像分解成m个不重叠的patch块,

36、利用投影矩阵将patch块转换成嵌入向量

37、通过位置编码生成初始视觉特征序列其中,dv为所述vit模型设定的嵌入维度;

38、基于所述初始视觉特征序列获得图像模态特征

39、hi=mhsa(ln(vi))+vi;

40、vi′=mlp(ln(hi))+hi;

41、其中,ln(·)表示层归一化,mhsa(·)表示多头自注意力,mlp(·)表示全连接层。

42、在上述实现过程中,利用vit模型能够更准确地捕获恶意代码图像的相关特征。

43、进一步地,所述使用加型注意力机制计算视觉特征重投影矩阵和代码序列特征重投影矩阵之间的相似度,包括:

44、计算视觉特征重投影矩阵中的第k个patch块的特征向量与代码序列特征重投影矩阵的每行向量之间的视觉注意力分数mj:

45、

46、其中,表示视觉特征重投影矩阵的第k行向量,表示代码序列特征重投影矩阵的第j行向量,σ表示非线性激活函数,表示可学习的权重参数向量,de表示可学习的权重参数向量的维度;

47、基于所述视觉注意力分数计算第k个patch块的特征向量与代码序列特征重投影矩阵的每行向量之间的相似度:

48、

49、在上述实现过程中,利用加型注意力机制计算图像-文本对之间的相似度,以便进行多模态特征融合后能够包含代码序列到图像与图像到代码序列之间的交叉特征。

50、进一步地,所述基于所述相似度分别对所述视觉特征重投影矩阵和代码序列特征重投影矩阵进行特征融合和拼接,获得特征融合矩阵,包括:

51、基于所述相似度获得视觉特征重投影矩阵中的每个patch块的带有融合信息的新特征向量:

52、

53、将所述新特征向量拼接生成新特征矩阵:

54、

55、获得代码序列特征重投影矩阵对应的单模态特征矩阵

56、

57、对所述新特征矩阵和所述单模态特征矩阵进行拼接,获得特征融合矩阵:

58、

59、其中,[;]表示拼接操作。

60、在上述实现过程中,通过特征融合,使得特征融合矩阵包含了获得的代码序列到图像与图像到代码序列之间的交叉特征。

61、进一步地,所述方法还包括对所述基于transformer的双编码器模型进行训练:

62、设置总体优化目标函数:

63、l=lfusion+λlmc;

64、其中,λ表示平衡多模态对比损失和多模态预测损失的损失系数;

65、lmc表示基于监督学习的多模态对比损失函数:

66、

67、其中,τ表示温度参数;样本的特征融合矩阵表示为样本数量为2b;

68、lfusion表示最小化多模态预测损失:

69、

70、其中,yi表示样本在第i个的类别的正样本标签,是多模态分类器的经过全连接层之后的softmax输出;

71、对所述总体优化目标函数进行最小化,以获得最优模型参数。

72、在上述实现过程中,将针对恶意代码同源性分析的多模态对比损失和多模态预测损失作为优化目标,这些损失函数能够使模型在学习过程中更好地区分不同恶意代码家族的特征,提高分类准确性和模型的鲁棒性。

73、本技术实施例还提供一种恶意代码同源性分析装置,所述装置包括:

74、灰度图像获取模块,用于将待检测代码转化为灰度图像;

75、反汇编模块,用于逆向生成所述待检测代码的反汇编代码;

76、特征矩阵获取模块,用于基于所述汇编代码进行特征嵌入和拼接,获得特征矩阵;

77、双模态特征获取模块,用于将所述灰度图像和所述特征矩阵输入预训练的基于transformer的双编码器模型获得双模态特征,所述双模态特征包括图像模态特征和代码序列特征;

78、重投影模块,用于将所述图像模态特征和代码序列特征分别非线性投影到相同的嵌入空间中,获得视觉特征重投影矩阵和代码序列特征重投影矩阵;

79、相似度计算模块,用于使用加型注意力机制计算视觉特征重投影矩阵和代码序列特征重投影矩阵之间的相似度;

80、特征融合模块,用于基于所述相似度分别对所述视觉特征重投影矩阵和代码序列特征重投影矩阵进行特征融合和拼接,获得特征融合矩阵;

81、结果获取模块,用于基于所述特征融合矩阵进行特征匹配计算,获得分析结果。

82、在上述实现过程中,将恶意代码的视觉特征和恶意代码的汇编代码序列特征进行结合,实现了多模态特征融合,充分发挥不同模态的优势,在恶意代码分析中获得更全面、准确的特征信息,解决了现有方法检测结果准确率不高的问题。

83、本技术实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行上述中任一项所述的恶意代码同源性分析方法。

84、本技术实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的恶意代码同源性分析方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1