一种恶意文档检测方法、装置、电子设备及存储介质与流程

    专利2022-07-08  101


    本发明涉及信息处理技术领域,尤其涉及一种恶意文档检测方法、装置、电子设备及存储介质。



    背景技术:

    电子办公文档是日常办公通信中使用频率最高的信息载体。近几年来,有越来越多的网络黑客选择使用常见的办公文档作为载体使用恶意文档进行恶意攻击。恶意文档因为其灵活且攻击手段多的特点常被用于高级可持续威胁攻击和勒索软件等案例。恶意文档攻击给个人,企业带来了巨大的风险。因此,检测恶意文档显得十分重要。

    现有技术中的恶意文档检测主要是基于有监督学习,其训练的模型效果依赖于样本的质量。而在实际的安全场景中,恶意样本依赖于安全人员的手工检测,并且存在着大量的良性恶意未知的样本。传统的有监督学习无法使用于这种实际情况。公开样本与现实环境中的数据存在差距,这导致训练效果较好的模型在实际的安全场景中表现一遍,并不能够很好地解决安全问题。

    因此,如何更好的实现恶意文档检测已经成为业界亟待解决的问题。



    技术实现要素:

    本发明实施例提供一种恶意文档检测方法、装置、电子设备及存储介质,用以解决上述背景技术中提出的技术问题,或至少部分解决上述背景技术中提出的技术问题。

    第一方面,本发明实施例提供一种恶意文档检测方法,包括:

    对待检测文档进行分析,得到文档特征信息;

    将所述文档特征信息输入预设恶意文档检测模型,得到检测结果信息;

    其中,所述预设恶意文档检测模型通过带恶意标签的样本文档特征信息和无标签的样本文档特征信息训练得到的。

    更具体的,所述对待检测文档进行分析,得到文档特征信息的步骤,具体包括:

    对所述待检测文档进行文档结构特征分析,得到文档特征结构信息;

    对所述待检测文档进行统计特征分析,得到文档统计特征信息;

    将所述文档特征结构信息和所述文档统计特征信息连接后,得到文档特征信息。

    更具体的,对所述待检测文档进行文档结构特征分析,得到文档特征结构信息的步骤,具体包括:

    分析文档头部的文档类型字段,确定文档类型信息,根据文档类型信息确定文档结构提取方案;

    根据所述文档结构提取方案对所述待检测文档进行关键字提取,得到文档结构特征信息。

    更具体的,对所述待检测文档进行统计特征分析,得到文档统计特征信息的步骤,具体包括;

    将所述待检测文档按照预设长度进行分块,得到分块待检测文档;

    根据每个分块待检测文档中目标字节值出现的频率,计算每个分块待检测文档的熵值;

    将每个分块待检测文档的熵值拼接得到待检测文档的熵序列,使用小波变换对所述待检测文档的熵序列进行分解,得到第一统计特征;

    根据所述待检测文档的熵序列的均值信息、方差信息和零值信息得到第二统计特征;

    根据所述第一统计特征和所述第二统计特征得到文档统计特征信息。

    更具体的,在所述对待检测文档进行分析,得到文档特征信息的步骤之前,所述方法还包括:

    对待检测样本文档进行分析,得到带恶意标签的样本文档特征信息和无标签的样本文档特征信息。

    更具体的,在所述对待检测样本文档进行分析,得到带恶意标签的样本文档特征信息和无标签的样本文档特征信息的步骤之后,所述方法还包括:

    s101,从无标签的样本文档特征信息中随机获取与带恶意标签的样本文档特征信息数量相同的多个无标签的样本文档特征信息,并结合所述带恶意标签的样本文档特征信息,得到样本训练集;

    s102根据所述样本训练集构建一个基分类器,将所述基分类器用于对无标签的样本文档特征信息进行分类;

    重复上述步骤s101-s102,直至重复预设次数,得到预设恶意文档检测模型。

    第二方面,本发明实施例提供一种恶意文档检测装置,包括:

    分析模块,用于对待检测文档进行分析,得到文档特征信息;

    检测模块,用于将所述文档特征信息输入预设恶意文档检测模型,得到检测结果信息;

    其中,所述预设恶意文档检测模型通过带恶意标签的样本文档特征信息和无标签的样本文档特征信息训练得到的。

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

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

    本发明实施例提供的一种恶意文档检测方法、装置、电子设备及存储介质,通过待检测文档的特点,分别提取了文档特征结构信息和文档统计特征信息得到文档特征信息,然后选取了一种半监督学习方法,采用多次抽取与带恶意标签的样本文档特征信息数量相同的多个无标签的样本文档特征信息,构建决策树集成多棵决策树来进行恶意文档检测,通过集成的思想提高检测准确率而节省了大量的数据标注工作,从而更符合真实应用场景,最终更好的实现恶意文档检测。

    附图说明

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

    图1为本发明一实施例中所描述的恶意文档检测方法流程示意图;

    图2为本发明一实施例所描述恶意文档检测装置示意图;

    图3为本发明一实施例所描述的电子设备结构示意图。

    具体实施方式

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

    图1为本发明一实施例中所描述的恶意文档检测方法流程示意图,如图1所示,包括:

    步骤s1,对待检测文档进行分析,得到文档特征信息;

    具体的,本发明实施例中所描述的待检测文档可以是指日常使用的办公文档,例如doc,docx等office类型和pdf格式的文档。

    首先,根据待检测文档的头部特殊数据字段”magicnumber”判断文档的类型,magicnumber即魔数,指的是一些不需解释或无法解释的特殊数据值。在pdf中,通过头部字段”%pdf-xxx”的内容判断其文档格式为pdf(xxx指的是pdf的版本)。doc的标志文件头为“0x620x6a0x620x6a”这种特定的数值或者字符串即为magicnumber,可以实现文档类型的判断。在判断文档类型后,根据不同文档的类型,调用效应的文档结构特征分析方法,解析结构特征,提取各个文档关键字,根据各个文档关键字出现的数量生成文档结构特征矩阵,得到文档特征结构信息。

    然后将待检测文档按照预设固定长度进行分块,然后根据每个分块中目标字节值(00h-ffh)的出现的频率,计算每个分块的熵值。将各个分块的熵值从头到尾拼接得到文档的熵序列,用小波变换对于熵序列进行分解得到高频分量和低频分量,据文档的大小可以将低频分量进行不同级别的变换得到不同级别的高频分量,将不同级别的高频分量可以看作一部分的统计特征,同时将熵序列的均值、方差,零值所占的比例等作为另一部分的统计特征,汇总得到文档统计特征信息。

    步骤s2,将所述文档特征信息输入预设恶意文档检测模型,得到检测结果信息;

    其中,所述预设恶意文档检测模型通过带恶意标签的样本文档特征信息和无标签的样本文档特征信息训练得到的。

    将所述文档特征信息输入预设恶意文档检测模型,得到待检测文档是良性文件或恶意文件的分类结果。

    具体的,本发明实施例中的带恶意标签和无标签,在预设恶意检测模型中分别被视为正类(label=1)和负类(label=0)。

    本发明实施例中预设恶意文档检测模型训练采用“恶意-无标记”套袋方法生成多个基决策树分类器,通过计算基分类器中袋外数据的平均分值来预测测试数据,具体为:

    从无标签的样本文档特征信息中随机抽取k个样本,创建一个包含所有带恶意标签的样本文档特征信息和所选k个样本的样本训练集,带恶意标签的样本文档特征信息的样本数量和随机抽取k个样本的数量相同。

    根据这个样本训练集构建一个基分类器,其中带恶意标签的样本文档特征信息和无无标签的样本文档特征信息分别被视为正类(label=1)和负类(label=0)。

    将基分类器应用于除选定的k个样本外所有未标记样本中(称为oob(outofthebag)数据),并记录它们的得分;

    将上述步骤重复t次,得到t各分类器,对t个分类器中每个预测样本所属袋外数据的结果进行平均得到预测样本的恶意文件概率。

    本发明实施例通过待检测文档的特点,分别提取了文档特征结构信息和文档统计特征信息得到文档特征信息,然后选取了一种半监督学习方法,采用多次抽取与带恶意标签的样本文档特征信息数量相同的多个无标签的样本文档特征信息,构建决策树集成多棵决策树来进行恶意文档检测,通过集成的思想提高检测准确率而节省了大量的数据标注工作,从而更符合真实应用场景,最终更好的实现恶意文档检测。

    在上述实施例的基础上,所述对待检测文档进行分析,得到文档特征信息的步骤,具体包括:

    对所述待检测文档进行文档结构特征分析,得到文档特征结构信息;

    对所述待检测文档进行统计特征分析,得到文档统计特征信息;

    将所述文档特征结构信息和所述文档统计特征信息连接后,得到文档特征信息。

    将所述文档特征结构信息和所述文档统计特征信息连接具体是指将这两个信息聚集到一起。

    在上述实施例的基础上,对所述待检测文档进行文档结构特征分析,得到文档特征结构信息的步骤,具体包括:

    分析文档头部的文档类型字段,确定文档类型信息,根据文档类型信息确定文档结构提取方案;

    根据所述文档结构提取方案对所述待检测文档进行关键字提取,得到文档结构特征信息。

    本发明实施例中所描述的文档头部的文档类型字段具体是指文档的magicnumber字段。

    在确定文档类型信息后,根据不同的文档类型信息确定不同的文档结构提取方案,例如针对于doc为微软早期的office文档是二进制格式,使用oletools进行文档解析,docx等07年之后的office文档符合ooxml规范,可以使用zip压缩格式进行解压缩。pdf根据pdf的头部尾部交叉引用表等结构特征进行解析。

    针对于doc文件使用oletools进行文档解析,使用正则表达式提取其中word\pefs等关键字,得到指定关键字或路径的数量,从而根据关键字或路径的数量构建特征矩阵,得到文档结构特征信息。

    针对于pdf文件,使用正则表达式等搜索字符匹配技术,进行关键字和关键路径的匹配,得到关键字的数量,从而根据关键字的数量得到文档结构特征矩阵;该pdf文档的关键字为:js、javascript、openaction、eval、fromcharcode、unescape等;doc文档的关键字为:dimsubfunction、signature和sectdirstart等。

    本发明实施例通过对文档结构进行提取,有效获取了文档内部结构信息,有利于后续对于文档的整体分析。

    在上述实施例的基础上,对所述待检测文档进行统计特征分析,得到文档统计特征信息的步骤,具体包括;

    将所述待检测文档按照预设长度进行分块,得到分块待检测文档;

    根据每个分块待检测文档中目标字节值出现的频率,计算每个分块待检测文档的熵值;

    将每个分块待检测文档的熵值拼接得到待检测文档的熵序列,使用小波变换对所述待检测文档的熵序列进行分解,得到第一统计特征;

    根据所述待检测文档的熵序列的均值信息、方差信息和零值信息得到第二统计特征;

    根据所述第一统计特征和所述第二统计特征得到文档统计特征信息。

    具体的,本发明实施例中所描述的预设长度可以是认为设定的固定长度,且待测文档进行分块的预设长度是一致的。

    本发明实施例中的待检测文档中的目标字节值可以是指(00h-ffh)。

    本发明实施例中计算每个分块待检测文档的熵值具体为:

    其中,xi为每个分块待检测文档中目标字节值出现的频率,h(x)中的x为分块的编号,h(x)为每个分块待检测文档的熵值。

    将待检测文档各个分块的熵值从头到尾拼接得到待检测文档的熵序列,该熵序列可以看作能量波,使用小波变换对待检测文档的熵序列进行分解得到高频分量和低频分量,根据小波变换的公式,小波变换的级别与文件的大小的关系为level=[log2n]n为文件的大小,据文档的大小可以将低频分量进行不同级别的变换得到不同级别的高频分量,将不同级别的高频分量可以看作一部分的统计特征,即第一统计特征,同时将熵序列的均值、方差,零值所占的比例等作为另一部分的统计特征,即第二统计特征,汇总得到文档统计特征信息。

    其中,零值所占的比例。假如一个文档被切分255段计算熵值得到长度为255的序列。其中第3、10、15、140、145共5处熵值为0(说明这5处每部分里面的字节值都是一样的)那么该文档零值所占的比例为:5/255*100%=1.96%。

    本发明实施例通过将待检测文档进行分块后,根据每个数据块中目标字节值出现的频率计算各个数据块的熵值,最终得到待检测文档的熵序列,从而通过对熵序列进行分析,得到文档统计特征。

    在上述实施例的基础上,在所述对待检测文档进行分析,得到文档特征信息的步骤之前,所述方法还包括:

    对待检测样本文档进行分析,得到带恶意标签的样本文档特征信息和无标签的样本文档特征信息。

    在所述对待检测样本文档进行分析,得到带恶意标签的样本文档特征信息和无标签的样本文档特征信息的步骤之后,所述方法还包括:

    s101,从无标签的样本文档特征信息中随机获取与带恶意标签的样本文档特征信息数量相同的多个无标签的样本文档特征信息,并结合所述带恶意标签的样本文档特征信息,得到样本训练集;

    s102根据所述样本训练集构建一个基分类器,将所述基分类器用于对无标签的样本文档特征信息进行分类;

    重复上述步骤s101-s102,直至重复预设次数,得到预设恶意文档检测模型。

    具体的,本发明实施例中预设恶意文档检测模型训练采用“恶意-无标记”套袋方法生成多个基决策树分类器,通过计算基分类器中袋外数据的平均分值来预测测试数据,具体为:

    从无标签的样本文档特征信息中随机抽取k个样本,创建一个包含所有带恶意标签的样本文档特征信息和所选k个样本的样本训练集,带恶意标签的样本文档特征信息和随机抽取k个样本的数量相同。

    根据这个样本训练集构建一个基分类器,其中带恶意标签的样本文档特征信息和无无标签的样本文档特征信息分别被视为正类(label=1)和负类(label=0)。

    将基分类器应用于除选定的k个样本外所有未标记样本中(称为oob(outofthebag)数据),并记录它们的得分;

    将上述步骤重复t次,得到t各分类器,对t个分类器中每个预测样本所属袋外数据的结果进行平均得到预测样本的恶意文件概率。

    本发明实施例通过待检测文档的特点,分别提取了文档特征结构信息和文档统计特征信息得到文档特征信息,然后选取了一种半监督学习方法,采用多次抽取与带恶意标签的样本文档特征信息数量相同的多个无标签的样本文档特征信息,构建决策树集成多棵决策树来进行恶意文档检测,通过集成的思想提高检测准确率而节省了大量的数据标注工作,从而更符合真实应用场景,最终更好的实现恶意文档检测。

    图2为本发明一实施例所描述恶意文档检测装置示意图,如图2所示,包括:分析模块210和检测模块220;其中,分析模块210用于对待检测文档进行分析,得到文档特征信息;其中,检测模块220用于将所述文档特征信息输入预设恶意文档检测模型,得到检测结果信息;其中,所述预设恶意文档检测模型通过带恶意标签的样本文档特征信息和无标签的样本文档特征信息训练得到的。

    本发明实施例提供的装置是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。

    本发明实施例通过待检测文档的特点,分别提取了文档特征结构信息和文档统计特征信息得到文档特征信息,然后选取了一种半监督学习方法,采用多次抽取与带恶意标签的样本文档特征信息数量相同的多个无标签的样本文档特征信息,构建决策树集成多棵决策树来进行恶意文档检测,通过集成的思想提高检测准确率而节省了大量的数据标注工作,从而更符合真实应用场景,最终更好的实现恶意文档检测。

    图3为本发明一实施例所描述的电子设备结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(communicationsinterface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行如下方法:对待检测文档进行分析,得到文档特征信息;将所述文档特征信息输入预设恶意文档检测模型,得到检测结果信息;其中,所述预设恶意文档检测模型通过带恶意标签的样本文档特征信息和无标签的样本文档特征信息训练得到的。

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

    本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:对待检测文档进行分析,得到文档特征信息;将所述文档特征信息输入预设恶意文档检测模型,得到检测结果信息;其中,所述预设恶意文档检测模型通过带恶意标签的样本文档特征信息和无标签的样本文档特征信息训练得到的。

    本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储服务器指令,该计算机指令使计算机执行上述各实施例提供的方法,例如包括:对待检测文档进行分析,得到文档特征信息;将所述文档特征信息输入预设恶意文档检测模型,得到检测结果信息;其中,所述预设恶意文档检测模型通过带恶意标签的样本文档特征信息和无标签的样本文档特征信息训练得到的。

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

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

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


    技术特征:

    1.一种恶意文档检测方法,其特征在于,包括:

    对待检测文档进行分析,得到文档特征信息;

    将所述文档特征信息输入预设恶意文档检测模型,得到检测结果信息;

    其中,所述预设恶意文档检测模型通过带恶意标签的样本文档特征信息和无标签的样本文档特征信息训练得到的。

    2.根据权利要求1所述恶意文档检测方法,其特征在于,所述对待检测文档进行分析,得到文档特征信息的步骤,具体包括:

    对所述待检测文档进行文档结构特征分析,得到文档特征结构信息;

    对所述待检测文档进行统计特征分析,得到文档统计特征信息;

    将所述文档特征结构信息和所述文档统计特征信息连接后,得到文档特征信息。

    3.根据权利要求2所述恶意文档检测方法,其特征在于,对所述待检测文档进行文档结构特征分析,得到文档特征结构信息的步骤,具体包括:

    分析文档头部的文档类型字段,确定文档类型信息,根据文档类型信息确定文档结构提取方案;

    根据所述文档结构提取方案对所述待检测文档进行关键字提取,得到文档结构特征信息。

    4.根据权利要求2所述恶意文档检测方法,其特征在于,对所述待检测文档进行统计特征分析,得到文档统计特征信息的步骤,具体包括;

    将所述待检测文档按照预设长度进行分块,得到分块待检测文档;

    根据每个分块待检测文档中目标字节值出现的频率,计算每个分块待检测文档的熵值;

    将每个分块待检测文档的熵值拼接得到待检测文档的熵序列,使用小波变换对所述待检测文档的熵序列进行分解,得到第一统计特征;

    根据所述待检测文档的熵序列的均值信息、方差信息和零值信息得到第二统计特征;

    根据所述第一统计特征和所述第二统计特征得到文档统计特征信息。

    5.根据权利要求1所述恶意文档检测方法,其特征在于,在所述对待检测文档进行分析,得到文档特征信息的步骤之前,所述方法还包括:

    对待检测样本文档进行分析,得到带恶意标签的样本文档特征信息和无标签的样本文档特征信息。

    6.根据权利要求5所述恶意文档检测方法,其特征在于,在所述对待检测样本文档进行分析,得到带恶意标签的样本文档特征信息和无标签的样本文档特征信息的步骤之后,所述方法还包括:

    s101,从无标签的样本文档特征信息中随机获取与带恶意标签的样本文档特征信息数量相同的多个无标签的样本文档特征信息,并结合所述带恶意标签的样本文档特征信息,得到样本训练集;

    s102根据所述样本训练集构建一个基分类器,将所述基分类器用于对无标签的样本文档特征信息进行分类;

    重复步骤s101-s102,直至重复至预设次数,得到预设恶意文档检测模型。

    7.一种恶意文档检测装置,其特征在于,包括:

    分析模块,用于对待检测文档进行分析,得到文档特征信息;

    检测模块,用于将所述文档特征信息输入预设恶意文档检测模型,得到检测结果信息;

    其中,所述预设恶意文档检测模型通过带恶意标签的样本文档特征信息和无标签的样本文档特征信息训练得到的。

    8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述恶意文档检测方法的步骤。

    9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述恶意文档检测方法的步骤。

    技术总结
    本发明实施例提供一种恶意文档检测方法、装置、电子设备及存储介质,该方法包括:对待检测文档进行分析,得到文档特征信息;将所述文档特征信息输入预设恶意文档检测模型,得到检测结果信息;其中,所述预设恶意文档检测模型通过带恶意标签的样本文档特征信息和无标签的样本文档特征信息训练得到的。通过待检测文档的特点,分别提取了文档特征结构信息和文档统计特征信息得到文档特征信息,然后选取了一种半监督学习方法,构建多棵决策树来进行恶意文档检测,多棵决策树集成的思想提高检测准确率而节省了大量的数据标注工作,从而更符合真实应用场景,最终更好的实现恶意文档检测。

    技术研发人员:喻民;刘超;宋楠;姜建国;高世浩;李梅梅;黄伟庆
    受保护的技术使用者:中国科学院信息工程研究所
    技术研发日:2020.10.28
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-21029.html

    最新回复(0)