掌桥专利:专业的专利平台
掌桥专利
首页

文档检测方法、装置及电子设备

文献发布时间:2024-01-17 01:15:20


文档检测方法、装置及电子设备

技术领域

本发明涉及网络安全技术领域,尤其涉及一种文档检测方法、装置及电子设备。

背景技术

网络技术在不断发展,网络安全一直是用户关注的重点,而恶意文档会对网络安全产生威胁。

恶意文档是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上执行恶意行为,侵犯用户合法权益的电子文档。攻击者大多通过在电子文档中嵌入代码,如JavaScript、Macro等,来实现自己的恶意目的。恶意文档攻击给个人、企业带来风险。攻击者成功攻击电脑后,一般会利用该电脑作为跳板,进行横向移动,攻击网络内其它电脑或设施,窃取机密数据,或者对重要基础设施进行破坏。因此,如何准确检测出恶意文档是目前业界的一个重要课题。

发明内容

本发明提供一种文档检测方法、装置及电子设备,用以解决如何准确检测出恶意文档的问题。

本发明提供一种文档检测方法,包括:对待检测文档进行动态分析,得到文档分析报告;依次将所述文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列,其中,所述目标单词列表是基于历史文档分析报告集合中的各个单词确定的;将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果。

根据本发明提供的一种文档检测方法,在所述对待检测文档进行动态分析,得到文档分析报告之前,还包括:获取原始文档,并对所述原始文档中的目标字节进行分析,其中所述目标字节为所述原始文档的文件头前N个字节,N为正整数;在所述目标字节为复合类别的情况下,将所述原始文档作为待检测文档;或,在所述目标字节为非复合类别的情况下,判断非复合类别的原始文档是否属于Open XML文档或PDF文档;在所述非复合类别的原始文档属于Open XML文档或PDF文档的情况下,将所述原始文档作为待检测文档。

根据本发明提供的一种文档检测方法,所述对待检测文档进行动态分析,得到文档分析报告,包括:在沙箱环境的虚拟机中动态执行所述待检测文档,得到第一分析报告;删除所述第一分析报告中的目标信息,得到第二分析报告,其中,所述目标信息包括info信息、signatures信息、target信息、screenshots信息和所有空字典中的至少一项;将所述第二分析报告中除数字、字母和特定字符外的字符替换为目标字符,并将所述第二分析报告中的IP地址列表替换为所述IP地址列表中IP地址的数量,得到文档分析报告。

根据本发明提供的一种文档检测方法,在所述依次将所述文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列之前,还包括:统计所述历史文档分析报告集合中各个单词的单词频率;选择单词频率最高的M个单词,生成所述目标单词列表,M为正整数。

根据本发明提供的一种文档检测方法,在所述将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果之前,还包括:获取多个单词序列样本和每个单词序列样本对应的文档类别标签,所述文档类别标签包括良性文档标签和恶意文档标签;将每个单词序列样本和文档类别标签的组合作为一个训练样本,获得多个训练样本,利用多个训练样本对所述分类模型进行训练。

根据本发明提供的一种文档检测方法,在所述将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果之后,还包括:在获取到所述文档分析报告的情况下,基于所述待检测文档的文档分析报告更新所述历史文档分析报告集合,生成动态历史文档分析报告集合;统计所述动态历史文档分析报告集合中各个单词的单词频率;选择单词频率最高的M个单词,更新所述目标单词列表,得到新的目标单词列表,M为正整数。

根据本发明提供的一种文档检测方法,在所述选择单词频率最高的M个单词,更新所述目标单词列表,得到新的目标单词列表之后,还包括:在所述新的目标单词列表中存在Z个与所述目标单词列表不同的单词的情况下,从所述动态历史文档分析报告集合中获取多个文档分析报告样本,并获取每个文档分析报告样本对应的文档类别标签,所述文档类别标签包括良性文档标签和恶意文档标签,Z为正整数;依次将每个文档分析报告样本中的各个单词与所述新的目标单词列表中的单词进行匹配,获取匹配成功的每个文档分析报告样本对应的单词序列;将每个文档分析报告样本对应的单词序列和文档类别标签的组合作为一个训练样本,获得多个训练样本,利用多个训练样本对所述分类模型进行训练。

