本申请涉及恶意代码分类,具体而言,涉及一种生成训练样本、训练代码分类模型的方法及装置。
背景技术:
1、近年来,互联网上的恶意代码急剧增加,virustotal报告每天都有数千个恶意代码样本被上传至virustotal进行检测,由此可知,恶意代码对网络安全构成了巨大威胁。
2、目前,现有的对恶意代码检测是通过引入代码检测规则进行检测,而代码检测规则是由安全人员对大量数据进行分析获取的。然而,该方法并不能跟上恶意代码的更新速度,因此检测准确率无法保证。
3、因此,如何提供一种效果较好的对恶意代码检测的技术方案成为亟需解决的技术问题。
技术实现思路
1、本申请的一些实施例的目的在于提供一种生成训练样本、训练代码分类模型的方法及装置,通过本申请的实施例的技术方案可以在生成训练样本的过程中降低占用空间,提升训练样本数据质量,进而保证训练模型的训练效果和检测准确度。
2、第一方面,本申请的一些实施例提供了一种种生成训练样本的方法,包括:对程序代码文件中的编码对象进行编码,获取编码表,其中,所述编码对象包括:操作码、操作数和标志寄存器中的至少一种;基于所述编码表对程序代码文件进行样本编码,获取样本数据;将所述样本数据输入至训练好的目标编码模型,得到训练样本数据,其中,所述训练样本数据与所述编码对象的关联信息相关。
3、本申请的一些实施例通过对程序代码文件中的编码对象进行编码得到编码表后,然后对整个程序代码文件进行样本编码获取样本数据,最后将样本数据输入至目标编码模型得到训练样本数据。本申请的一些实施例可以对不同类型的编码对象进行简单编码,生成训练样本的过程中降低了占用空间,提升了训练样本数据质量,进而保证了训练模型的效果。
4、在一些实施例,所述对程序代码文件中的编码对象进行编码,获取编码表,包括:从所述程序代码文件中提取操作语句,并统计所述操作语句中所述编码对象的词频,生成与所述编码对象对应的词表;基于所述词频对所述编码对象进行排序并编码,获得所述编码表。
5、本申请的一些实施例通过对程序代码文件中的操作语句进行统计得到词表,对词表进行处理得到编码表,编码方式简便易于操作,占用空间较少。
6、在一些实施例,所述基于所述词频对所述编码对象进行排序并编码,获得所述编码表,包括:按照所述词频从高到低的顺序对所述编码对象进行排序,得到编码序列;确认所述编码序列中的字符数超过预设阈值,则对所述编码序列中的部分字符从预设值进行顺序编码,得到第一子编码表,并对所述编码序列中除所述部分字符之外的剩余字符编码为设定值,得到第二子编码表;其中,所述第一子编码表和所述第二子编码表构成初始编码表;基于所述初始编码表确定所述编码表。
7、本申请的一些实施例通过对词频排序和根据字符数选择编码方式,编码方式简便易于操作,占用空间较少。
8、在一些实施例,所述编码对象不包括所述标志寄存器时,所述基于所述初始编码表确定所述编码表,包括:将所述初始编码作表为所述编码表;当所述编码对象包括所述标志寄存器时,所述基于所述初始编码表确定所述编码表,包括:在所述初始编码表的末端添加标志寄存器变化符,得到所述编码表。
9、本申请的一些实施例可以实现对不同编码对象的编码处理,适应性较广。
10、在一些实施例,在所述将所述样本数据输入至训练好的目标编码模型之前,所述方法还包括:获取正编码样本数据和负编码样本数据,其中,所述正编码样本数据包括中心词以及与所述中心词关联的文本信息,所述负编码样本数据包括中心词以及与所述中心词不关联的文本信息;利用所述正编码样本数据对初始编码模型的正向词嵌入层进行训练,得到待验证正向词嵌入层;利用所述负编码样本数据对初始编码模型的负向词嵌入层进行训练,得到待验证负向词嵌入层;通过损失函数计算所述待验证正向词嵌入层和所述待验证负向词嵌入层的总损失;确认所述总损失不大于预设损失值,则输出所述目标编码模型。
11、本申请的一些实施例通过含有关联的文本信息和不关联的文本信息对初始编码模型进行正向和负向训练,得到最优的目标编码模型,以此使得目标编码模型可以输出的数据与上下文信息关联性强,提升了训练样本数据质量。
12、第二方面,本申请的一些实施例提供了一种训练代码分类模型的方法,包括:获取由第一方面任一实施例所述的方法得到的训练样本数据;对所述训练样本数据的维度进行调整,得到训练数据集;利用所述训练数据集对初始神经网络模型训练,获取目标代码分类模型。
13、本申请的一些实施例通过上述得到的训练样本数据对模型进行训练,模型分类效果较好。
14、在一些实施例,在所述获取目标代码分类模型之后,所述方法还包括:利用所述训练数据集对所述目标代码分类模型和注意力模块组成的整体模型进行训练,获取训练好的目标注意力模块;将样本数据输入至所述目标注意力模块,获取增强样本和注意力矩阵;通过对所述注意力矩阵进行分析,优化所述目标代码分类模型。
15、本申请的一些实施例通过注意力模块对目标代码分类模型进行归因分析,可以提升目标代码分类模型的检测精准度。
16、第三方面,本申请的一些实施例提供了一种生成训练样本的装置,包括:编码模块,被配置为对程序代码文件中的编码对象进行编码,获取编码表,其中,所述编码对象包括:操作码、操作数和标志寄存器中的至少一种;文件编码模块,被配置为基于所述编码表对程序代码文件进行样本编码,获取样本数据;样本输出模块,被配置为将所述样本数据输入至训练好的目标编码模型,得到训练样本数据,其中,所述训练样本数据与所述编码对象的关联信息相关。
17、第四方面,本申请的一些实施例提供了一种训练代码分类模型的装置,包括:样本获取模块,被配置为获取由权利要求1-5中任一项所述的方法得到的训练样本数据;样本处理模块,被配置为对所述训练样本数据的维度进行调整,得到训练数据集;训练模块,被配置为利用所述训练数据集对初始神经网络模型训练,获取目标代码分类模型。
18、第五方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任一实施例所述的方法。
19、第六方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任一实施例所述的方法。
20、第七方面,本申请的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的方法。
1.一种生成训练样本的方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述对程序代码文件中的编码对象进行编码,获取编码表,包括:
3.如权利要求2所述的方法,其特征在于,所述基于所述词频对所述编码对象进行排序并编码,获得所述编码表,包括:
4.如权利要求3所述的方法,其特征在于,所述编码对象不包括所述标志寄存器时,所述基于所述初始编码表确定所述编码表,包括:
5.如权利要求1-3中任一项所述的方法,其特征在于,在所述将所述样本数据输入至训练好的目标编码模型之前,所述方法还包括:
6.一种训练代码分类模型的方法,其特征在于,包括:
7.如权利要求6所述的方法,其特征在于,在所述获取目标代码分类模型之后,所述方法还包括:
8.一种生成训练样本的装置,其特征在于,包括:
9.一种训练代码分类模型的装置,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中,所述计算机程序被处理器运行时执行如权利要求1-7中任意一项权利要求所述的方法。
11.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器运行时执行如权利要求1-7中任意一项权利要求所述的方法。