恶意代码的特征码提取方法、装置和计算机设备与流程

文档序号:25889831发布日期:2021-07-16 19:38阅读:503来源:国知局
恶意代码的特征码提取方法、装置和计算机设备与流程

1.本发明涉及安全威胁处理技术领域,尤其涉及一种恶意代码的特征码提取方法、装置和计算机设备。


背景技术:

2.随着计算机网络技术的飞速发展,尤其是互联网的应用变得越来越广泛,在给人们生活带来便利的同时,计算机恶意程序对网络信息安全性的威胁也愈加巨大。这些恶意程序一旦发作就会对计算机系统造成破坏,轻则篡改文件、影响系统稳定、窃取信息,重则导致系统瘫痪,甚至破坏系统整体硬件部分,严重地会威胁到信息的安全,造成不可估计的损失。
3.在现有技术中,对未知的恶意程序的检测时,通常需要人工经验进行分析,但是,人工经验有一定的滞后性,往往覆盖不全,在进行恶意程序的检测时,应对未知威胁能力较差,使得对未知恶意程序的检出准确度并不高。
4.此外,对于已知类型的恶意程序,目前杀毒软件技术大多通过检测和查杀已知类型的恶意程序,其中使用最广泛的检测方法是特征码技术。现有的特征码提取方法主要包括:
5.1)反病毒工程师使用反汇编工具将恶意文件反汇编,通过对反汇编后的文件进行详细分析,手动或半自动地提取特征码;
6.2)从反汇编后的恶意文件中提取多个代码或指令序列形成样本序列集,通过对集合中的序列进行对比或匹配,筛选出符合条件的序列形成特征片段,作为特征码。
7.但是在企业的实际使用中,上述方法1)基于人工或半自动的方式对反汇编代码进行分析,需要人工参与进行分析,耗费企业大量人力,提取特征码的效率也极其低下,缺少自动化,无法广泛运用于企业内部,特别是小型企业;上述方法2)基于序列片段之间对比或匹配的方式来提取特征码,虽然相对更加自动化,但是序列之间的对比或匹配往往时间复杂度较高,降低提取特征码的速度,无法有效满足海量恶意代码下,实时更新特征码的需求,且易造成误报。这种现状大大限制了特征码技术在企业内部的使用,降低了查杀恶意代码的有效性和实时性。
8.因此,提供一种恶意代码的特征码提取方法、装置和计算机设备,以提升恶意代码的特征码提取的效率和准确性,成为本领域亟需解决的技术问题。


技术实现要素:

9.本发明的目的是提供一种恶意代码的特征码提取方法、装置和计算机设备,用于解决现有技术中的上述技术问题。
10.一方面,为实现上述目的,本发明提供了一种恶意代码的特征码提取方法。
11.该恶意代码的特征码提取方法包括:通过恶意代码样本集训练学习模型,得到目标学习模型,其中,恶意代码样本集包括多个样本,样本包括恶意代码的多个代码段的特征
数据,学习模型包括卷积层,其中,卷积层包括多个通道;将待处理恶意代码划分为多个代码段,得到多个待处理代码段;提取待处理代码段的特征数据;将待处理代码段的特征数据输入目标学习模型;获取目标学习模型的卷积层的输出特征图;计算目标学习模型的卷积层中每个通道上的梯度值;根据输出特征图和梯度值计算热力图数据,其中,热力图数据用于表征待处理代码段对恶意类别的贡献分值;根据贡献分值选定若干待处理代码段作为待处理恶意代码的特征码。
12.进一步地,根据贡献分值选定若干待处理代码段作为待处理恶意代码的特征码的步骤包括:筛选贡献分值大于预设分值阈值的待处理代码段,得到若干候选特征码;确定待处理恶意代码所属的威胁类别;获取属于威胁类别的多个样本;统计多个样本中出现候选特征码的样本数和候选特征码在单个样本中出现的次数;根据样本数和次数在若干候选特征码中确定待处理恶意代码的特征码,其中,样本数越大,次数越少,候选特征码作为待处理恶意代码的特征码的概率越大。
13.进一步地,根据样本数和次数在若干候选特征码中确定待处理恶意代码的特征码的步骤包括:采用以下公式计算候选特征码对应的得分:
[0014][0015]
其中,seq
i
表示第i个候选特征码,i
d
表示d个恶意样本中第d个恶意样本是否包含seq
i
,其中,i
d
=1时,第d个恶意样本包含seq
i
,i
d
=0时,第d个恶意样本不包含seq
i
,freq
d
表示seq
i
出现在第d个恶意样本中的次数,s
i
表示seq
i
对应的贡献分值;根据得分在若干候选特征码中确定待处理恶意代码的特征码,其中,得分越大,候选特征码作为待处理恶意代码的特征码的概率越大。
[0016]
进一步地,根据贡献分值选定若干待处理代码段作为待处理恶意代码的特征码的步骤包括:筛选贡献分值大于预设分值阈值的待处理代码段,得到若干候选特征码;将候选特征码与正常样本库进行比对;以及当候选特征码没有命中正常样本库中的样本时,确定候选特征码为待处理恶意代码的特征码。
[0017]
进一步地,通过恶意代码样本集训练学习模型,得到目标学习模型的步骤包括:设置学习模型包括依次连接的m个卷积块,每个卷积块包括若干卷积层;利用由imagenet数据集预训练得到的模型对学习模型进行的参数进行初始化,以得到初始学习模型;将恶意代码样本集作为初始学习模型的输入,冻结初始学习模型中第1至第m-1个卷积块的参数,对初始学习模型进行训练,以得到目标学习模型。
[0018]
进一步地,目标学习模型包括图片分类模型,特征数据包括图片的像素值,提取待处理代码段的特征数据的步骤包括:将待处理代码段与预设模板图像上的一个像素组相对应,其中,像素组包括若干像素;获取待处理代码段预定位置的字符;按照预设的映射规则确定字符对应的颜色值;以及按照字符对应的颜色值、字符所在的待处理代码段与像素组的对应关系确定图片的像素值。
[0019]
进一步地,按照预设的映射规则确定字符对应的颜色值的步骤包括:确定字符对应的ascii码类别;根据字符对应的ascii类别、预设的ascii码类别与颜色的对应关系,确定字符对应的颜色值。
[0020]
进一步地,字符大于等于0且小于等于255,根据字符对应的ascii类别、预设的ascii码类别与颜色的对应关系,确定字符对应的颜色值的步骤包括:当字符大于0且对应的ascii类别属于不可见ascii码时,确定字符对应第一颜色;当字符对应的ascii类别属于可见ascii码时,确定字符对应第二颜色;当字符小于255且不属于ascii码时,确定字符对应第三颜色;当字符等于0时,确定字符对应第四颜色;以及当字符等于255时,确定字符对应第五颜色,其中,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色不同。
[0021]
进一步地,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色分别为红色、绿色、蓝色、白色和黑色中的一种。
[0022]
进一步地,像素组包括一个像素。
[0023]
另一方面,为实现上述目的,本发明提供了一种恶意代码的特征码提取装置。
[0024]
该恶意代码的特征码提取装置包括:训练模块,用于通过恶意代码样本集训练学习模型,得到目标学习模型,其中,恶意代码样本集包括多个样本,样本包括恶意代码的多个代码段的特征数据,学习模型包括卷积层,其中,卷积层包括多个通道;切分模块,用于将待处理恶意代码划分为多个代码段,得到多个待处理代码段;提取模块,用于提取待处理代码段的特征数据;输入模块,用于将待处理代码段的特征数据输入目标学习模型;获取模块,用于获取目标学习模型的卷积层的输出特征图;第一计算模块,用于计算目标学习模型的卷积层中每个通道上的梯度值;第二计算模块,用于根据输出特征图和梯度值计算热力图数据,其中,热力图数据用于表征待处理代码段对恶意类别的贡献分值;确定模块,用于根据贡献分值选定若干待处理代码段作为待处理恶意代码的特征码。
[0025]
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
[0026]
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
[0027]
本发明提供的恶意代码的特征码提取方法、装置、计算机设备和可读存储介质,对恶意代码进行分割得到多个待处理代码段,提取每个待处理代码段的特征数据并输入至预设的目标学习模型,其中,该目标学习模型通过恶意代码样本集训练得到,包括能够提取恶意代码的特征的卷积层,获取上述卷积层的输出特征图,并基于该输出特征图和每个通道上的梯度值计算热力图数据,该热力图数据包括用于表征恶意代码中各代码段对恶意类别的贡献分值,因而,通过各代码段对恶意类别的贡献分值,能够确定待处理恶意代码中哪些代码段更能表征该恶意代码的恶意性,也即恶意代码的特征,最后根据贡献分值确定待处理恶意代码的特征码,通过本发明,无需人工干预,实现了特征码的自动提取,并且能够将体现恶意代码的代码段被作为特征码,提升特征码提取的效率和准确性。
附图说明
[0028]
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0029]
图1为本发明实施例一提供的恶意代码的特征码提取方法的流程图;
[0030]
图2为本发明实施例二提供的恶意代码的特征码方法中样本下载流程图;
[0031]
图3为本发明实施例二提供的恶意代码的特征码方法中模型训练的流程图;
[0032]
图4为本发明实施例二提供的恶意代码的特征码方法中模型示意图;
[0033]
图5为本发明实施例二提供的恶意代码的特征码方法中特征码提取流程示意图;
[0034]
图6为本发明实施例二提供的恶意代码的特征码方法中特征码验证流程示意图;
[0035]
图7为本发明实施例三提供的恶意代码的特征码提取装置的框图;
[0036]
图8为本发明实施例四提供的计算机设备的硬件结构图。
具体实施方式
[0037]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]
为了提升特征码提取的效率和准确性,本发明提供了一种恶意代码的特征码提取方法和装置,在本发明提供的特征码提取方法中,通过恶意代码样本集对学习模型进行训练,得到目标学习模型,该目标学习模型包括卷积层,通过卷积层提取和学习恶意代码的特征,针对待处理恶意代码,需要提取其特征码时,对待处理恶意代码进行分段的得到待处理代码段,提取待处理代码段的特征数据输入至目标学习模型,然后提取该目标学习模型的卷积层的输出特征图,通过卷积层各个通道的输出特征图以及每个通道上的梯度值,计算得到热力图数据,该热力图数据用于表征待处理代码段对恶意类别的贡献分值,然后根据贡献分值在待处理代码段中选定待处理恶意代码的特征码,实现了恶意代码特征码的提取。从中可以看出,在本发明提供的特征码提取方法中,针对恶意代码,在进行特征码提取时,通过训练好的目标学习模型学习和提取恶意代码的特征,对目标学习模型的卷积层的输出特征图进行可视化表示,得到热力图数据,进而基于热力图数据确定待处理代码段对恶意类别的贡献分值,从而能够从贡献分值大的待处理代码段中确定待处理恶意代码的特征码,因此,本发明提供的特征码提取方法无需人工干预,实现了特征码的自动提取,使得能够体现恶意代码的代码段被作为特征码,因而,本发明能够达到提升特征码提取的效率和准确性的目的。
[0039]
关于本发明提供的恶意代码的特征码的提取方法、装置、计算机设备和计算机可读存储介质的具体实施例,将在下文中详细描述。
[0040]
实施例一
[0041]
本发明实施例一提供了一种恶意代码的特征码提取方法,通过该方法,实现了恶意代码特征码的自动提取,提升了恶意代码特征码提取的效率和准确性,具体地,图1为本发明实施例一提供的恶意代码的特征码提取方法的流程图,如图1所示,该实施例提供的特征码提取方法包括如下的步骤s101至步骤s108。
[0042]
步骤s101:通过恶意代码样本集训练学习模型,得到目标学习模型。
[0043]
其中,恶意代码样本集包括多个样本,样本包括恶意代码的多个代码段的特征数据,学习模型包括卷积层,其中,卷积层包括多个通道。
[0044]
可选地,预设学习模型,构建样本集,该样本集包括恶意代码的多个代码段的特征
数据和非恶意代码的多个代码段的特征数据,使用该样本集对学习模型进行训练,得到目标学习模块,该目标学习模型能够实现对恶意代码和非恶意代码的分类,当目标学习模型能够准确的对恶意代码和非恶意代码进行分类,时,表明目标学习模型学习到了恶意代码的特征,也即目标学习模型的卷积层能够提取到恶意代码的特征。训练得到的目标学习模型可应用于恶意代码的特征提取。
[0045]
步骤s102:将待处理恶意代码划分为多个代码段,得到多个待处理代码段。
[0046]
对于待提取特征码的恶意代码,也即待处理恶意代码,将其划分为多个代码段,具体划分数量可依据恶意代码的整体长度进行划分,划分后的各个代码段定义为待处理代码段。
[0047]
步骤s103:提取待处理代码段的特征数据。
[0048]
具体地,得到多个待处理代码段后,在提取待处理代码段的特征数据时,可提取待处理代码段中的部分字节作为特征数据,或者也可对待处理代码段进行运算得到的运算结果作为特征数据,或者也可以将待处理代码段映射为图像信息,将图像信息作为特征数据。
[0049]
步骤s104:将待处理代码段的特征数据输入目标学习模型。
[0050]
在该步骤s104中,将上述步骤s103提取的特征数据输入至目标学习模型,该目标学习模型的卷积层能够提取和学习到待处理恶意代码的特征。
[0051]
步骤s105:获取目标学习模型的卷积层的输出特征图。
[0052]
可选地,目标学习模型包括输入层、卷积层和输出层,输入层用于接收待处理代码段的特征数据,卷积层用于提取特征,输出层用于输出恶意代码或非恶意代码对应的类别。其中,卷积层包括多个通道。在将恶意代码的待处理代码段的特征数据输入至目标学习模型后,当目标学习模型确定出其属于恶意代码的类别时,在该步骤s105中,可获取卷积层每个通道的输出特征图。
[0053]
步骤s106:计算目标学习模型的卷积层中每个通道上的梯度值。
[0054]
卷积层包括n个通道,在上述步骤s105中,获取卷积层的输出特征图f
i
(i=1,2

,n)。在该步骤s106中,计算对应每个通道上的梯度值g
i
(i=1,2

,n),具体梯度值g
i
计算公式如下:
[0055][0056]
其中,y为目标学习模型的输出层输出的概率向量,该概率向量用于指示输入层接收的数据对应的某一类别(恶意代码或非恶意代码)的概率;h为第i通道的输出特征图f
i
的高度,w为第i通道的输出特征图f
i
的宽度,a
jk
为第i通道的输出特征图f
i
中的特征值,z为第i通道的输出特征图f
i
中特征值的总数,该梯度值g
i
即对输出特征图fi中每个特征值的偏导数求全局平均。
[0057]
步骤s107:根据输出特征图和梯度值计算热力图数据。
[0058]
其中,热力图数据用于表征待处理代码段对恶意类别的贡献分值。
[0059]
可选地,在计算热力图数据时,可利用梯度值g
i
对卷积层的输出特征图f
i
进行加权,具体公式如下:
[0060]
步骤s108:根据贡献分值选定若干待处理代码段作为待处理恶意代码的特征码。
[0061]
通过热力图数据heatmap可得到恶意代码中各代码段对恶意类别的贡献分值,其中,某一代码段对恶意类别的贡献分值越大,表示该代码段越能体现该恶意代码的特征,因此在该步骤s108中,可以将贡献分值大的待处理代码段作为恶意代码的特征码。
[0062]
在该实施例提供的恶意代码的特征码提取方法中,对恶意代码进行分割得到多个待处理代码段,提取每个待处理代码段的特征数据并输入至预设的目标学习模型,其中,该目标学习模型通过恶意代码样本集训练得到,包括能够提取恶意代码的特征的卷积层,获取上述卷积层的输出特征图,并基于该输出特征图和每个通道上的梯度值计算热力图数据,该热力图数据包括用于表征恶意代码中各代码段对恶意类别的贡献分值,因而,通过各代码段对恶意类别的贡献分值,能够确定待处理恶意代码中哪些代码段更能表征该恶意代码的恶意性,也即恶意代码的特征,最后根据贡献分值确定待处理恶意代码的特征码,采用该实施例提供的恶意代码的特征码提取方法,无需人工干预,实现了特征码的自动提取,并且能够将体现恶意代码的代码段被作为特征码,提升特征码提取的效率和准确性。
[0063]
可选地,在一种实施例中,根据贡献分值选定若干待处理代码段作为待处理恶意代码的特征码的步骤包括:筛选贡献分值大于预设分值阈值的待处理代码段,得到若干候选特征码;确定待处理恶意代码所属的威胁类别;获取属于威胁类别的多个样本;统计多个样本中出现候选特征码的样本数和候选特征码在单个样本中出现的次数;根据样本数和次数在若干候选特征码中确定待处理恶意代码的特征码,其中,样本数越大,次数越少,候选特征码作为待处理恶意代码的特征码的概率越大。
[0064]
具体地,在根据贡献分值选定若干待处理代码段作为待处理恶意代码的特征码,可设置分值阈值,基于贡献分值对待处理代码段进行筛选,将贡献分值满足分值阈值的待处理代码段筛选出来,作为候选特征码;针对一个候选特征码,以同一威胁的类别其他样本中出现该候选特征码的情况进一步进行筛选,具体而言,可针对属于同一威胁类别的多个样本,分别采用上述描述中的步骤确定候选特征码,从而可得到对应每个样本的候选特征码,在对某一候选特征码进一步进行筛选时,统计该候选特征码在多个样本的候选特征码中出现的次数,统计该候选特征码在单个样本中出现的次数,将在很多个样本中均出现且在单个样本中出现次数少的候选特征码作为待处理恶意代码的特征码。
[0065]
对于同一威胁类别的恶意代码,通常会有相同的特点,也即具有相同的特征码;而对于一个恶意代码中的特征码,为了隐藏其恶意性,通常会尽可能较少的出现,因此,采用该实施例提供的恶意代码的特征码的提取方法,首先通过分值阈值筛选贡献分值较大的代码段,然后再通过统一威胁类别的样本进行上述统计,将在很多个样本中均出现且在单个样本中出现次数少的候选特征码作为待处理恶意代码的特征码,能够提升特征码提取的准确性。
[0066]
可选地,在一种实施例中,根据样本数和次数在若干候选特征码中确定待处理恶意代码的特征码的步骤包括:采用以下公式计算候选特征码对应的得分:
[0067][0068]
其中,seq
i
表示第i个候选特征码,i
d
表示d个恶意样本中第d个恶意样本是否包含seq
i
,其中,i
d
=1时,第d个恶意样本包含seq
i
,i
d
=0时,第d个恶意样本不包含seq
i
,freq
d