本发明还提供一种文档检测装置,包括:第一分析模块,用于对待检测文档进行动态分析,得到文档分析报告;匹配模块,用于依次将所述文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列,其中,所述目标单词列表是基于历史文档分析报告集合中的各个单词确定的;分类模块,用于将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果。

根据本发明提供的一种文档检测装置,所述装置还包括:

第二分析模块,用于获取原始文档,并对所述原始文档中的目标字节进行分析,其中所述目标字节为所述原始文档的文件头前N个字节,N为正整数;在所述目标字节为复合类别的情况下,将所述原始文档作为待检测文档;或,在所述目标字节为非复合类别的情况下,判断非复合类别的原始文档是否属于Open XML文档或PDF文档;在所述非复合类别的原始文档属于Open XML文档或PDF文档的情况下,将所述原始文档作为待检测文档。

根据本发明提供的一种文档检测装置,所述第一分析模块,具体用于:

在沙箱环境的虚拟机中动态执行所述待检测文档,得到第一分析报告;删除所述第一分析报告中的目标信息,得到第二分析报告,其中,所述目标信息包括info信息、signatures信息、target信息、screenshots信息和所有空字典中的至少一项;将所述第二分析报告中除数字、字母和特定字符外的字符替换为目标字符,并将所述第二分析报告中的IP地址列表替换为所述IP地址列表中IP地址的数量,得到文档分析报告。

根据本发明提供的一种文档检测装置,所述装置还包括:

第一统计模块,用于统计所述历史文档分析报告集合中各个单词的单词频率;

生成模块,用于选择单词频率最高的M个单词,生成所述目标单词列表,M为正整数。

根据本发明提供的一种文档检测装置,所述装置还包括:

第一获取模块,用于获取多个单词序列样本和每个单词序列样本对应的文档类别标签,所述文档类别标签包括良性文档标签和恶意文档标签;

第一训练模块,用于将每个单词序列样本和文档类别标签的组合作为一个训练样本,获得多个训练样本,利用多个训练样本对所述分类模型进行训练。

根据本发明提供的一种文档检测装置,所述装置还包括:

第一更新模块,用于在获取到所述文档分析报告的情况下,基于所述待检测文档的文档分析报告更新所述历史文档分析报告集合,生成动态历史文档分析报告集合;

第二统计模块,用于统计所述动态历史文档分析报告集合中各个单词的单词频率;

第二更新模块,用于选择单词频率最高的M个单词,更新所述目标单词列表,得到新的目标单词列表,M为正整数。

根据本发明提供的一种文档检测装置,所述装置还包括:

第二获取模块,用于在所述新的目标单词列表中存在Z个与所述目标单词列表不同的单词的情况下,从所述动态历史文档分析报告集合中获取多个文档分析报告样本,并获取每个文档分析报告样本对应的文档类别标签,所述文档类别标签包括良性文档标签和恶意文档标签,Z为正整数;

所述匹配模块,还用于依次将每个文档分析报告样本中的各个单词与所述新的目标单词列表中的单词进行匹配,获取匹配成功的每个文档分析报告样本对应的单词序列;

第二训练模块,用于将每个文档分析报告样本对应的单词序列和文档类别标签的组合作为一个训练样本,获得多个训练样本,利用多个训练样本对所述分类模型进行训练。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述文档检测方法的步骤。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述文档检测方法的步骤。

本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述文档检测方法的步骤。

本发明提供的文档检测方法、装置及电子设备,通过从历史文档分析报告中确定目标单词列表,将文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列,并结合分类模型,实现对待检测文档的分类,能有效提高检测出恶意文档的准确率。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的文档检测方法的流程示意图;

