System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及信息安全领域,具体而言,涉及一种恶意代码同源分析方法、装置、电子设备及可读存储介质。
技术介绍
1、目前,大部分新生成的恶意代码往往是现有恶意代码的变种形式,如果能够提取已有恶意代码家族的同源特征,对新生成的恶意代码进行同源判定,并采用相应的查杀机制,将会极大地提高对恶意代码家族的识别准确率和效率。但是,目前的恶意代码同源分析获取到的语义信息不够充分,恶意代码同源分析的准确性和鲁棒性较差。
技术实现思路
1、有鉴于此,本申请实施例的目的在于提供一种恶意代码同源分析方法、装置、电子设备及可读存储介质,能够达到提高恶意代码同源分析的准确性和鲁棒性。
2、第一方面,本申请实施例提供了一种恶意代码同源分析方法,包括:对恶意代码的二进制文件进行反汇编处理得到汇编代码和过程间控制流程图;获取所述汇编代码的向量表示;将所述向量表示输入文本卷积神经网络,获得所述汇编代码的局部特征;将所述过程间控制流程图输入图卷积神经网络,获得所述汇编代码的全局特征;融合所述局部特征和所述全局特征对所述恶意代码进行同源分析。
3、在上述实现过程中,由于过程间控制流程图是基于控制流程图和函数调用图生成,其中包含了汇编代码的全部关联关系,通过将过程间控制流程图作为图卷积神经网络的输入,提取汇编代码的全局特征,可以实现对汇编代码的全局特征的充分提取,提高全局特征的准确性和完整性。另外,通过将局部特征和全局特征进行融合后对恶意代码进行同源分析,充分考虑了恶意代码的完整特征,提高了恶意代码同
4、在一个实施例中,所述对恶意代码的二进制文件进行反汇编处理得到汇编代码和过程间控制流程图,包括:通过反汇编工具对所述二进制文件进行解析,得到汇编代码表示的设定文件;解析所述设定文件得到基本块之间的调用关系,以得到控制流程图和函数调用图;将所述控制流程图和所述函数调用图进行融合,得到所述过程间控制流程图。
5、在上述实现过程中,由于控制流程图和函数调用图是通过对设定文件进行解析得到基本块之间的调用关系后,基于基本块之间的调用关系确定出来的。因而,该控制流程图和函数调用图可以反馈恶意代码的程序的执行流程和跳转关系,进而使得生成的过程间控制流程图可以真实、完整的反映出恶意代码的实际调用、流转关系,提高过程间控制流程图的真实性和准确性。
6、在一个实施例中,所述解析所述设定文件得到基本块之间的调用关系,以得到控制流程图和函数调用图,包括:通过angr的静态分析技术解析所述汇编代码的指令序列,将所述汇编代码划分为基本块;通过angr的静态分析技术和符号执行技术解析跳转指令的目标地址,并建立基本块之间的跳转关系;根据所述基本块和所述跳转关系生成所述控制流程图和函数调用图。
7、在上述实现过程中,由于angr可以快速分析二进制代码,通过使用angr解析汇编代码的指令序列可以提高二进制解析效率。且angr具有高级符号执行静态程序分析技术,能够准确的识别和定位漏洞,因而,通过angr解析跳转指令的目标地址,并建立基本块之间的跳转关系,以生成控制流程图和函数调用图可以提高控制流程图和函数调用图的准确性。
8、在一个实施例中,所述文本卷积神经网络为textcnn模型,所述将所述向量表示输入文本卷积神经网络,获得所述汇编代码的局部特征,包括:将所述向量表示输入所述textcnn模型,获得所述汇编代码的n-gram局部特征。
9、在上述实现过程中,由于textcnn模型可以捕捉到短语和连续字符序列的语义信息,而不依赖于整个代码的结构,因而可以捕捉到文本中的一些重要的代码片段、api调用序列、指令模式等,这些特征能够在一定程度上揭示恶意代码家族之间的共享行为和相似模式,帮助模型区分不同的家族,并提供一定的准确性和鲁棒性。因而,通过将向量表示输入textcnn模型获得汇编代码的n-gram局部特征,可以提高获取到的局部特征的准确性和鲁棒性。
10、在一个实施例中,所述图卷积神经网络为gcn模型,所述将所述过程间控制流程图输入图卷积神经网络,获得所述汇编代码的全局特征,包括:将所述过程间控制流程图转化为邻接矩阵;将所述邻接矩阵输入所述gcn模型;通过所述gcn模型获取所述邻接矩阵中各个节点的特征;根据所述邻接矩阵中各个节点的特征确定所述汇编代码的全局特征。
11、在上述实现过程中,由于gcn模型可以通过对整个图结构的建模,整合节点的全局信息,从而可以更好地表示节点的特征。因而,通过将过程间控制流程图处理后输入gcn模型获得汇编代码的全局特征,可以通过该gcn模型对汇编代码的全局语义信息充分提取,提高获取到的全局特征的准确性。
12、在一个实施例中,所述获取所述汇编代码的向量表示,包括:将所述汇编代码进行标准化处理;将处理后的汇编代码输入word2vec模型,获得所述汇编代码对应的向量表示。
13、在上述实现过程中,在将汇编代码输入word2vec模型之前,先对汇编代码进行标准化处理,可以优化输入word2vec模型的词表大小,提高word2vec模型处理效率。
14、在一个实施例中,所述将处理后的汇编代码输入word2vec模型,获得所述汇编代码对应的向量表示之前,所述方法还包括:通过gensim库训练所述word2vec模型和/或通过处理后的汇编代码训练所述word2vec模型。
15、在上述实现过程中,通过设置多种类型数据对word2vec模型进行训练,在对word2vec模型进行训练时,可以根据实际情况选择相应的数据对该word2vec模型进行训练,进而可以提高word2vec模型的准确性。
16、第二方面,本申请实施例还提供一种恶意代码同源分析装置,包括:反汇编模块,用于对恶意代码的二进制文件进行反汇编处理得到汇编代码和过程间控制流程图;获取模块,用于获取所述汇编代码的向量表示;局部特征提取模块,用于将所述向量表示输入文本卷积神经网络,获得所述汇编代码的局部特征;全局特征提取模块,用于将所述过程间控制流程图输入图卷积神经网络,获得所述汇编代码的全局特征;融合模块,用于融合所述局部特征和所述全局特征对所述恶意代码进行同源分析。
17、第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面的任一种可能的实施方式中的方法的步骤。
18、第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面的任一种可能的实施方式中恶意代码同源分析方法的步骤。
19、为使本申请的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
本文档来自技高网...【技术保护点】
1.一种恶意代码同源分析方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述对恶意代码的二进制文件进行反汇编处理得到汇编代码和过程间控制流程图,包括:
3.根据权利要求2所述的方法,其特征在于,所述解析所述设定文件得到基本块之间的调用关系,以得到控制流程图和函数调用图,包括:
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述文本卷积神经网络为TextCNN模型,所述将所述向量表示输入文本卷积神经网络,获得所述汇编代码的局部特征,包括:
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述图卷积神经网络为GCN模型,所述将所述过程间控制流程图输入图卷积神经网络,获得所述汇编代码的全局特征,包括:
6.根据权利要求1-3任意一项所述的方法,其特征在于,所述获取所述汇编代码的向量表示,包括:
7.根据权利要求6所述的方法,其特征在于,所述将处理后的汇编代码输入Word2vec模型,获得所述汇编代码对应的向量表示之前,所述方法还包括:
8.一种恶意代码同源分析装置,其特
9.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的方法的步骤。
...【技术特征摘要】
1.一种恶意代码同源分析方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述对恶意代码的二进制文件进行反汇编处理得到汇编代码和过程间控制流程图,包括:
3.根据权利要求2所述的方法,其特征在于,所述解析所述设定文件得到基本块之间的调用关系,以得到控制流程图和函数调用图,包括:
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述文本卷积神经网络为textcnn模型,所述将所述向量表示输入文本卷积神经网络,获得所述汇编代码的局部特征,包括:
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述图卷积神经网络为gcn模型,所述将所述过程间控制流程图输入图卷积神经网络,获得所述汇编代码的全局特征,包括:
【专利技术属性】
技术研发人员:石文轩,安晓宁,
申请(专利权)人:北京天融信网络安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。