一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

文档检测方法、模型训练方法、装置、终端及存储介质与流程

2022-05-18 15:46:17 来源:中国专利 TAG:


1.本技术涉及互联网技术领域,具体而言,涉及一种文档检测方法、模型训练方法、装置、终端及存储介质。


背景技术:

2.所谓恶意office文档,指的是通过嵌入并执行恶意代码或利用其结构特性以窃取敏感信息、监视和破坏用户正常活动的office文档。分析最近几年的apt(advanced persistent threat,定向威胁攻击)事件可以看出,恶意office文档已成为不法分子利用最为频繁的攻击诱饵。office是人们电脑上最常用的办公软件,恶意office文档攻击不仅给个人、企业带来巨大的风险,同时也严重威胁着国家安全。攻击者攻击电脑成功后,一般会利用该电脑作为跳板,进行横向移动,攻击网络内其它电脑或设施,窃取机密数据,或者对重要基础设施进行破坏。因此,有必要对文档进行检测,区分出恶意文档和正常文档。
3.目前主要是基于沙箱进行恶意文档和正常文档的检测区分,该方法需要将待检测文档丢到沙箱中进行动态执行,然后分析执行结果,检测不够便捷、速度比较慢,且部署沙箱的成本比较高。


技术实现要素:

4.本技术实施例的目的在于提供一种文档检测方法、模型训练方法、装置、终端及存储介质,用以解决现有技术中通过沙箱进行恶意文档的检测所存在的检测不够便捷、检测速度较慢且成本较高的问题。
5.本技术实施例提供一种文档检测方法,所述方法包括:
6.获取待检测文档的宏代码;
7.从所述宏代码中提取预设特征对应的特征信息;所述预设特征包括统计特征和训练特征中的至少一种,所述统计特征为所述宏代码中用于表示统计数据的特征,所述训练特征为根据预设训练样本文档确定的特征,所述预设训练样本文档包括设置有恶意类别标签的训练样本文档以及设置有正常类别标签的训练样本文档;
8.将所述特征信息输入预设的恶意文档检测模型得到所述待检测文档的检测结果。
9.在上述实现过程中,直接根据预设的恶意文档检测模型对待检测文档进行检测,由于不需要将待检测文档放入沙箱进行检测,故也不需要部署沙箱环境,成本更低,检测更加便捷,而且检测速度更快。
10.进一步地,在所述预设特征包括所述训练特征时,所述方法还包括根据所述预设训练样本文档确定所述训练特征的步骤:
11.基于词袋模型及tf-idf模型中的至少一种对所述预设训练样本文档进行特征筛选,得到所述训练特征。
12.在上述实现过程中,基于词袋模型以及tf-idf模型中的至少一种进行特征筛选得到训练特征,由于特征经过筛选,因此更具代表性,检测结果更加准确。
13.进一步地,所述基于词袋模型及tf-idf模型中的至少一种对所述预设训练样本文档进行特征筛选,得到所述训练特征,包括:
14.基于词袋模型对所述预设训练样本文档进行特征筛选得到词袋特征,并基于tf-idf模型对所述预设训练样本文档进行特征筛选得到tf-idf特征,对该词袋特征和该tf-idf特征求并集或交集,得到所述训练特征;
15.或,
16.基于词袋模型对所述预设训练样本文档进行特征筛选得到词袋特征,基于tf-idf模型对该词袋特征进行过滤得到所述训练特征。
17.在上述实现过程中,利用词袋模型以及tf-idf模型进行特征筛选,也即基于特征的出现频次以及识别度得到训练特征,使得所得到的训练特征代表性更高,进一步提升了检测结果的准确性。
18.进一步地,所述方法还包括:
19.当所述检测结果指示所述待检测文档的类型为恶意文档时,直接将所述待检测文档确定为恶意文档;
20.当所述检测结果指示所述待检测文档的类型为正常文档时,将所述宏代码与预设关键代码进行比较,根据比较结果确定是否将所述待检测文档的类型由正常文档更改为恶意文档。
21.在上述实现过程中,当恶意文档检测模型的检测结果指示待检测文档的类型为正常文档时,进行关键代码的检测,以决定是否将待检测文档的类型由正常文档改为恶意文档,先基于模型进行第一轮检测,然后从关键代码检测维度进行更进一步的第二轮检测,提升了检测结果的准确性,
22.进一步地,所述预设关键代码包括与自启动行为对应的第一类型代码、与写入行为对应的第二类型代码以及与执行payload行为对应的第三类型代码中的至少两种。
23.在上述实现过程中,由于基于恶意文档的代表性行为预设有对应的关键代码,尽可能保证了检测结果的准确性。
24.进一步地,所述根据比较结果确定是否将所述待检测文档的类型由正常文档更改为恶意文档,包括:
25.当所述宏代码中存在与所述预设关键代码相匹配的至少两种类型代码时,将所述待检测文档的类型由正常文档更改为恶意文档。
26.在上述实现过程中,通过查找与关键代码相匹配的代码来确定待检测文档的宏代码是否包含有对应的行为,以此来进一步确定该待检测文档是否是恶意文档。
27.本技术实施例还提供了一种恶意文档检测模型训练方法,所述方法包括:
28.获取设置有恶意类别标签的训练样本文档以及设置有正常类别标签的训练样本文档;
29.获取各所述训练样本文档的宏代码;
30.从各所述宏代码中提取预设特征对应的特征信息,所述预设特征包括统计特征和训练特征中的至少一种,所述统计特征为所述宏代码中用于表示统计数据的特征,所述训练特征为根据所述训练样本文档确定的特征;
31.根据各所述训练样本文档的所述特征信息进行模型训练,得到恶意文档检测模
型。
32.本技术实施例还提供了一种文档检测装置,包括:
33.获取模块,用于获取待检测文档的宏代码;
34.提取模块,用于从所述宏代码中提取预设特征对应的特征信息;所述预设特征包括统计特征和训练特征中的至少一种,所述统计特征为所述宏代码中用于表示统计数据的特征,所述训练特征为根据预设训练样本文档确定的特征,所述预设训练样本文档包括设置有恶意类别标签的训练样本文档以及设置有正常类别标签的训练样本文档;
35.检测模块,用于将所述特征信息输入预设的恶意文档检测模型得到所述待检测文档的检测结果。
36.本技术实施例还提供了一种终端,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,以实现上述任意一种方法。
37.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时,以实现上述任意一种方法。
附图说明
38.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
39.图1为本技术实施例一提供的文档检测方法的流程示意图;
40.图2为本技术实施例一提供的自启动行为对应代码的示意图;
41.图3为本技术实施例一提供的写入行为对应代码的示意图;
42.图4为本技术实施例一提供的执行payload行为对应代码的示意图;
43.图5为本技术实施例二提供的恶意文档检测模型训练方法的流程示意图;
44.图6为本技术实施例三提供的文档检测装置的结构示意图;
45.图7为本技术实施例四提供的终端的结构示意图。
具体实施方式
46.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
47.需要说明的是,在本发明实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
48.在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后
顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
49.下面将提供多个实施例,来具体介绍文档检测方法、模型训练方法、装置、终端及存储介质。
50.实施例一:
51.为解决现有技术中检测恶意文档时需要通过沙箱进行检测,检测不够便捷、检测速度较慢、成本较高的问题,本技术实施例提供一种文档检测方法,请参见图1所示,包括:
52.s101:获取待检测文档的宏代码。
53.步骤s101中的待检测文档可以是任意包含有宏代码的文档,例如可以是office文档,更具体的,包括但不限于是word文档、excel文档以及ppt文档。
54.s102:从宏代码中提取预设特征对应的特征信息,预设特征包括统计特征和训练特征中的至少一种。
55.可以理解的是,在其他的一些实施例中,步骤s102中的预设特征可以由开发人员任意设置,例如,可以选择在区分恶意文档和正常文档方面具有代表性的特征作为这里的预设特征。本实施例中的预设特征包括统计特征和训练特征中的至少一种。
56.其中,统计特征为宏代码中用于表示统计数据的特征,其可以是表示任意统计数据的特征,具体的,请参见下面表1,本实施例中的统计特征包括但不限于以下10种特征的至少一种:
57.表1统计特征
58.统计特征名含义vba_avg_param_per_func平均每个方法包含的参数个数vba_cnt_comment_loc_ratio包含的注释的行的占比vba_cnt_comments包含的注释的行的个数vba_cnt_func_loc_ratio方法个数和非空行数的比值vba_cnt_functions包含的方法个数vba_cnt_loc全部非空行数vba_entropy_chars全部字母的熵vba_entropy_func_names全部方法中的参数的熵vba_entropy_words全部单词的熵vba_mean_loc_per_func平均每个方法占的行个数
59.步骤s102中的训练特征为根据预设训练样本文档确定的特征,预设训练样本文档包括设置有恶意类别标签的训练样本文档以及设置有正常类别标签的训练样本文档。
60.在预设特征包括训练特征时,本实施例提供的文件检测方法还可以包括根据预设训练样本文档确定训练特征的步骤:
61.基于词袋模型及tf-idf模型中的至少一种对预设训练样本文档进行特征筛选,得到所述训练特征。
62.词袋模型需要对训练样本文档中的宏代码进行分词(也即区分特征),分词之后统计每个词在文档中出现的次数(也即统计每个特征在文档中出现的次数),根据该次数进行所述训练特征的筛选。本实施例中的词袋模型在统计词频进行特征的筛选时,可以使用sklearn的countvectorizer方法进行词频统计。
63.tf-idf模型可以评估每一词对于一个文档集或一份文档对于所在的一个语料库中的重要程度。字词的重要性随着它在文档中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。本实施例中基于tf-idf模型对特征的重要程度进行评估,重要程度越高,其更具有代表性,可以将其筛选出来作为预设特征用于区分恶意文档和正常文档。本实施例中的tf-idf模型可以使用sklearn的tf-idftransformer方法进行特征筛选。
64.基于词袋模型及tf-idf模型中的至少一种对预设训练样本文档进行特征筛选,得到所述训练特征的具体方案可以是以下方案中的任意一种:
65.第一种:基于词袋模型对预设训练样本文档进行特征筛选得到词袋特征,将该词袋特征作为所述训练特征。
66.第二种:基于tf-idf模型对预设训练样本文档进行特征筛选得到tf-idf特征,将该tf-idf特征作为所述训练特征。
67.第三种:基于tf-idf模型对预设训练样本文档进行特征筛选得到tf-idf特征,基于词袋模型对该tf-idf特征进行过滤得到所述训练特征。
68.第四种:基于词袋模型对预设训练样本文档进行特征筛选得到词袋特征,并基于tf-idf模型对预设训练样本文档进行特征筛选得到tf-idf特征,对该词袋特征和该tf-idf特征求并集或交集,得到所述训练特征。
69.第五种:基于词袋模型对预设训练样本文档进行特征筛选得到词袋特征,基于tf-idf模型对该词袋特征进行过滤得到所述训练特征。
70.s103:将特征信息输入预设的恶意文档检测模型得到待检测文档的检测结果。
71.步骤s103中的恶意文档检测模型可以是基于上述训练样本文档进行模型训练得到的模型,当然了,在其他的一些实施例中,也可以是基于其他的训练样本文档进行模型训练得到的模型。该检测模型具体的生成过程可以参考下文实施例二中的模型训练过程。
72.在一种实施方式中,可以只根据检测模型进行恶意文档的检测,也即直接将该模型的检测结果作为最终的检测结果:
73.当步骤s103中的检测结果指示待检测文档的类型为恶意文档时,可以将该待检测文档确定为恶意文档,当该检测结果指示待检测文档的类型为正常文档时,可以将该待检测文档确定为正常文档。
74.在另外的一种实施方式中,可以结合检测模型以及关键代码检测两种手段进行恶意文档的检测,具体包括:
75.当所述检测结果指示所述待检测文档的类型为恶意文档时,直接确定所述待检测文档为恶意文档;当所述检测结果指示所述待检测文档的类型为正常文档时,将所述宏代码与预设关键代码进行比较,根据比较结果确定是否将所述待检测文档的类型由正常文档更改为恶意文档。
76.在本实施方式中,先基于模型进行第一轮检测,然后从关键代码检测维度进行更进一步的第二轮检测,对检测模型的检测结果进行修正,使最终得到的检测结果更加准确。
77.应当说明的是,本实施例中的预设关键代码可以包括与自启动行为对应的第一类型代码、与写入行为对应的第二类型代码以及与执行payload行为对应的第三类型代码中的至少一种。当待检测文档的宏代码中存在与该预设关键代码相匹配的类型代码时,就可
以将该待检测文档的类型由正常文档更改为恶意文档。其中,自启动行为对应的第一类型代码如图2所示,自写入行为对应的第二类型代码如图3所示,执行payload行为对应的第三类型代码如图4所示。
78.本实施例方式中,通过关键代码检测技术分析待检测文档宏代码的行为,待检测文档的宏代码中存在与预设关键代码相匹配的类型代码说明该宏代码存在与预设关键代码对应的行为,由于自启动行为、自写入行为以及执行payload行为均属于恶意文档对应宏代码的典型行为,因此通过对这三种行为中的任意一种进行检测,可以从一定程度上对检测模型的检测结果进行修正。
79.为了保证修正结果的准确性,预设关键代码可以包括与自启动行为对应的第一类型代码、与写入行为对应的第二类型代码以及与执行payload行为对应的第三类型代码中的至少两种。
80.当待检测文档的宏代码中存在与该预设关键代码相匹配的至少两种类型代码时,将待检测文档的类型由正常文档更改为恶意文档。
81.本技术实施例提供的文档检测方法实质是一种基于机器学习的恶意文档检测方法,基于机器学习的方案,通过提取分析待检测文档中的宏代码,并基于预设的恶意文档检测模型进行检测,能识别未知恶意文档,并且不需要放到沙箱执行,检测速度更快、成本更低。
82.实施例二:
83.本技术实施例提供一种恶意文档检测模型训练方法,请参见图5所示,包括:
84.s501:获取设置有恶意类别标签的训练样本文档以及设置有正常类别标签的训练样本文档。
85.例如,可以获取28225个恶意文档和10509个正常文档作为训练样本文档,当然,训练样本文档的数量可以根据实际需求进行设置。
86.s502:获取各训练样本文档的宏代码。
87.s503:从各宏代码中提取预设特征对应的特征信息,预设特征包括统计特征和训练特征中的至少一种。
88.所述统计特征为所述宏代码中用于表示统计数据的特征,所述训练特征为根据所述训练样本文档确定的特征。需要特别注意的是,在预设特征包括训练特征时,在步骤s502之后,步骤s503之前,可以包括以下步骤:
89.基于词袋模型及tf-idf模型中的至少一种对获取的预设训练样本文档进行特征筛选,得到所述训练特征。
90.本实施例中预设特征的类型以及具体的设置方式与实施例一中预设特征的类型与设置方式相似,这里不再赘述。
91.s504:根据各训练样本文档的特征信息进行模型训练,得到恶意文档检测模型。
92.步骤s504中可以选用随机森林机器学习算法对这些特征信息进行模型训练。当然了,也可以选用其他的机器学习算法进行模型训练。
93.实施例三:
94.本技术实施例提供一种文档检测装置,请参见图6所示,包括:
95.获取模块601,用于获取待检测文档的宏代码。
96.提取模块602,用于从待检测文档的宏代码中提取预设特征对应的特征信息;预设特征包括统计特征和训练特征中的至少一种。其中,统计特征为宏代码中用于表示统计数据的特征,训练特征为根据预设训练样本文档确定的特征,预设训练样本文档包括设置有恶意类别标签的训练样本文档以及设置有正常类别标签的训练样本文档。
97.检测模块603,用于将待检测文档的特征信息输入预设的恶意文档检测模型得到待检测文档的检测结果。
98.在示例性的实施例中,该装置还包括确定模块,用于根据预设训练样本文档确定训练特征。
99.在示例性的实施例中,确定模块用于基于词袋模型及tf-idf模型中的至少一种对预设训练样本文档进行特征筛选,得到所述训练特征。具体包括但不限于以下确定方式中的任意一种:
100.第一种:基于词袋模型对预设训练样本文档进行特征筛选得到词袋特征,将该词袋特征确定为所述训练特征。
101.第二种:基于tf-idf模型对预设训练样本文档进行特征筛选得到tf-idf特征,将该tf-idf特征确定为所述训练特征。
102.第三种:基于tf-idf模型对预设训练样本文档进行特征筛选得到tf-idf特征,基于词袋模型对该tf-idf特征进行过滤得到所述训练特征。
103.第四种:基于词袋模型对预设训练样本文档进行特征筛选得到词袋特征,并基于tf-idf模型对预设训练样本文档进行特征筛选得到tf-idf特征,对该词袋特征和该tf-idf特征求并集或交集,得到所述训练特征。
104.第五种:基于词袋模型对预设训练样本文档进行特征筛选得到词袋特征,基于tf-idf模型对该词袋特征进行过滤得到所述训练特征。
105.在示例性的实施例中,该装置还可以包括修正模块,修正模块用于在所述检测结果指示所述待检测文档的类型为正常文档时,将所述宏代码与预设关键代码进行比较,根据比较结果确定是否将所述待检测文档的类型由正常文档更改为恶意文档。
106.应当说明的是,本实施例中的预设关键代码可以包括与自启动行为对应的第一类型代码、与写入行为对应的第二类型代码以及与执行payload行为对应的第三类型代码中的至少一种。当检测结果指示所述待检测文档的类型为正常文档时,若待检测文档的宏代码中存在与该预设关键代码相匹配的类型代码,修正模块就可以将该待检测文档的类型由正常文档更改为恶意文档。
107.在示例性的实施例中,为了保证修正结果的准确性,预设关键代码可以包括与自启动行为对应的第一类型代码、与写入行为对应的第二类型代码以及与执行payload行为对应的第三类型代码中的至少两种。
108.修正模块用于在检测结果指示所述待检测文档的类型为正常文档,且待检测文档的宏代码中存在与该预设关键代码相匹配的至少两种类型代码时,将待检测文档的类型由正常文档更改为恶意文档。
109.实施例四:
110.基于同一发明构思,本技术实施例提供一种终端,请参见图7所示,包括处理器701和存储器702,所述存储器702中存储有计算机程序,所述处理器701执行所述计算机程序,
以实现上述实施例一和/或实施例二中方法的步骤,在此不再赘述。
111.应当说明的是,本实施例中的设备可以是pc(personal computer,个人电脑)、手机、平板电脑、笔记本电脑、虚拟主机等。也可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。
112.可以理解,图7所示的结构仅为示意,设备还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
113.处理器701可以是一种集成电路芯片,具有信号处理能力。上述处理器701可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本技术实施例中公开的各种方法、步骤及逻辑框图。
114.存储器702可以包括但不限于随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electrically erasable programmable read-only memory,eeprom)等。
115.本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、u盘、sd(secure digital memory card,安全数码卡)卡、mmc(multimedia card,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一和/或实施例二中方法的各步骤,在此不再赘述。
116.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
117.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。
118.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献