图2是本发明提供的文档检测方法的详细流程框图;

图3是本发明提供的文档检测装置的结构示意图;

图4是本发明提供的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。

下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的文档检测方法、装置及电子设备进行详细地说明。

图1是本发明提供的文档检测方法的流程示意图,如图1所示,包括:

步骤110,对待检测文档进行动态分析,得到文档分析报告;

本申请实施例中所描述的待检测文档为格式在检测范围内的文档,例如复合文档、Open XML文档或PDF文档。

具体的,对待检测文档进行动态分析,可以是将待检测文档处理成方便进行文档检测的文档分析报告,还可以是删除待检测文档中对文档分类无意义的部分内容并得到文档分析报告,以便进行后续操作。

本申请实施例中所描述的文档分析报告为包含所有对后续文档检测有意义的内容的报告。

步骤120,依次将所述文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列,其中,所述目标单词列表是基于历史文档分析报告集合中的各个单词确定的;

本申请实施例中所描述的历史文档分析报告集合包括多个历史文档分析报告,每个历史文档分析报告是基于对应的历史文档得到的,历史文档可以是良性文档也可以是恶意文档。对历史文档进行动态分析,得到对应的历史文档分析报告。

具体的,在本申请实施例中目标单词列表可以是基于历史文档分析报告集合中的各个单词的单词频率确定的。

依次将文档分析报告中的各个单词与目标单词列表中的单词进行匹配,将匹配成功的单词依次排列,生成目标单词序列,可以理解的是,目标单词序列里可以有重复的单词。

更具体的,可以直接将匹配到的单词排列生成目标单词序列,也可以是目标单词列表中的每个单词都有对应的ID,先将匹配到的单词对应的ID添加到一个列表中,匹配结束后根据该列表生成目标单词序列。本申请实施例不作具体限定。

进一步的,可以设置目标单词序列的最大长度为200000,即目标单词序列最多可以有200000个单词,在匹配成功的单词数量达到200000的情况下,将不再进行匹配,或者继续匹配但不会再将匹配成功的单词加入到目标单词序列中。在文档分析报告中所有单词均匹配结束,但目标单词序列的长度不足200000的情况下,使用0进行补足。

步骤130,将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果

本申请实施例中所描述的分类模型可以是TextCNN模型,也可以是在TextCNN模型的基础上,使用k-max池化替代最大池化得到的模型。本申请实施例不作具体限定。其中,使用k-max池化可以使检测效果更好。

具体的,将目标单词序列输入到分类模型后,分类模型首先通过词嵌入的方式将目标单词序列中的每个单词映射到一个向量,例如可以用一个50维向量来表征目标单词序列中的每个单词。因此,例如在目标单词序列的最大长度为200000的情况下,目标词序列将被转换为200000*50的向量矩阵。

利用分类模型中的卷积层和池化层对向量矩阵进行特征提取,在使用的是k-max池化的情况下,提取卷积后的前k个最强的特征值,能保留更丰富的信息。然后拼接池化层的所有输出向量,并使用Softmax函数激活输出结果。

Softmax的输出网元为2个,2个输出网元分别对应良性文档和恶意文档这2种分类结果,每个输出网元将输出对应的预测概率,从2个输出网元输出的预测概率中筛选出最大预测概率,将预测概率最大的输出网元对应的分类结果确定为目标单词序列对应的分类结果。例如,若第二个输出网元输出的预测概率最大,且第二个输出网元对应的分类结果为恶意文档,则可确定目标单词序列对应的分类结果为恶意文档。即该目标单词序列对应的待检测文档为恶意文档。

在本申请实施例中,通过从历史文档分析报告中确定目标单词列表,将文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列,并结合分类模型,实现对待检测文档的分类,能有效提高检测出恶意文档的准确率。

可选地,在所述对待检测文档进行动态分析,得到文档分析报告之前,还包括:

获取原始文档,并对所述原始文档中的目标字节进行分析,其中所述目标字节为所述原始文档的文件头前N个字节,N为正整数;

在所述目标字节为复合类别的情况下,将所述原始文档作为待检测文档;

或,在所述目标字节为非复合类别的情况下,判断非复合类别的原始文档是否属于Open XML文档或PDF文档;

在所述非复合类别的原始文档属于Open XML文档或PDF文档的情况下,将所述原始文档作为待检测文档。

本申请实施例中所描述的原始文档可能是待检测文档,也可能是无需检测的文档。

具体的,复合文档是一种多元化的文档,本申请实施例中为Office复合文档。复合文档一般都有固定的文件头标识,因此根据文件头前N个字节就能判断待检测文档是否为复合文档。例如,N可以为8。

若根据原始文档的文件头前N个字节判断该文档为复合文档,则该原始文档为待检测文档。

在判断原始文档不是复合文档的情况下,可以以压缩文档的方式解析原始文档,判断原始文档是否属于Open XML文档或PDF文档。若符合,则原始文档为待检测文档。

若原始文档不属于复合文档,Open XML文档和PDF文档中的任一种,则该原始文档为无需检测的文档。对无需检测的文档不予处理,可以直接输出文档格式不在检测范围内。

在本申请实施例中,通过对原始文档进行分析,确定原始文档是否为待检测文档,只对待检测文档进行后续操作,能够避免不必要的操作,减少资源浪费。

可选地,所述对待检测文档进行动态分析,得到文档分析报告,包括:

在沙箱环境的虚拟机中动态执行所述待检测文档,得到第一分析报告;

删除所述第一分析报告中的目标信息,得到第二分析报告,其中,所述目标信息包括info信息、signatures信息、target信息、screenshots信息和所有空字典中的至少一项;

将所述第二分析报告中除数字、字母和特定字符外的字符替换为目标字符,并将所述第二分析报告中的IP地址列表替换为所述IP地址列表中IP地址的数量,得到文档分析报告。

具体的,本申请实施例中使用Cuckoo沙箱作为动态分析环境,将Linux系统作为分析的主机,在Linux系统中安装一个Windows XP系统虚拟机,作为分析的客户机。

将待检测文档输入到客户机中动态执行一分钟,获取第一分析报告。第一分析报告包含9个部分:info信息、signatures信息、target信息、network信息、dropped信息、behavior信息、debug信息、screenshots信息、strings信息、metadata信息。其中,info信息、signatures信息、target信息和screenshots信息这4个部分对文档的分类没有意义,例如,info部分记录平台和Cuckoo版本等信息,但它们对于所有文档而言都是相同的。且各部分中的空字典对文档的分类也没有意义。因此,可以选择删除info信息、signatures信息、target信息、screenshots信息和所有空字典中的至少一项,得到第二分析报告。

进一步的,第二分析报告中除数字、字母和特定字符外的字符,以及IP地址对文档分类也没有意义。为了能方便提取出分析报告中的单词,可以选择将上述两者进行替换。

本申请实施例中所描述的特定字符可以为英文的点号“.”,考虑到数字中可能包含小数点,因此保留点号。

具体的,例如:除数字、字母和特定字符外的字符可以为空格字符,目标字符可以为*,将空格字符替换为*,基于*能很好地从分析报告中提取出单词,或者根据*将分析报告切分成一个个单词。将第二分析报告中的IP地址列表替换为所述IP地址列表中IP地址的数量,例如:将IP:[1.1.1.1 2.2.2.2]替换为IP:2。替换完成后得到文档分析报告。

在本申请实施例中,将第一分析报告中对文档分类无意义的内容删除或替换,既能够方便提取文档分析报告中的单词,又可以减少后续单词匹配的工作量,且能使匹配到的单词对文档分类有意义,使匹配得到的目标单词序列通过分类模型得到的分类结果更准确,进一步提高检测出恶意文档的准确率。