示seq
i
出现在第d个恶意样本中的次数,s
i
表示seq
i
对应的贡献分值;根据得分在若干候选特征码中确定待处理恶意代码的特征码,其中,得分越大,候选特征码作为待处理恶意代码的特征码的概率越大。
[0069]
采用该实施例提供的恶意代码的特征码提取方法,基于上述公式,通过分子统计第i个候选特征码seq
i
在同一威胁类别的恶意样本中出现在几个恶意样本中,通过分母统计第i个候选特征码seq
i
在同一威胁类别的恶意样本中出现的总的次数,该分子和分母形成的分数越大,候选特征码seq
i
作为待处理恶意代码的特征码的概率越大,同时,将贡献分值作为此分数的权重,作为候选特征码对应的得分,该得分不仅表示候选特征码seq
i
在同一威胁类别的恶意样本中的特点,而且表示候选特征码seq
i
在待处理恶意代码中对恶意类别的影响程度,因此,能够进一步提升特征码提取的准确性。
[0070]
可选地,在一种实施例中,根据贡献分值选定若干待处理代码段作为待处理恶意代码的特征码的步骤包括:筛选贡献分值大于预设分值阈值的待处理代码段,得到若干候选特征码;将候选特征码与正常样本库进行比对;以及当候选特征码没有命中正常样本库中的样本时,确定候选特征码为待处理恶意代码的特征码。
[0071]
采用该实施例提供的恶意代码的特征码提取方法,首先通过分值阈值筛选贡献分值较大的代码段,作为候选特征码,然后将候选特征码与正常样本库进行比对,当候选特征码命中正常样本库中正常样本时,表明该候选特征码不应作为恶意代码的特征码,当候选特征码没有命中正常样本库中任意正常样本时,将该候选特征码作为恶意代码的特征码,能够进一步提升恶意代码的特征码提取的准确性。
[0072]
可选地,在一种实施例中,通过恶意代码样本集训练学习模型,得到目标学习模型的步骤包括:设置学习模型包括依次连接的m个卷积块,每个卷积块包括若干卷积层;利用由imagenet数据集预训练得到的模型对学习模型进行的参数进行初始化,以得到初始学习模型;将恶意代码样本集作为初始学习模型的输入,冻结初始学习模型中第1至第m-1个卷积块的参数,对初始学习模型进行训练,以得到目标学习模型。
[0073]
采用该实施例提供的恶意代码的特征码提取方法中,在通过训练学习模型得到最终的目标学习模型时,先使用由imagenet数据集预训练得到的模型对学习模型进行参数初始化,得到初始学习模型,再冻结初始学习模型的前一部分卷积块的参数,利用待恶意代码样本集对初始学习模型进行训练,得到最终的目标学习模型,提升模型训练的效率和准确率。
[0074]
可选地,在一种实施例中,目标学习模型包括图片分类模型,特征数据包括图片的像素值,提取待处理代码段的特征数据的步骤包括:将待处理代码段与预设模板图像上的一个像素组相对应,其中,像素组包括若干像素;获取待处理代码段预定位置的字符;按照预设的映射规则确定字符对应的颜色值;以及按照字符对应的颜色值、字符所在的待处理代码段与像素组的对应关系确定图片的像素值。
[0075]
具体地,在该实施例提供的恶意代码的特征码提取方法中,对待处理恶意代码进行分段,分为多个待处理代码段后,将每个待处理代码段与预设模板图像中一个像素组对应,将每个待处理代码段中预定位置的字符映射为颜色值,与像素组中像素的对应,按照上述对应关系为预设模板图像上的像素赋值后,将图片上的像素信息(包括像素组位置和像素值)作为待处理代码段的特征数据,也即将待处理恶意代码转化为待处理图片。针对待处
理图片,可将其输入图片分类模型进行处理。其中,可获取代码段的首字符或者尾字符或者其他位置的字符。
[0076]
采用该实施例提供的恶意代码的特征码提取方法,先将恶意代码转换为图片,然后通过对图片的处理来实现对恶意代码的处理,代码转换为图片的方式简单,减小了提取恶意代码的特征码过程中对恶意代码进行处理的数据处理量,提升恶意代码的特征码的提取效率,且基于图片分类模型对图片特征的学习能力,能够有效学习恶意代码的特征,从而使得卷积层能够准确提取到恶意代码的特征,提升恶意代码的特征码的提取准确性。
[0077]
可选地,在一种实施例中,按照预设的映射规则确定字符对应的颜色值的步骤包括:确定字符对应的ascii码类别;根据字符对应的ascii类别、预设的ascii码类别与颜色的对应关系,确定字符对应的颜色值。
[0078]
具体地,待处理恶意代码由控制字符、标点符号、图形符号、各国家文字和数字等字符组成,在计算机中通常是一个二进制数字序列,一个字符对应二进制数字序列中的一个数字单元,也即8位二进制数,在该实施例中,可直接获取待处理恶意代码的8位二进制数作为ascii码,在预先将ascii码划分为多个类别,设定不同类别对应不同的颜色之后,通过字符对应的8位二进制数即可在ascii码表中确定对应的ascii码,此ascii码所在的类别即为字符对应的ascii码类别,该ascii码类别对应的颜色即为字符对应的颜色值,确定了字符对应的颜色值。
[0079]
ascii码本身是对字符的编码,ascii码类别也即反映字符的类别,采用该实施例提供的恶意代码的特征码提取方法,可直接将待处理恶意代码的8位二进制数作为ascii码,不同ascii码类别对应不同的颜色,映射关系简单,无需对待处理恶意代码进行处理,减少数据处理量,同时图片上的颜色又可表征待处理恶意代码中字符的类别,保证图片对待处理恶意代码特征的体现,进而能够在通过对图片的识别处理来实现对待处理恶意代码的处理,提升恶意代码的特征码提取的准确性。
[0080]
可选地,在一种实施例中,字符大于等于0且小于等于255,根据字符对应的ascii类别、预设的ascii码类别与颜色的对应关系,确定字符对应的颜色值的步骤包括:当字符大于0且对应的ascii类别属于不可见ascii码时,确定字符对应第一颜色;当字符对应的ascii类别属于可见ascii码时,确定字符对应第二颜色;当字符小于255且不属于ascii码时,确定字符对应第三颜色;当字符等于0时,确定字符对应第四颜色;以及当字符等于255时,确定字符对应第五颜色,其中,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色不同。
[0081]
具体地,8位二进制数换算为十进制后的最小值为0,最大值为255,也就是说字符大于等于0且小于等于255,在该范围内,对应的ascii类别为3个类别:大于0的不可见ascii码、可见ascii码和小于255的非ascii码,对于两个端点,也即等于0和等于255的情况,分别单独设置为一个类别,对应第一颜色至第五颜色共五种颜色。其中,不可见ascii码包括的是控制字符,这类型字符在非dos模式下不进行显示,在dos模式下可显示出一些诸如笑脸、扑克牌花式等8-bit符号;可见ascii码包括的是可显示的字符;非ascii码是指ascii码之外的字符;等于0的字符和等于255的字符分别对应的是不同的无字符填充内容。
[0082]
在恶意代码中,关于不可见ascii码、可见ascii码、小于255的非ascii码以及填充内容等,与正常代码具有不同的特征,因此,采用该实施例提供的恶意代码的特征码提取方
法,将上述五个类别的字符分别设置为不同的颜色,能够在图片中体现出恶意代码关于上述各个类别的特征,进一步提升恶意代码的特征码提取的准确性。
[0083]
可选地,在一种实施例中,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色分别为红色、黄色、蓝色、白色和黑色中的一种。
[0084]
采用该实施例提供的恶意代码的特征码提取方法,图片的颜色包括红色、黄色、蓝色、白色和黑色,不同颜色之间的色值差别大,提升图片分类的准确性,也即提升恶意代码的特征码提取准确性。
[0085]
可选地,在一种实施例中,像素组包括一个像素。能够减少向图片分类模型中输入的数据量,从而降低图片分类模型的复杂性,提升恶意代码的特征码提取效率。
[0086]
实施例二
[0087]
在上述实施例一的基础上,本发明实施例二提供了一种优选的恶意代码的特征码提取方法,用于提取恶意样本的特征码。该恶意代码的特征码提取方法提取特征码后,输入至特征码库,可应用于对未知样本的检测,可以用于检测任意一个未知的文件是否为恶意代码文件。具体地,在获取到未知样本时,将其与特征码库中的恶意样本的特征码进行比对,当未知样本与特征码库中的某一特征码相匹配时,表明该未知样本属于此特征码对应的威胁类别。实际应用中,该特征码提取方法可以由终端、服务器等具有数据处理功能的设备执行。
[0088]
具体地,该恶意代码的特征码提取方法包括如下的步骤:
[0089]
1)首先将待处理恶意代码的代码原文件切分为n段,得到n个代码段,每一代码段都表示一个像素点。
[0090]
2)随后取每一代码段的首字符,并以这个首字符的值来表明对应像素点的颜色,具体的映射关系如下表1所示。
[0091]
表1字符和颜色对应关系表
[0092]
首字符值表示含义对应色彩x<33&x=127不可见ascii码红色33≤x<127可见ascii码蓝色127<x<255非ascii码黄色x=0最小值黑色x=255最大值白色
[0093]
3)利用首字符对应的色彩,为其所在代码段对应的像素填上色彩。
[0094]
采用上述三个步骤,可将恶意代码的代码源文件转换为图片,得到图片后,即可采用已训练好的图片分类模型进行处理。
[0095]
其中,上述图片分类模型的训练过程主要包括样本的采样和下载、样本的预处理、模型的训练和模型效果验证,具体可描述如下:
[0096]
样本的采样:在实施例中,可对每天所产生的恶意样本数据和非恶意样本数据进行采集,为了更好的展现新样本的特点,采用对新旧数据的不平衡采样方法,即对新样本进行采样的比例较大,这样使得新样本的特点在样本数据集中体现的更加明显,从而使得训练出来的模型能够对新出现的样本具有更好的分类效果。采样数据的格式如下表2所示。
[0097]
表2采样数据格式
[0098]
index时间戳文件类别md512019-9-20worm812f26eede8cd841**********
[0099]
样本的下载:如图2所示,首先,自动的从采样的md5中逐条获取样本的md5,每条md5标识唯一对应样本文件。随后对云端的该文件进行下载请求,若请求成功则进入下一步操作,若重复请求失败则将该文件丢弃。下载到的样本文件保存后,通过云端反馈的下载标识,来验证文件是否成功下载,若成功下载则将下载的文件入样本库,否则删除文件进行重新下载,该步骤利用多次请求和验证的方法,降低了下载错误的可能性,保障了样本数据集的质量。
[0100]
样本的预处理:如图3所示,将上述样本库中下载到的二进制的样本文件按照上述的步骤1)至步骤3)相同的处理方法,将样本处理为图片,这样不仅可以减小数据集的大小以方便存储,还可以利用图像处理的方法来训练分类模型。将预处理后的图片形成预处理文件库,对预处理文件库进行数据集的切分,得到训练集和验证集。
[0101]
模型的训练:针对训练集中的图片,使用迁移学习的方法训练模型,也即将已学训练好的模型参数迁移到新的模型来帮助新模型训练,考虑到大部分图像数据或任务是存在相关性的,所以通过迁移学习可以将模型已经学到的知识,通过某种方式来分享给新模型,从而加快并优化模型的学习效率。如图4所示,该实施例采用的是vgg16的模型,预训练的数据是来自于imagenet,利用预先从imagenet数据集中学习到的知识,加上通过微调方法从训练数据集图片中得到恶意代码和正常代码的知识,可以很好的区分恶意代码和正常代码。由于模型在微调时只需要使用浅层的知识,因此将和卷积块1至卷积块4的参数进行冻结,而卷积块5和全连接层的参数随着模型训练不断变化。在参数微调的过程中,为了防止参数改变过大而导致训练不收敛,将训练的学习率设置为一个较小的值,大小为0.0001。
[0102]
模型的验证:在模型训练完毕后,使用验证集张工的图片对图片分类模型的分类效果进行验证,若准确率大于99%,则证明该图片分类模型可用于恶意代码的检测,也即该图片分类模型的卷积层能够准确提取到恶意代码的特征。
[0103]
4)从模型库中选取训练好的模型,利用图像处理中画热力图的方法,找出图片中的重点区域,将画出的热力图和原二进制文件相对应,从而可以得出原文件中的相应位置的得分。
[0104]
具体地,特征码的抽取需要知道图片中的哪一部分是重要的,而图片中的可视化卷积网络热力图技术可以满足这一要求。如图5所示,这一过程具体包含以下几个步骤:
[0105]
a)获取模型对应的层,具体地,选定网络的block5的第三个卷积层,也即模型的最后一个卷积层作为一个回推的层,这个层的参数未被冻结,学习到了预训练模型和训练集中的知识。
[0106]
b)回推求导,包括计算图片在该层特征图的梯度,具体可参考上文中的梯度计算方法,该处不再赘述。
[0107]
c)求解热力图,包括将前述block5的第三个卷积层的特征图数组的每个通道乘以这个通道对原始图片的梯度,并计算每个通道特征图的逐通道的平均值,即为该图片激活的热力图,具体公式可参考上文,该处不再赘述。
[0108]
d)将热力图回推至原样本(也即待处理恶意代码),得出样本各位置分值(也即代码段对应的贡献分值),抽取得分较高的片段。
[0109]
具体地,将热力图中每个像素点的分值还原到原始的文件中,由于每个像素点表示原文件中的一个代码段,因此直接取出贡献分值较高的片段会导致抽取的特征码不准确,在该实施例中,将这些得分较高的特征码作为候选特征码,利用它们的统计信息进行再一次的筛选。具体可采用上述内容中描述的基于同一威胁类别的其他样本的统计信息进行筛选,将在很多个样本中均出现且在单个样本中出现次数少的候选特征码作为待处理恶意代码的特征码。
[0110]
5)对提取出的候选特征码进行验证:如图6所示,将选取的候选特征码与正常样本库进行比对,若发现候选特征码命中正常样本库中的某个样本,则删除该候选特征码。验证完毕后将候选特征码加入特征码库中。通过这一步可以减少特征码在正常样本中的误报,有效提升了特征码的质量。
[0111]
该实施例提供的恶意代码特征码的提取方法,实现了一种自动化的流程来抽取恶意代码特征码,首先进行自动采样、下载和样本的预处理,随后使用深度学习方法提取样本图片的深层信息来确定特征码的区域,随后又使用特殊的筛选方法对已有的候选特征码进行选择,最后又将挑选出的特征码放入正常样本的库中进行匹配以减少误报,整个流程完全自动进行,提取出特征码的有效性高。
[0112]
实施例三
[0113]
对应于上述实施例一,本发明实施例三提供了一种恶意代码的特征码提取装置,相关技术特征和对应的技术效果可参考上述实施例一和实施例二,在该处不再赘述。图7为本发明实施例二提供的恶意代码的特征码提取装置的框图,如图7所示,该装置包括:训练模块301、切分模块302、提取模块303、输入模块304、获取模块305、第一计算模块306、第二计算模块307和确定模块308。
[0114]
其中,训练模块301用于通过恶意代码样本集训练学习模型,得到目标学习模型,其中,恶意代码样本集包括多个样本,样本包括恶意代码的多个代码段的特征数据,学习模型包括卷积层,其中,卷积层包括多个通道;切分模块302用于将待处理恶意代码划分为多个代码段,得到多个待处理代码段;提取模块303用于提取待处理代码段的特征数据;输入模块304用于将待处理代码段的特征数据输入目标学习模型;获取模块305用于获取目标学习模型的卷积层的输出特征图;第一计算模块306用于计算目标学习模型的卷积层中每个通道上的梯度值;第二计算模块307用于根据输出特征图和梯度值计算热力图数据,其中,热力图数据用于表征待处理代码段对恶意类别的贡献分值;确定模块308用于根据贡献分值选定若干待处理代码段作为待处理恶意代码的特征码。
[0115]
可选地,在一种实施例中,确定模块308包括:第一筛选单元、第一确定单元、统计单元和第二确定单元,其中,第一筛选单元用于筛选贡献分值大于预设分值阈值的待处理代码段,得到若干候选特征码;第一确定单元用于确定待处理恶意代码所属的威胁类别;获取属于威胁类别的多个样本;统计单元用于统计多个样本中出现候选特征码的样本数和候选特征码在单个样本中出现的次数;第二确定单元用于根据样本数和次数在若干候选特征码中确定待处理恶意代码的特征码,其中,样本数越大,次数越少,候选特征码作为待处理恶意代码的特征码的概率越大。
[0116]
可选地,在一种实施例中,第二确定单元在根据样本数和次数在若干候选特征码中确定待处理恶意代码的特征码时,具体执行的步骤包括:采用以下公式计算候选特征码
对应的得分:
[0117][0118]
其中,seq
i
表示第i个候选特征码,i
d
表示d个恶意样本中第d个恶意样本是否包含seq
i
,其中,i
d
=1时,第d个恶意样本包含seq
i
,i
d
=0时,第d个恶意样本不包含seq
i
,freq
d
表示seq
i
出现在第d个恶意样本中的次数,s
i
表示seq
i
对应的贡献分值;根据得分在若干候选特征码中确定待处理恶意代码的特征码,其中,得分越大,候选特征码作为待处理恶意代码的特征码的概率越大。
[0119]
可选地,在一种实施例中,确定模块308包括:第二筛选单元、比对单元和第三确定单元,其中,第二筛选单元用于筛选贡献分值大于预设分值阈值的待处理代码段,得到若干候选特征码;比对单元用于将候选特征码与正常样本库进行比对;以及第三确定单元用于当候选特征码没有命中正常样本库中的样本时,确定候选特征码为待处理恶意代码的特征码。
[0120]
可选地,在一种实施例中,训练模块301包括:设置单元和学习单元,其中,设置单元用于设置学习模型包括依次连接的m个卷积块,每个卷积块包括若干卷积层;学习单元,用于利用由imagenet数据集预训练得到的模型对学习模型进行参数初始化,以得到初始学习模型,将恶意代码样本集作为初始学习模型的输入,冻结初始学习模型中第1至第m-1个卷积块的参数,对初始学习模型进行训练,以得到目标学习模型。
[0121]
可选地,在一种实施例中,目标学习模型包括图片分类模型,特征数据包括图片的像素值,提取模块303包括:第一映射单元、获取单元、第二映射单元和第四确定单元,其中,第一映射单元用于将待处理代码段与预设模板图像上的一个像素组相对应,其中,像素组包括若干像素;获取单元用于获取待处理代码段预定位置的字符;第二映射单元用于按照预设的映射规则确定字符对应的颜色值;以及第四确定单元用于按照字符对应的颜色值、字符所在的待处理代码段与像素组的对应关系确定图片的像素值。
[0122]
可选地,在一种实施例中,第二映射单元按照预设的映射规则确定字符对应的颜色值时,具体执行的步骤包括:确定字符对应的ascii码类别;根据字符对应的ascii类别、预设的ascii码类别与颜色的对应关系,确定字符对应的颜色值。
[0123]
可选地,在一种实施例中,字符大于等于0且小于等于255,第二映射单元在根据字符对应的ascii类别、预设的ascii码类别与颜色的对应关系,确定字符对应的颜色值时,具体执行的步骤包括:当字符大于0且对应的ascii类别属于不可见ascii码时,确定字符对应第一颜色;当字符对应的ascii类别属于可见ascii码时,确定字符对应第二颜色;当字符小于255且不属于ascii码时,确定字符对应第三颜色;当字符等于0时,确定字符对应第四颜色;以及当字符等于255时,确定字符对应第五颜色,其中,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色不同。
[0124]
可选地,在一种实施例中,第一颜色、第二颜色、第三颜色、第四颜色和第五颜色分别为红色、绿色、蓝色、白色和黑色中的一种。
[0125]
可选地,在一种实施例中,像素组包括一个像素。
[0126]
实施例四
[0127]
本实施例四还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图8所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图8所示。需要指出的是,图8仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0128]
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例三的恶意代码的特征码提取装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0129]
处理器012在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如恶意代码的特征码提取方法等。
[0130]
实施例五
[0131]
本实施例五还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储恶意代码的特征码提取装置,被处理器执行时实现实施例一的恶意代码的特征码提取方法。
[0132]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0133]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0134]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
[0135]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技
术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1