恶意代码的检测方法、装置、计算机设备和存储介质与流程

文档序号:31362851发布日期:2022-08-31 14:55阅读:77来源:国知局
恶意代码的检测方法、装置、计算机设备和存储介质与流程

1.本技术涉及网络信息安全技术领域,特别是涉及一种恶意代码的检测方法、装置、计算机设备和存储介质。


背景技术:

2.随着网络信息安全技术的发展,出现了恶意代码的检测技术,这个技术可以对计算机中的代码进行检测,并确定该检测代码是否是恶意代码,从而保护了我们的网络信息安全。
3.传统的恶意代码的检测技术,先对待检测的代码进行静态特征和动态特征的提取,再将上述特征输入至训练后的分类器,得到检测结果。
4.然而,目前的恶意代码的检测技术,对提取的大维度特征数据集没有进行处理或者处理后的特征数据集的维度还是比较大,导致训练后的分类器的运算时间较长,降低了检测效率。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够提高检测效率的恶意代码的检测方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
6.第一方面,本技术提供了一种恶意代码的检测方法。所述方法包括:
7.获取待检测代码,从所述待检测代码中提取特征数据集;每个所述特征数据集包括多个特征数据子集;
8.针对所述特征数据集包含的每个所述特征数据子集,计算所述特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重;
9.根据每个所述特征数据的哈希序列和权重,确定每个所述特征数据对应的特征值序列,并基于各所述特征数据对应的特征值序列进行按位融合处理,得到所述特征数据子集对应的融合数据;
10.根据各所述特征数据子集对应的融合数据,确定目标数据集,并将所述目标数据集输入至训练后的恶意代码检测模型,得到代码检测结果。
11.在其中一个实施例中,所述根据每个所述特征数据的哈希序列和权重,确定每个所述特征数据对应的特征值序列,包括:
12.针对哈希序列包含的每个哈希值,根据所述哈希值确定所述权重的符号,根据所述权重的符号和所述权重,确定特征值;
13.根据各所述哈希值对应的特征值,得到所述特征数据对应的特征值序列,所述特征值序列中各特征值的排列顺序与各所述特征值对应的哈希值的排列顺序相同。
14.在其中一个实施例中,所述基于各所述特征数据对应的特征值序列进行按位融合处理,得到所述特征数据子集对应的融合数据,包括:
15.针对一个所述特征数据子集包含的特征数据,对各所述特征数据对应的特征值序
列进行按位线性叠加,得到所述特征数据子集对应的融合特征值序列;
16.针对所述特征数据子集对应的融合特征值序列,根据所述融合特征值序列对应的映射策略,得到所述特征数据子集对应的融合数据。
17.在其中一个实施例中,所述针对所述特征数据集包含的每个所述特征数据子集,计算所述特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重之前,还包括:
18.针对各所述特征数据子集包含的每个特征数据,计算所述每个特征数据对应的信息增益率;
19.针对一个所述特征数据子集,在所述特征数据子集中,筛选信息增益率满足第一预设筛选策略的特征数据,得到筛选后的特征数据子集。
20.在其中一个实施例中,所述从所述待检测代码中提取特征数据集,包括:
21.根据各特征类型对应的提取策略,从所述待检测代码中分别提取各特征类别对应的特征数据集;
22.其中,所述特征类别包含文件特征、行为特征、以及流量特征;所述文件特征包含图像纹理特征;所述流量特征包含协议特征、流特征、以及加密套件特征。
23.在其中一个实施例中,所述根据各所述特征数据子集对应的融合数据,确定目标数据集,并将所述目标数据集输入至训练后的恶意代码检测模型,得到代码检测结果,包括:
24.基于各所述特征数据子集对应的融合数据,构成融合数据集;
25.针对所述融合数据集,采用引导聚集算法进行抽样,得到第一预设数目个初始数据集;
26.针对每个所述初始数据集中的融合数据,随机有放回的从所述初始数据集中抽取第二预设数目个所述融合数据,并将权重不满足第二预设筛选策略的所述融合数据进行删除,得到对应的第一预设数目个目标数据集;
27.将各所述目标数据集分别输入至训练后的恶意代码检测模型中的决策树中,得到代码检测结果。
28.在其中一个实施例中,所述方法还包括:
29.获取恶意代码,从所述恶意代码中提取特征数据集;每个所述特征数据集包括多个特征数据子集;
30.针对所述特征数据集包含的每个所述特征数据子集,计算所述特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重;
31.根据每个所述特征数据的哈希序列和权重,确定每个所述特征数据对应的特征值序列,并基于各所述特征数据对应的特征值序列进行按位融合处理,得到所述特征数据子集对应的融合数据;
32.根据各所述特征数据子集对应的融合数据,确定样本数据集,并将所述样本数据集输入至待训练的恶意代码检测模型,得到代码预测结果;
33.根据所述代码预测结果,对所述待训练的恶意代码检测模型的参数进行调节,以使调整后的恶意代码检测模型达到预设精度条件,得到训练后的恶意代码检测模型。
34.第二方面,本技术还提供了一种恶意代码的检测装置。所述装置包括:
35.第一获取模块,用于获取待检测代码,从所述待检测代码中提取特征数据集;每个所述特征数据集包括多个特征数据子集;
36.第一计算模块,用于针对所述特征数据集包含的每个所述特征数据子集,计算所述特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重;
37.第一确定模块,用于根据每个所述特征数据的哈希序列和权重,确定每个所述特征数据对应的特征值序列,并基于各所述特征数据对应的特征值序列进行按位融合处理,得到所述特征数据子集对应的融合数据;
38.第二确定模块,用于根据各所述特征数据子集对应的融合数据,确定目标数据集,并将所述目标数据集输入至训练后的恶意代码检测模型,得到代码检测结果。
39.在其中一个实施例中,所述第一确定模块,具体用于:
40.针对哈希序列包含的每个哈希值,根据所述哈希值确定所述权重的符号,根据所述权重的符号和所述权重,确定特征值;
41.根据各所述哈希值对应的特征值,得到所述特征数据对应的特征值序列,所述特征值序列中各特征值的排列顺序与各所述特征值对应的哈希值的排列顺序相同。
42.在其中一个实施例中,所述第一确定模块,具体用于:
43.针对一个所述特征数据子集包含的特征数据,对各所述特征数据对应的特征值序列进行按位线性叠加,得到所述特征数据子集对应的融合特征值序列;
44.针对所述特征数据子集对应的融合特征值序列,根据所述融合特征值序列对应的映射策略,得到所述特征数据子集对应的融合数据。
45.在其中一个实施例中,所述装置,还包括:
46.第二计算模块,用于针对各所述特征数据子集包含的每个特征数据,计算所述每个特征数据对应的信息增益率;
47.筛选模块,用于针对一个所述特征数据子集,在所述特征数据子集中,筛选信息增益率满足第一预设筛选策略的特征数据,得到筛选后的特征数据子集。
48.在其中一个实施例中,所述第一获取模块,具体用于:
49.根据各特征类型对应的提取策略,从所述待检测代码中分别提取各特征类别对应的特征数据集;
50.其中,所述特征类别包含文件特征、行为特征、以及流量特征;所述文件特征包含图像纹理特征;所述流量特征包含协议特征、流特征、以及加密套件特征。
51.在其中一个实施例中,第二确定模块,具体用于:
52.基于各所述特征数据子集对应的融合数据,构成融合数据集;
53.针对所述融合数据集,采用引导聚集算法进行抽样,得到第一预设数目个初始数据集;
54.针对每个所述初始数据集中的融合数据,随机有放回的从所述初始数据集中抽取第二预设数目个所述融合数据,并将权重不满足第二预设筛选策略的所述融合数据进行删除,得到对应的第一预设数目个目标数据集;
55.将各所述目标数据集分别输入至训练后的恶意代码检测模型中的决策树中,得到代码检测结果。
56.在其中一个实施例中,所述装置,还包括:
57.第二获取模块,用于获取恶意代码,从所述恶意代码中提取特征数据集;每个所述特征数据集包括多个特征数据子集;
58.第三计算模块,用于针对所述特征数据集包含的每个所述特征数据子集,计算所述特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重;
59.第三确定模块,用于根据每个所述特征数据的哈希序列和权重,确定每个所述特征数据对应的特征值序列,并基于各所述特征数据对应的特征值序列进行按位融合处理,得到所述特征数据子集对应的融合数据;
60.第四确定模块,用于根据各所述特征数据子集对应的融合数据,确定样本数据集,并将所述样本数据集输入至待训练的恶意代码检测模型,得到代码预测结果;
61.调整模块,用于根据所述代码预测结果,对所述待训练的恶意代码检测模型的参数进行调节,以使调整后的恶意代码检测模型达到预设精度条件,得到训练后的恶意代码检测模型。
62.第三方面,本技术还提供了一种计算机设备。所述计算机设备所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以第一方面所述的步骤。
63.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以第一方面所述的步骤。
64.第五方面,本技术还提供了一种计算机程序产品。本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以第一方面所述的步骤。上述恶意代码的检测方法、装置、计算机设备、存储介质和计算机程序产品。通过获取待检测代码,从待检测代码中提取特征数据集;每个特征数据集包括多个特征数据子集;针对特征数据集包含的每个特征数据子集,计算特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重;根据每个特征数据的哈希序列和权重,确定每个特征数据对应的特征值序列,并基于各特征数据对应的特征值序列进行按位融合处理,得到特征数据子集对应的融合数据;根据各特征数据子集对应的融合数据,确定目标数据集,并将目标数据集输入至训练后的恶意代码检测模型,得到代码检测结果。本技术方案通过计算各特征数据的哈希序列和权重,生成特征数据对应的特征值序列,然后对各特征值序列进行融合,进而根据融合数据确定目标数据集,有效的对恶意代码检测模型的输入数据进行了降维,从而缩短了恶意代码检测模型的运算时间,提高了检测效率。
附图说明
65.图1为一个实施例中恶意代码的检测方法的流程示意图;
66.图2为一个实施例中特征值序列的确定方法的流程示意图;
67.图3为另一个实施例中融合数据的确定方法的流程示意图;
68.图4为一个实施例中代码检测结果的确定方法的流程示意图;
69.图5为一个实施例中恶意代码检测模型的训练方法的流程示意图;
70.图6为一个实施例中恶意代码的检测装置的结构框图;
71.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
72.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
73.在一个实施例中,如图1所示,提供了一种恶意代码的检测方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
74.步骤102,获取待检测代码,从待检测代码中提取特征数据集。
75.其中,每个特征数据集包括多个特征数据子集,每个特征数据子集包括多个特征数据。
76.本技术实施例中,终端获取待检测代码,提取待检测代码的特征数据集。特征数据集的数目可以是一个,也可以是多个。在一个示例中,待检测代码的特征可以包括文件指纹、行为指纹、以及流量指纹,相应的,特征数据集包括文件指纹对应的特征数据集、行为指纹对应的特征数据集、以及流量指纹对应的特征数据集。文件指纹具体可以包括函数调用和应用程序编程接口(applicationprogramminginterface,api)调用特征、文件目录结构特征、脚本信息特征、字符串信息特征、应用签名特征、应用系统访问权限、应用系统组件特征、以及图像纹理特征,相应的,特征数据子集包括函数调用和应用程序编程接口调用特征对应的特征数据子集、文件目录结构特征对应的特征数据子集、脚本信息特征对应的特征数据子集、字符串信息特征对应的特征数据子集、应用签名特征对应的特征数据子集、应用系统访问权限对应的特征数据子集、应用系统组件特征对应的特征数据子集、以及图像纹理特征对应的特征数据子集。行为指纹具体可以包括系统调用特征、命令执行特征、关键路径特征、数据访问特征、以及网络访问行为特征,相应的,特征数据子集包括系统调用特征对应的特征数据子集、命令执行特征对应的特征数据子集、关键路径特征对应的特征数据子集、数据访问特征对应的特征数据子集、以及网络访问行为特征对应的特征数据子集。流量指纹具体可以包括协议特征、流特征、以及加密套件特征,相应的,特征数据子集包括协议特征对应的特征数据子集、流特征对应的特征数据子集、以及加密套件特征对应的特征数据子集。流特征对应的特征数据子集包括多个特征数据,该多个特征数据可以是数据包的包数、数据包的包长、数据包包的间隔、数据包的大小。
77.步骤104,针对特征数据集包含的每个特征数据子集,计算特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重。
78.本技术实施例中,针对特征数据集包含的每个特征数据子集,终端采用哈希算法中的文本哈希算法,将每个特征数据映射成对应的哈希序列。可选的,哈希序列是预设的固定长度的序列。终端在待检测代码中,搜索每个特征数据对应的特征的被调用的指令,确定该被调用的指令的条数,并把该被调用的指令的条数作为特征频次。针对特征数据子集中的每个特征数据,终端根据特征数据对应的特征频次、特征数据的维度、以及该特征数据对应的特征数据子集中最高维度的特征数据的维度,计算特征数据对应的权重。具体的,终端将特征频次、特征数据的维度、以及最高维度的特征数据的维度带入如下所示公式(1)中,计算得到特征数据对应的权重。
[0079][0080]
其中,w是特征数据对应的权重,k是预设的参数,t是特征频次,d
max
是特征数据对应的特征数据子集中最高维度的特征数据的维度,d是特征数据的维度。
[0081]
步骤106,根据每个特征数据的哈希序列和权重,确定每个特征数据对应的特征值序列,并基于各特征数据对应的特征值序列进行按位融合处理,得到特征数据子集对应的融合数据。
[0082]
本技术实施例中,针对每个特征数据子集中的特征数据,终端根据每个特征数据的哈希序列和权重,确定每个特征数据对应的特征值序列。针对一个特征数据子集,终端基于特征值序列进行按位融合,得到该特征数据子集对应的融合数据。
[0083]
步骤108,根据各特征数据子集对应的融合数据,确定目标数据集,并将目标数据集输入至训练后的恶意代码检测模型,得到代码检测结果。
[0084]
其中,目标数据集包含多个目标数据子集。训练后的恶意代码检测模型可以是训练后的随机森林模型。训练后的随机森林模型包括多棵训练后的决策树。
[0085]
本技术实施例中,以一次抽取为示例,多次抽取的情况与之类似,不再赘述。针对各特征数据子集,终端按照预设的抽样策略,随机有放回的抽取融合数据,得到目标数据子集。可以理解,针对各特征数据子集,终端经过多次抽取,得到多个目标数据子集。终端将多个目标数据子集分别输入至训练后的恶意代码检测模型中的决策树,每棵决策树会输出一个代码检测结果。训练后的恶意代码检测模型根据预设的结果输出策略,统计所有代码检测结果,得到输出个数最多的代码检测结果,并将输出个数最多的代码检测结果作为最终代码检测结果。上述恶意代码的检测方法中,终端通过对待检测代码进行特征提取,并基于提取的多个特征数据进行融合处理,确定目标数据集,再把该目标数据集输入至训练后的恶意代码检测模型,得到代码检测结果。可以理解,对多个特征数据进行融合处理实现了降维,相应地,基于多个特征数据进行融合处理后得到的目标数据集也实现了降维。因此,训练后的恶意代码检测模型的输入是低维度的目标数据集,导致训练后的恶意代码检测模型的运算时间缩短,提高了检测效率。
[0086]
在一个实施例中,如图2所示,根据每个特征数据的哈希序列和权重,确定每个特征数据对应的特征值序列,包括:
[0087]
步骤202,针对哈希序列包含的每个哈希值,根据哈希值确定权重的符号,根据权重的符号和权重,确定特征值。
[0088]
本技术实施例中,针对哈希序列包含的每个哈希值,终端根据预设的哈希值与权重符号的对应关系,确定每个哈希值对应的权重的符号,并根据该权重的符号、以及权重的具体数值,确定每个哈希值对应的特征值。具体的,针对哈希序列包含的每个哈希值,终端获取哈希值并确定哈希值是0还是1。在确定哈希值是0的情况下,终端确定哈希值对应的权重的符号为负号,根据权重符号为负号、以及权重的具体数值,确定该哈希值对应的特征值是负权重;在确定哈希值是1的情况下,终端确定哈希值对应的权重的符号为正号,根据权重符号为正号、以及权重的具体数值,确定该哈希值对应的特征值是正权重。
[0089]
步骤204,根据各哈希值对应的特征值,得到特征数据对应的特征值序列。
[0090]
本技术实施例中,终端根据各哈希值对应的特征值,按照哈希值的排列顺序,对哈
希值对应的特征值进行排序,得到特征数据对应的特征值序列。其中,特征值序列中各特征值的排列顺序与各特征值对应的哈希值的排列顺序相同。
[0091]
以一个特征数据对应的哈希序列为示例,其他哈希序列的情况与之类似,不再赘述。若有一个哈希序列是{100110},该哈希序列的权重为w1。针对哈希序列{100110},终端按序列顺序获取哈希序列中的每个哈希值,获取并确定第一个哈希值为1,进而确定第一个哈希值对应的权重符号为正号。针对第一个哈希值,终端根据哈希序列{100110}对应的权重为w1、该权重符号为正号,确定第一个哈希值对应的特征值为w1。类似的,终端确定第二个哈希值0对应的特征值为-w1,以此类推,得到哈希序列{100110}对应的特征值序列为{w1,-w1,-w1,w1,w1,-w1}。可以理解,本实施例中以一个6位的哈希序列为示例,但不限制哈希序列的具体位数。
[0092]
本实施例中,终端通过根据特征数据的哈希序列以及权重,确定该特征数据对应的特征值序列,能够使特征值序列融合了哈希信息以及权重信息,降低了后续参与运算的数据的维度。
[0093]
在一个实施例中,如图3所示,基于各特征数据对应的特征值序列进行按位融合处理,得到特征数据子集对应的融合数据,包括:
[0094]
步骤302,针对一个特征数据子集包含的特征数据,对各特征数据对应的特征值序列进行按位线性叠加,得到特征数据子集对应的融合特征值序列。
[0095]
本技术实施例中,针对一个特征数据子集包含的特征数据,终端对各特征数据对应的特征值序列进行按位相加求和,将每个位上特征值的和作为融合特征值序列的融合特征值。其中,融合特征值序列包含多个融合特征值。终端根据特征值序列对应的特征值,按照特征值的排列顺序,对特征值的和对应的融合特征值进行排序,得到特征数据子集对应的融合特征值序列。具体的,终端分别在每个特征值序列中,确定第ii位的特征值,i为正整数且i的范围为[1,特征值序列的位数]。然后,终端将确定出的第ii位的各特征值进行求和,得到第ii位的融合特征值。若一个特征数据子集中有两个对应的特征值序列,一个特征值序列为{w1,-w1,-w1,w1,w1,-w1},另一个特征值序列为{w2,w2,-w2,-w2,-w2,-w2},那么终端分别在两个特征值序列中,确定第1位的特征值为w1、w2,计算w1与w2的和,得到第1位的融合特征值位(w1+w2)。类似的,终端计算得到该特征数据子集对应的融合特征值序列{w1+w2,-w1+w2,-w
1-w2,w
1-w2,w
1-w2,-w
1-w2}。可以理解,上述特征值序列只是作为示例,并不对特征值序列的位数、以及特征值序列中的特征值进行限制。
[0096]
步骤304,针对特征数据子集对应的融合特征值序列,根据融合特征值序列对应的映射策略,得到特征数据子集对应的融合数据。
[0097]
本技术实施例中,针对特征数据子集对应的融合特征值序列,终端根据融合特征值序列对应的映射策略,得到特征数据子集对应的融合数据。以一个特征数据子集对应的融合特征值序列为示例,其他特征数据子集的情况与之类似,不再赘述。针对融合特征值序列,终端确定第k位的融合特征值,k为正整数且k的范围为[1,融合特征值序列的位数]。然后,终端根据融合特征值序列对应的映射策略,将确定出的第k位的融合特征值进行映射处理,得到融合数据的对应的第k位映射值。终端根据融合特征值序列对应的融合特征值,按照融合特征值的排列顺序,对融合特征值对应的映射值进行排序,得到特征数据子集对应的融合数据。其中,融合数据包含多个映射值。具体的,针对特征数据子集对应的融合特征
值序列,终端获取并确定融合特征值序列中每个融合特征值是正数还是负数。在融合特征值是正数的情况下,终端将融合特征值映射成映射值1;在融合特征值是负数的情况下,终端将融合特征值映射成映射值0。若一个特征数据子集对应的融合特征值序列为{13,108,-22,-5,-32,55}。针对融合特征值序列{13,108,-22,-5,-32,55},终端确定第1位的融合特征值为13,根据融合特征值序列对应的映射策略,将13映射成1,将1作为融合数据对应的第1位映射值。类似的,终端对上述融合特征值序列进行映射处理,得到特征数据子集对应的融合数据为{1,1,0,0,0,1}。可以理解,上述融合特征值序列只是作为示例,并不会对融合特征值序列的位数、以及融合特征值序列中的融合特征值进行限制。
[0098]
本实施例中,终端通过对特征值序列进行按位融合处理,得到特征数据子集对应的融合数据。因此,本技术方案可以将高维度的特征数据子集进行降维得到较低维度的融合数据,后续再对较低维度的融合数据进行检测,提高了检测效率。
[0099]
在一个实施例中,针对特征数据集包含的每个特征数据子集,计算特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重之前,还包括:
[0100]
针对各特征数据子集包含的每个特征数据,计算每个特征数据对应的信息增益率;针对一个特征数据子集,在特征数据子集中,筛选信息增益率满足第一预设筛选策略的特征数据,得到筛选后的特征数据子集。
[0101]
本技术实施例中,针对各特征数据子集包含的每个特征数据,终端计算每个特征数据对应的信息增益率。可选的,任一能够计算每个特征数据对应的信息增益率的算法均可以应用于本技术实施例中,本技术实施例不做限定。针对一个特征数据子集,终端根据第一预设筛选策略,筛选信息增益率满足第一预设筛选策略的特征数据,得到筛选后的特征数据子集。具体的,针对一个特征数据子集,终端获取并确定特征数据子集中特征数据的个数。针对该特征数据子集中特征数据的个数,终端确定特征数据的个数是否满足预设数目。针对一个特征数据子集,在特征数据个数小于预设数目的情况下,终端将该特征数据子集作为筛选后的特征数据子集;在特征数据个数大于或等于预设数目的情况下,针对特征数据子集中的每个特征数据,终端按照特征数据对应的信息增益率进行降序排序,得到特征数据数列,然后筛选前预设数目个特征数据,基于前预设数目个特征数据构成筛选后的特征数据子集。可选的,预设数目可以是3000。
[0102]
本实施例中,终端通过计算特征数据对应的信息增益率,并根据预设的筛选条件,得到筛选后的特征数据子集。本技术方案对高维度特征子集中的特征数据进行筛选,删除对代码检测效果影响较小的特征数据,保留对代码检测效果影响较大的特征数据,保障了代码检测的准确率的同时降低了特征子集的维度,进而提高了代码检测的效率。
[0103]
在一个实施例中,从待检测代码中提取对应的特征数据集,包括:
[0104]
根据各特征类型对应的提取策略,从待检测代码中分别提取各特征类别对应的特征数据集。
[0105]
其中,特征类别包含文件特征、行为特征、以及流量特征;文件特征包含图像纹理特征;流量特征包含协议特征、流特征、以及加密套件特征。
[0106]
本技术实施例中,终端根据各特征类型对应的提取策略,从待检测代码中分别提取各特征类别对应的特征数据集。可选的,任一能够从待检测代码中提取特征数据的方法均可以应用于本技术实施例中,本技术实施例不做限定。具体的,在不运行待检测代码的情
况下,终端对储存待检测代码的文件进行特征提取,得到文件指纹对应的特征数据集。可选的,文件指纹包括函数调用特征、应用程序编程接口(applicationprogramminginterface,api)调用特征、文件目录结构特征、脚本信息特征、字符串信息特征、应用签名特征、应用系统访问权限、应用系统组件特征、以及图像纹理特征。终端采用沙箱模拟待检测代码的运行环境,并记录待检测代码在运行过程中的操作行为,并对操作行为进行特征提取,得到行为指纹对应的特征数据集。可选的,行为指纹包括系统调用特征、命令执行特征、关键路径特征、数据访问特征、以及网络访问行为特征。终端对待检测代码的网络流量的通信协议进行逆向分析,并对逆向分析过程中的流量进行特征提取,得到网络流量指纹对应的特征数据集。可选的,网络流量指纹包括协议特征、流特征、以及加密套件特征。
[0107]
本实施例中,终端根据各特征类型对应的提取策略,从待检测代码中分别提取各特征类别对应的特征数据集,能够保证提取的特征足够全面、足够多,进而后续基于特征向量集得到的目标数据集中的特征的类别也相对较多,保障了恶意代码检测的准确率。
[0108]
在一个实施例中,如图4所示,根据各特征数据子集对应的融合数据,确定目标数据集,并将目标数据集输入至训练后的恶意代码检测模型,得到代码检测结果,包括:
[0109]
步骤402,基于各特征数据子集对应的融合数据,构成融合数据集。.
[0110]
本技术实施例中,终端基于各特征数据子集对应的融合数据,构成融合数据集。
[0111]
步骤404,针对融合数据集,采用引导聚集算法进行抽样,得到第一预设数目个初始数据集。
[0112]
本技术实施例中,针对融合数据集,终端采用引导聚集算法(bootstrap aggregating,bagging)进行抽样,得到第一预设数目个初始数据集。
[0113]
步骤406,针对每个初始数据集中的融合数据,随机有放回的从初始数据集中抽取第二预设数目个融合数据,并将权重不满足第二预设筛选策略的融合数据进行删除,得到对应的第一预设数目个目标数据集。本技术实施例中,针对每个初始数据集中的融合数据,终端随机有放回的从初始数据集中抽取第二预设数目次,得到第二预设数目个融合数据。针对每个初始数据集对应的第二预设数目个融合数据,终端确定每个融合数据对应的权重是否大于或等于预设阈值。在融合数据对应的权重大于或等于预设阈值的情况下,终端确定该融合数据对应的权重满足第二预设筛选策略,对该融合数据不进行处理;在融合数据对应的权重小于预设阈值的情况下,终端确定该融合数据对应的权重不满足第二预设筛选策略,并对该融合数据进行删除。经过上述处理,终端得到初始数据集对应的第一预设数目个目标数据集。
[0114]
步骤408,将各目标数据集分别输入至训练后的恶意代码检测模型中的决策树中,得到代码检测结果。
[0115]
其中,目标数据集包含多个目标数据子集。训练后的恶意代码检测模型可以是训练后的随机森林模型。训练后的随机森林模型包括多棵训练后的决策树。
[0116]
本技术实施例中,终端将各目标数据子集分别输入至训练后的恶意代码检测模型中的决策树,每棵决策树会输出一个代码检测结果。训练后的恶意代码检测模型根据预设的结果输出策略,统计所有代码检测结果,得到输出个数最多的代码检测结果,并将输出个数最多的代码检测结果作为最终代码检测结果。具体的,以由三棵决策树组成的训练后的恶意代码检测模型为示例,终端将三个目标数据集分别输入至对应的决策树中,每棵决策
树输出代码检测结果。若第一棵决策树输出的代码检测结果为恶意代码,第二棵决策树输出的代码检测结果为恶意代码,第三棵决策树输出的代码检测结果为安全代码,训练后的恶意代码模型对三棵决策树输出的代码检测结果进行统计,得到输出个数最多的代码检测结果为恶意代码。训练后的恶意代码模型按照预设的结果输出策略,输出代码检测结果为恶意代码,终端得到代码检测结果为恶意代码。
[0117]
本实施例中,终端根据引导聚集算法、以及第二预设筛选策略,确定目标数据集,并将目标数据集输入至训练后的恶意代码检测模型,得到代码检测结果,本技术方案能够使目标数据集降维,提高代码检测效率。
[0118]
在一个实施例中,如图5所示,恶意代码的检测方法还包括:
[0119]
步骤502,获取恶意代码,从恶意代码中提取特征数据集。
[0120]
其中,每个特征数据集包括多个特征数据子集,每个特征数据子集包括多个特征数据。
[0121]
本技术实施例中,终端从恶意代码中提取特征数据集。可选的,任一能够从恶意代码中提取特征数据的方法均可以应用于本技术实施例中,本技术实施例不做限定。具体的,在不运行恶意代码的情况下,终端对储存恶意代码的文件进行特征提取,得到文件指纹对应的特征数据集。可选的,文件指纹包括函数调用特征、应用程序编程接口(applicationprogramminginterface,api)调用特征、文件目录结构特征、脚本信息特征、字符串信息特征、应用签名特征、应用系统访问权限、应用系统组件特征、以及图像纹理特征。终端采用沙箱模拟恶意代码的运行环境,并记录恶意代码在运行过程中的操作行为,并对操作行为进行特征提取,得到行为指纹对应的特征数据集。可选的,行为指纹包括系统调用特征、命令执行特征、关键路径特征、数据访问特征、以及网络访问行为特征。终端对恶意代码的网络流量的通信协议进行逆向分析,并对逆向分析过程中的流量进行特征提取,得到网络流量指纹对应的特征数据集。可选的,网络流量指纹包括协议特征、流特征、以及加密套件特征。
[0122]
步骤504,针对特征数据集包含的每个特征数据子集,计算特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重。
[0123]
本技术实施例中,终端对步骤504的处理过程与对步骤104的处理过程类似,不再赘述。
[0124]
步骤506,根据每个特征数据的哈希序列和权重,确定每个特征数据对应的特征值序列,并基于各特征数据对应的特征值序列进行按位融合处理,得到特征数据子集对应的融合数据。
[0125]
本技术实施例中,终端对步骤506的处理过程与对步骤106的处理过程类似,不再赘述。
[0126]
步骤508,根据各特征数据子集对应的融合数据,确定样本数据集,并将样本数据集输入至待训练的恶意代码检测模型,得到代码预测结果。
[0127]
其中,样本数据集包含多个样本数据子集。待训练的恶意代码检测模型可以是待训练的随机森林模型。待训练的随机森林模型包括多棵待训练的决策树。
[0128]
本技术实施例中,终端基于各特征数据子集对应的融合数据,构成融合数据集。针对融合数据集,终端采用引导聚集算法进行抽样,得到第一预设数目个初始数据集。针对每
个初始数据集中的融合数据,终端随机有放回的从初始数据集中抽取第二预设数目次,得到第二预设数目个融合数据。针对每个初始数据集对应的第二预设数目个融合数据,终端确定每个融合数据对应的权重是否大于或等于预设阈值。在融合数据对应的权重大于或等于预设阈值的情况下,终端确定该融合数据对应的权重满足第二预设筛选策略,对该融合数据不进行处理;在融合数据对应的权重小于预设阈值的情况下,终端确定该融合数据对应的权重不满足第二预设筛选策略,并对该融合数据进行删除。经过上述处理,终端得到初始数据集对应的第一预设数目个样本数据集。终端将各样本数据子集分别输入至待训练的恶意代码检测模型中的决策树,每棵决策树会输出一个代码检测结果。
[0129]
步骤510,根据代码预测结果,对待训练的恶意代码检测模型的参数进行调节,以使调整后的恶意代码检测模型达到预设精度条件,得到待训练的恶意代码检测模型。
[0130]
本技术实施例中,针对待训练的恶意代码检测模型中的每棵决策树,终端获取每棵决策树对应的代码检测结果,确定该代码检测结果是否与真实结果相同。在代码检测结果与真实结果相同的情况下,终端对该代码检测结果对应的决策树的参数不进行调节,得到训练后的决策树;在代码检测结果与真实结果不相同的情况下,终端对该代码检测结果对应的决策树的参数进行调节,直到调节后的决策树满足预设精度条件,得到训练后的决策树。在每棵决策树都达到预设精度条件的情况下,终端得到待训练的恶意代码检测模型。
[0131]
本实施例中,终端通过从已知的恶意代码中提取多类别的特征数据集,并对该特征数据集进行筛选跟降维得到融合数据,再对融合数据进行随机抽样跟筛选得到样本数据集,进而用样本数据集来训练恶意代码检测模型,最后得到满足预设精度条件的待训练的恶意代码模型。也就是说,本技术方案能够训练出满足预设准确率要求的恶意代码模型。
[0132]
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0133]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的恶意代码的检测方法的恶意代码的检测装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个恶意代码的检测装置实施例中的具体限定可以参见上文中对于恶意代码的检测方法的限定,在此不再赘述。
[0134]
在一个实施例中,如图6所示,提供了一种恶意代码的检测装置,包括:
[0135]
第一获取模块602,用于获取恶意代码,从恶意代码中提取特征数据集;每个特征数据集包括多个特征数据子集;
[0136]
第一计算模块604,用于针对特征数据集包含的每个特征数据子集,计算特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重;
[0137]
第一确定模块606,用于根据每个特征数据的哈希序列和权重,确定每个特征数据对应的特征值序列,并基于各特征数据对应的特征值序列进行按位融合处理,得到特征数据子集对应的融合数据;
[0138]
第二确定模块608,用于根据各特征数据子集对应的融合数据,确定样本数据集,并将样本数据集输入至待训练的恶意代码检测模型,得到代码检测结果。
[0139]
在其中一个实施例中,第一确定模块606,具体用于:
[0140]
针对哈希序列包含的每个哈希值,根据哈希值确定权重的符号,根据权重的符号和权重,确定特征值;
[0141]
根据各哈希值对应的特征值,得到特征数据对应的特征值序列,特征值序列中各特征值的排列顺序与各特征值对应的哈希值的排列顺序相同。
[0142]
在其中一个实施例中,第一确定模块606,具体用于:
[0143]
针对一个特征数据子集包含的特征数据,对各特征数据对应的特征值序列进行按位线性叠加,得到特征数据子集对应的融合特征值序列;
[0144]
针对特征数据子集对应的融合特征值序列,根据融合特征值序列对应的映射策略,得到特征数据子集对应的融合数据。
[0145]
在其中一个实施例中,装置,还包括:
[0146]
第二计算模块,用于针对各特征数据子集包含的每个特征数据,计算每个特征数据对应的信息增益率;
[0147]
筛选模块,用于针对一个特征数据子集,在特征数据子集中,筛选信息增益率满足第一预设筛选策略的特征数据,得到筛选后的特征数据子集。
[0148]
在其中一个实施例中,第一获取模块602,具体用于:
[0149]
根据各特征类型对应的提取策略,从恶意代码中分别提取各特征类别对应的特征数据集;
[0150]
其中,特征类别包含文件特征、行为特征、以及流量特征;文件特征包含图像纹理特征;流量特征包含协议特征、流特征、以及加密套件特征。
[0151]
在其中一个实施例中,第二确定模块608,具体用于:
[0152]
基于各特征数据子集对应的融合数据,构成融合数据集;
[0153]
针对融合数据集,采用引导聚集算法进行抽样,得到第一预设数目个初始数据集;
[0154]
针对每个初始数据集中的融合数据,随机有放回的从初始数据集中抽取第二预设数目个融合数据,并将权重不满足第二预设筛选策略的融合数据进行删除,得到对应的第一预设数目个样本数据集;
[0155]
将各样本数据集分别输入至待训练的恶意代码检测模型中的决策树中,得到代码检测结果。
[0156]
在其中一个实施例中,装置,还包括:
[0157]
第二获取模块,用于获取恶意代码,从恶意代码中提取特征数据集;每个特征数据集包括多个特征数据子集;
[0158]
第三计算模块,用于针对特征数据集包含的每个特征数据子集,计算特征数据子集中每个特征数据对应的哈希序列、以及每个特征数据对应的权重;
[0159]
第三确定模块,用于根据每个特征数据的哈希序列和权重,确定每个特征数据对应的特征值序列,并基于各特征数据对应的特征值序列进行按位融合处理,得到特征数据子集对应的融合数据;
[0160]
第四确定模块,用于根据各特征数据子集对应的融合数据,确定样本数据集,并将
access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0170]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0171]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1