可选地,在所述依次将所述文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列之前,还包括:

统计所述历史文档分析报告集合中各个单词的单词频率;

选择单词频率最高的M个单词,生成所述目标单词列表,M为正整数。

具体的,可以是统计历史分析报告集合中各个单词的出现频率,并构建一个单词频率表,从该单词频率表中选取频率最高的前M个单词生成目标单词列表,例如:M可以为5000。

在本申请实施例中,基于历史文档分析报告集合中个单词的出现频率就能生成目标单词列表,能实现无人工特征目标单词列表的确定,进而减小目标单词列表的构建复杂程度。

可选地,在所述将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果之前,还包括:

获取多个单词序列样本和每个单词序列样本对应的文档类别标签,所述文档类别标签包括良性文档标签和恶意文档标签;

将每个单词序列样本和文档类别标签的组合作为一个训练样本,获得多个训练样本,利用多个训练样本对所述分类模型进行训练。

本申请实施例中所描述的多个单词序列样本具体可以是,从历史文档分析报告集合中选取多个历史文档分析报告作为多个文档分析报告样本,并将每个文档分析报告样本中的各个单词依次与目标单词列表中的单词进行匹配,获取匹配成功的多个单词序列样本。还可以是在之前所有的文档分析报告在匹配结束后,将匹配成功的单词序列存储起来,作为历史单词序列集合,从历史单词序列集合中选取多个单词序列样本。

获取每个单词序列样本对应的文档类别标签,即每个单词序列样本对应的文档类别标签是已知的,且通过文档类别标签进行标注。其中,文档类别标签包括良性文档标签和恶意文档标签。

进一步的,将每个单词序列样本和文档类别标签的组合作为一个训练样本,即将每个带有文档类别标签的单词序列样本作为一个训练样本,由此即可获得多个训练样本。在获得多个训练样本之后,再将多个训练样本依次输入至分类模型,即将每个训练样本中的单词序列样本和文档类别标签同时输入至分类模型,根据分类模型的每一次输出结果对分类模型中的模型参数进行调整,最终完成分类模型的训练过程。

在本申请实施例中,将每个单词序列样本和文档类别标签的组合作为一个训练样本,获得多个训练样本,利用多个训练样本对分类模型进行训练,使得分类模型学习不同文档类别对应的单词序列的特征,有利于利用训练好的分类模型对待检测文档的文档类型进行检测。

可选地,在所述将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果之后,还包括:

在获取到所述文档分析报告的情况下,基于所述待检测文档的文档分析报告更新所述历史文档分析报告集合,生成动态历史文档分析报告集合;

统计所述动态历史文档分析报告集合中各个单词的单词频率;

选择单词频率最高的M个单词,更新所述目标单词列表,得到新的目标单词列表,M为正整数。

具体的,在得到了该待检测文档的分类结果后,将获取到的待检测文档的文档分析报告添加至历史文档分析报告集合中,生成动态历史文档分析报告集合。

将获取到的待检测文档的文档分析报告中各个单词的单词频率更新至单词频率表中,例如:单词频率表中统计了每个单词出现的次数,修改对应单词的出现次数即是更新单词频率表。从新的单词频率表中选择单词频率最高的M个单词,更新目标单词频率表,M可以是5000。

新的单词频率表中单词频率最高的M个单词可能跟旧的单词频率表中单词频率最高的M个单词相同,也可能不同。即新的目标单词频率表可能跟旧的目标单词频率表相同,也可能不同。

更具体的,每次获取到不同待检测文档的文档分析报告,均添加至历史文档分析报告集合中,即动态历史文档分析报告集合在每获取一次文档分析报告时都会改变。

而且,每次获取到不同待检测文档的文档分析报告,均会进行一次频率统计并更新目标单词列表,更新后的目标单词列表可能与更新前的目标单词列表相同,也可能不同。

在本申请实施例中,每获取一次待检测文件就根据单词出现频率进行目标单词列表的更新,能保持非人工特征词典一直在更新,且更新过程简单,目标单词列表一直保持有效。

可选地,在所述选择单词频率最高的M个单词,更新所述目标单词列表,得到新的目标单词列表之后,还包括:

在所述新的目标单词列表中存在Z个与所述目标单词列表不同的单词的情况下,从所述动态历史文档分析报告集合中获取多个文档分析报告样本,并获取每个文档分析报告样本对应的文档类别标签,所述文档类别标签包括良性文档标签和恶意文档标签,Z为正整数;

依次将每个文档分析报告样本中的各个单词与所述新的目标单词列表中的单词进行匹配,获取匹配成功的每个文档分析报告样本对应的单词序列;

将每个文档分析报告样本对应的单词序列和文档类别标签的组合作为一个训练样本,获得多个训练样本,利用多个训练样本对所述分类模型进行训练。

具体的,在新的目标单词列表中存在多个与原始目标单词列表不同的单词的情况下,如果还使用以前的分类模型,可能会导致准确率严重下降,Z可以为100。可以理解的是,这里所说的新的目标单词列表可以是原始目标单词列表更新了很多次后得到的目标单词列表。

重新选择多个文档分析报告样本,并分别与新的目标单词列表进行匹配,得到每个文档分析报告样本对应的单词序列。每个文档分析报告样本对应的文档类别标签即为对应单词序列的文档类别标签。

将每个文档分析报告样本对应的单词序列和文档类别标签作为一个训练样本,通过多个训练样本,对分类模型重新进行训练。

在本申请实施例中,在所述新的目标单词列表中存在Z个与所述目标单词列表不同的单词的情况下,对分类模型重新进行训练,有效提高分类模型应对未知样本的能力,进而提高了对恶意文档检测的准确率。

图2是本发明提供的文档检测方法的详细流程框图,如图2所示,包括:

开始输入原始文档,进行原始文档格式识别,在沙箱环境中对原始文档进行动态分析和分析报告预处理,动态分析得到第一分析报告,分析报告预处理删除或替换对文档分类无意义的内容,得到文档分析报告。一方面,将文档分析报告中的单词和目标单词列表匹配,生成目标单词序列,并输入到分类模型中得到输出结果。另一方面,在更新模块中,基于文档分析报告更新单词频率表,进而更新目标单词列表,在新的目标单词列表中存在Z个与原始目标单词列表不同的单词的情况下,根据新的单词列表重新训练分类模型,替换原有分类模型,用于进行以后的文档分类。

本申请的文档检测方法可以实现Office复合文档,Open XML文档和PDF文档的统一检测,规避了对特征字典的依赖,可以很好的提升检测准确率,达到了99.05%。在面对未知样本时,传统的基于特征字典的方法准确率下降了12.48%,本方法准确率下降了0.09%,本方法有更良好鲁棒性和泛化能力,更利于解决实际安全问题。

下面对本发明提供的文档检测装置进行描述,下文描述的文档检测装置与上文描述的文档检测方法可相互对应参照。

图3是本发明提供的文档检测装置的结构示意图,如图3所示,包括:第一分析模块310、匹配模块320和分类模块330;其中,第一分析模块310用于对待检测文档进行动态分析,得到文档分析报告;匹配模块320用于依次将所述文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列,其中,所述目标单词列表是基于历史文档分析报告集合中的各个单词确定的;分类模块330用于将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果。

可选地,所述装置还包括:

第二分析模块,用于获取原始文档,并对所述原始文档中的目标字节进行分析,其中所述目标字节为所述原始文档的文件头前N个字节,N为正整数;在所述目标字节为复合类别的情况下,将所述原始文档作为待检测文档;或,在所述目标字节为非复合类别的情况下,判断非复合类别的原始文档是否属于Open XML文档或PDF文档;在所述非复合类别的原始文档属于Open XML文档或PDF文档的情况下,将所述原始文档作为待检测文档。

可选地,所述第一分析模块,具体用于:

在沙箱环境的虚拟机中动态执行所述待检测文档,得到第一分析报告;删除所述第一分析报告中的目标信息,得到第二分析报告,其中,所述目标信息包括info信息、signatures信息、target信息、screenshots信息和所有空字典中的至少一项;将所述第二分析报告中除数字、字母和特定字符外的字符替换为目标字符,并将所述第二分析报告中的IP地址列表替换为所述IP地址列表中IP地址的数量,得到文档分析报告。

可选地,所述装置还包括:

第一统计模块,用于统计所述历史文档分析报告集合中各个单词的单词频率;

生成模块,用于选择单词频率最高的M个单词,生成所述目标单词列表,M为正整数。

可选地,所述装置还包括:

第一获取模块,用于获取多个单词序列样本和每个单词序列样本对应的文档类别标签,所述文档类别标签包括良性文档标签和恶意文档标签;

第一训练模块,用于将每个单词序列样本和文档类别标签的组合作为一个训练样本,获得多个训练样本,利用多个训练样本对所述分类模型进行训练。

可选地,所述装置还包括:

第一更新模块,用于在获取到所述文档分析报告的情况下,基于所述待检测文档的文档分析报告更新所述历史文档分析报告集合,生成动态历史文档分析报告集合;

第二统计模块,用于统计所述动态历史文档分析报告集合中各个单词的单词频率;

第二更新模块,用于选择单词频率最高的M个单词,更新所述目标单词列表,得到新的目标单词列表,M为正整数。

可选地,所述装置还包括:

第二获取模块,用于在所述新的目标单词列表中存在Z个与所述目标单词列表不同的单词的情况下,从所述动态历史文档分析报告集合中获取多个文档分析报告样本,并获取每个文档分析报告样本对应的文档类别标签,所述文档类别标签包括良性文档标签和恶意文档标签,Z为正整数;

所述匹配模块,还用于依次将每个文档分析报告样本中的各个单词与所述新的目标单词列表中的单词进行匹配,获取匹配成功的每个文档分析报告样本对应的单词序列;

第二训练模块,用于将每个文档分析报告样本对应的单词序列和文档类别标签的组合作为一个训练样本,获得多个训练样本,利用多个训练样本对所述分类模型进行训练。

本申请实施例提供的文档检测装置,通过从历史文档分析报告中确定目标单词列表,将文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列,并结合分类模型,实现对待检测文档的分类,能有效提高检测出恶意文档的准确率。

图4是本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行文档检测方法,该方法包括:对待检测文档进行动态分析,得到文档分析报告;依次将所述文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列,其中,所述目标单词列表是基于历史文档分析报告集合中的各个单词确定的;将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果。

此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的文档检测方法,该方法包括:对待检测文档进行动态分析,得到文档分析报告;依次将所述文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列,其中,所述目标单词列表是基于历史文档分析报告集合中的各个单词确定的;将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的文档检测方法,该方法包括:对待检测文档进行动态分析,得到文档分析报告;依次将所述文档分析报告中的各个单词与目标单词列表中的单词进行匹配,获取匹配成功的目标单词序列,其中,所述目标单词列表是基于历史文档分析报告集合中的各个单词确定的;将所述匹配成功的目标单词序列输入分类模型,得到所述待检测文档的分类结果。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 电子设备端口类型检测方法、装置、检测电路及电子设备
  • 目录文档的操作方法、装置、电子设备、可读存储介质
  • 对文档中的内容进行编辑的方法、装置、介质和电子设备
  • 一种医学文档的处理方法、装置、介质及电子设备
  • 一种在线文档检索方法、装置、存储介质及电子设备
  • 文档修改检测方法、文档原稿提供装置、文档复制件检测装置、以及文档修改检测系统
  • 文档加密方法、文档解密方法、装置、电子设备及介质
技术分类

06120116084201