OneNote文档的检测方法、装置、介质及设备转让专利

申请号 : CN202310580571.6

文献号 : CN116305172B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金志强刘佳男肖新光

申请人 : 北京安天网络安全技术有限公司

摘要 :

本发明涉及恶意代码检测领域,特别是涉及OneNote文档的检测方法、装置、介质及设备。包括:获取目标提取文件;将目标全局唯一标识符与目标提取文件进行区间确定处理,确定嵌入文件对应的提取区间;由于每一个嵌入文件均会对应一个独有的对其进行标识的全局唯一标识符,同时在此全局唯一标识符的第20个字节后是嵌入文件的头部位置;并且在此全局唯一标识符后的8个字节表示嵌入文件的大小;由此,根据全局唯一标识符对OneNote文档进行扫描,可以准确快速的定位每一个嵌入文件对应的提取区间中的代码内容。以便于更加准确的对嵌入文件进行提取及异常检测,进而提高对此类恶意OneNote文档的检出率。

权利要求 :

1.一种OneNote文档的检测方法,其特征在于,所述方法包括如下步骤:获取待处理OneNote文档的目标提取文件;所述目标提取文件为十六进制文件;

将目标全局唯一标识符与所述目标提取文件进行区间确定处理,确定嵌入文件对应的提取区间;所述提取区间中包括嵌入文件对应的代码内容;

所述区间确定处理包括:

若所述目标全局唯一标识符与第一字节区间中的字节内容相同,则确定所述目标提取文件中在第一字节区间后的第二十一个字节为所述提取区间的起始字节;第一字节区间为所述目标提取文件中与目标全局唯一标识符具有相同字节长度的任意字节区间;

将所述第一字节区间对应的第二字节区间中字节内容所表示的数值大小,确定为所述提取区间的区间长度;

根据所述提取区间的起始字节及区间长度,确定嵌入文件对应的提取区间;

所述OneNote文档包括多个嵌入文件,所述嵌入文件为图像文件或可执行文件;所述可执行文件为可执行程序、可执行网页文件或可执行脚本文件;

在确定嵌入文件对应的提取区间之后,所述方法还包括:

根据每一嵌入文件对应的提取区间中的头部区间中的编码,确定OneNote文档中包括的每一嵌入文件的文件类型;所述文件类型包括图像类型和可执行文件类型;

当Pexe/Pimg>Y1时,对所述OneNote文档进行置信度处理,生成所述OneNote文档的置信度D;其中,Pexe为OneNote文档中可执行文件类型的嵌入文件的总数量;Pimg为OneNote文档中图像类型的嵌入文件的总数量;Y1为第一置信阈值;

当D

所述置信度处理包括:

根据OneNote文档对应的jcidImageNode结构体,获取OneNote文档中每一个图像类型P的嵌入文件的图像属性值;其中,Ai为第i个图像类型的嵌入文件的图像属性值;Ai={(Xi ,P P P P PYi),Wi ,Hi};(Xi ,Yi)为第i个图像类型的嵌入文件对应的图片的左上角点在OneNote文P P档中的位置坐标;Wi和Hi分别为第i个图像类型的嵌入文件对应的图片宽度及图片高度;z为OneNote文档中包括的图像类型的嵌入文件的总数;i=1、2、…、z;

根据OneNote文档对应的jcidEmbeddedFileNode结构体,获取OneNote文档中每一个可执行文件类型的嵌入文件的图标属性值;其中,Bn为第n个可执行文件类型的嵌入文件的图b b b b b b标属性值;Bn={(Xn ,Yn),Wn ,Hn };(Xn ,Yn)为第n个可执行文件类型的嵌入文件对应的启b b动图标的左上角点在OneNote文档中的位置坐标;Wn 和Hn分别为第n个可执行文件类型的嵌入文件对应的启动图标的图标宽度及图标高度;Q为OneNote文档中包括的可执行文件类型的嵌入文件的总数;n=1、2、…、Q;

根据每一个图像类型的嵌入文件的图像属性值,生成每一个图像类型的嵌入文件的覆P P P P P盖区域值;其中,Ci为第i个图像类型的嵌入文件的覆盖区域值,Ci={[Xi,Xi+Wi],[Yi‑Hi ,PYi]};

根据每一个可执行文件类型的嵌入文件的图标属性值,生成每一个可执行文件类型的嵌入文件的覆盖区域值;其中,Dn为第n个可执行文件类型的嵌入文件的覆盖区域值,Dn=b b b b b b{[Xn,Xn+Wn],[Yn‑Hn,Yn]};

根据每一图像类型的嵌入文件的覆盖区域值及每一可执行文件类型的嵌入文件的覆盖区域值;确定每一图像类型的嵌入文件对应的可执行文件覆盖数E1、E2、…、Ei、…、Ez;其中,Ei为第i个图像类型的嵌入文件对应的可执行文件覆盖数;

根据E1、E2、…、Ei、…、Ez,生成OneNote文档的置信度D;D满足如下条件:;

其中,K为基础系数。

2.根据权利要求1所述的方法,其特征在于,在确定嵌入文件对应的提取区间之后,所述方法还包括:获取所述提取区间对应的代码内容;

对所述提取区间对应的代码内容,进行异常检测;

所述异常检测用于确定所述提取区间对应的代码内容是否为非授权用户用于发起安全攻击的编码。

3.根据权利要求2所述的方法,其特征在于,所述异常检测包括第一异常检测及第二异常检测,所述第二异常检测的准确度大于第一异常检测的准确度;

对所述提取区间对应的代码内容,进行异常检测,包括:

对所述提取区间对应的代码内容进行第一异常检测;

若未检测出异常,则对所述提取区间对应的代码内容进行第二异常检测;

所述第一异常检测包括利用恶意代码特征库对提取区间对应的代码内容进行比对检测。

4.根据权利要求1所述的方法,其特征在于,在获取待处理OneNote文档的目标提取文件之前,所述方法还包括:获取多个初始检测文档的目标提取文件;多个所述初始检测文档中包括至少一个OneNote文档;

将目标文件标识与每一所述初始检测文档的目标提取文件的头部字节进行匹配;

若匹配成功,则确定所述初始检测文档为待处理OneNote文档;

所述目标文件标识的长度为十六字节。

5.根据权利要求1所述的方法,其特征在于,所述图像属性值还包括图像类型的嵌入文件中的文本信息;

在确定每一图像类型的嵌入文件对应的可执行文件覆盖数之后,所述置信度处理还包括:将每一图像类型的嵌入文件中的文本信息与第一映射词表进行匹配,生成每一图像类型的嵌入文件的第一置信附加值F1、F2、…、Fi、…、Fz;其中,Fi为第i个图像类型的嵌入文件对应的第一置信附加值;所述第一映射词表为预设文本信息与第一权重值之间的映射关系表;

将根据E1、E2、…、Ei、…、Ez,生成OneNote文档的置信度D,替换为:根据每一图像类型的嵌入文件对应的可执行文件覆盖数及第一置信附加值,生成OneNote文档的置信度D;D满足如下条件:。

6.根据权利要求5所述的方法,其特征在于,图标属性值还包括可执行文件类型的嵌入文件的后缀名;

在生成每一图像类型的嵌入文件的第一置信附加值之后,所述置信度处理还包括:将每一可执行文件类型的嵌入文件的后缀名与第二映射词表进行匹配,生成每一可执行文件类型的嵌入文件的第二置信附加值G1、G2、…、Gn、…、Gq;其中,Gn为第n个可执行文件类型的嵌入文件的对应的第二置信附加值;所述第二映射词表为预设后缀名与第二权重值之间的映射关系表;

将根据每一图像类型的嵌入文件对应的可执行文件覆盖数及第一置信附加值,生成OneNote文档的置信度D,替换为:根据每一图像类型的嵌入文件对应的可执行文件覆盖数和第一置信附加值,以及每一可执行文件类型的嵌入文件的第二置信附加值,生成OneNote文档的置信度D;D满足如下条件:。

7.一种OneNote文档的检测装置,其特征在于,包括:获取模块:用于获取待处理OneNote文档的目标提取文件;所述目标提取文件为十六进制文件;

处理模块:用于将目标全局唯一标识符与所述目标提取文件进行区间确定处理,确定嵌入文件对应的提取区间;所述提取区间中包括嵌入文件对应的代码内容;

所述处理模块具体用于:

若所述目标全局唯一标识符与第一字节区间中的字节内容相同,则确定所述目标提取文件中在第一字节区间后的第二十一个字节为所述提取区间的起始字节;第一字节区间为所述目标提取文件中与目标全局唯一标识符具有相同字节长度的任意字节区间;

将所述第一字节区间对应的第二字节区间中字节内容所表示的数值大小,确定为所述提取区间的区间长度;

根据所述提取区间的起始字节及区间长度,确定嵌入文件对应的提取区间;

所述OneNote文档包括多个嵌入文件,所述嵌入文件为图像文件或可执行文件;所述可执行文件为可执行程序、可执行网页文件或可执行脚本文件;

在确定嵌入文件对应的提取区间之后,所述处理模块还用于:根据每一嵌入文件对应的提取区间中的头部区间中的编码,确定OneNote文档中包括的每一嵌入文件的文件类型;所述文件类型包括图像类型和可执行文件类型;

当Pexe/Pimg>Y1时,对所述OneNote文档进行置信度处理,生成所述OneNote文档的置信度D;其中,Pexe为OneNote文档中可执行文件类型的嵌入文件的总数量;Pimg为OneNote文档中图像类型的嵌入文件的总数量;Y1为第一置信阈值;

当D

所述置信度处理包括:

根据OneNote文档对应的jcidImageNode结构体,获取OneNote文档中每一个图像类型P的嵌入文件的图像属性值;其中,Ai为第i个图像类型的嵌入文件的图像属性值;Ai={(Xi ,P P P P PYi),Wi ,Hi};(Xi ,Yi)为第i个图像类型的嵌入文件对应的图片的左上角点在OneNote文P P档中的位置坐标;Wi和Hi分别为第i个图像类型的嵌入文件对应的图片宽度及图片高度;z为OneNote文档中包括的图像类型的嵌入文件的总数;i=1、2、…、z;

根据OneNote文档对应的jcidEmbeddedFileNode结构体,获取OneNote文档中每一个可执行文件类型的嵌入文件的图标属性值;其中,Bn为第n个可执行文件类型的嵌入文件的图b b b b b b标属性值;Bn={(Xn ,Yn),Wn ,Hn };(Xn ,Yn)为第n个可执行文件类型的嵌入文件对应的启b b动图标的左上角点在OneNote文档中的位置坐标;Wn 和Hn分别为第n个可执行文件类型的嵌入文件对应的启动图标的图标宽度及图标高度;Q为OneNote文档中包括的可执行文件类型的嵌入文件的总数;n=1、2、…、Q;

根据每一个图像类型的嵌入文件的图像属性值,生成每一个图像类型的嵌入文件的覆P P P P P盖区域值;其中,Ci为第i个图像类型的嵌入文件的覆盖区域值,Ci={[Xi,Xi+Wi],[Yi‑Hi ,PYi]};

根据每一个可执行文件类型的嵌入文件的图标属性值,生成每一个可执行文件类型的嵌入文件的覆盖区域值;其中,Dn为第n个可执行文件类型的嵌入文件的覆盖区域值,Dn=b b b b b b{[Xn,Xn+Wn],[Yn‑Hn,Yn]};

根据每一图像类型的嵌入文件的覆盖区域值及每一可执行文件类型的嵌入文件的覆盖区域值;确定每一图像类型的嵌入文件对应的可执行文件覆盖数E1、E2、…、Ei、…、Ez;其中,Ei为第i个图像类型的嵌入文件对应的可执行文件覆盖数;

根据E1、E2、…、Ei、…、Ez,生成OneNote文档的置信度D;D满足如下条件:;

其中,K为基础系数。

8.一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的一种OneNote文档的检测方法。

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

说明书 :

OneNote文档的检测方法、装置、介质及设备

技术领域

[0001] 本发明涉及恶意代码检测领域,特别是涉及OneNote文档的检测方法、装置、介质及设备。

背景技术

[0002] OneNote文档是由微软新推出的一种数字笔记本,可用于直接记录笔记,通过电子墨水技术添加注释、处理文字或者进行绘画,并且其中还可以嵌入多媒体影音以及其他多种类型的文件。由于具有强大的笔记记录功能,OneNote文档正在被广泛的应用于日常办公及生产生活的各个场景中。
[0003] 同时也由于OneNote文档中可以嵌入各种类型的文件,所以使得越来越多的攻击者开始利用这种方式传播恶意文件。如目前已经观察到多个流行的恶意代码家族通过OneNote文档进行传播。
[0004] 但是由于现有安全产品无法自动确定出OneNote文档中每一嵌入文件对应的代码内容,所以无法准确的对每一嵌入文件进行异常检测,进而也导致了对此类恶意OneNote文档的检出率较低的问题。

发明内容

[0005] 针对上述技术问题,本发明采用的技术方案为:
[0006] 根据本发明的一个方面,提供了一种OneNote文档的检测方法,方法包括如下步骤:
[0007] 获取待处理OneNote文档的目标提取文件。目标提取文件为十六进制文件。
[0008] 将目标全局唯一标识符与目标提取文件进行区间确定处理,确定嵌入文件对应的提取区间。提取区间中包括嵌入文件对应的代码内容。
[0009] 区间确定处理包括:
[0010] 若目标全局唯一标识符与第一字节区间中的字节内容相同,则确定目标提取文件中在第一字节区间后的第二十一个字节为提取区间的起始字节。第一字节区间为目标提取文件中与目标全局唯一标识符具有相同字节长度的任意字节区间。
[0011] 将第一字节区间对应的第二字节区间中字节内容所表示的数值大小,确定为提取区间的区间长度。
[0012] 根据提取区间的起始字节及区间长度,确定嵌入文件对应的提取区间。
[0013] 根据本发明的第二个方面,提供了一种OneNote文档的检测装置,包括:
[0014] 获取模块:用于获取待处理OneNote文档的目标提取文件;所述目标提取文件为十六进制文件;
[0015] 处理模块:用于将目标全局唯一标识符与所述目标提取文件进行区间确定处理,确定嵌入文件对应的提取区间;所述提取区间中包括嵌入文件对应的代码内容;
[0016] 所述处理模块具体用于:
[0017] 若所述目标全局唯一标识符与第一字节区间中的字节内容相同,则确定所述目标提取文件中在第一字节区间后的第二十一个字节为所述提取区间的起始字节;第一字节区间为所述目标提取文件中与目标全局唯一标识符具有相同字节长度的任意字节区间;
[0018] 将所述第一字节区间对应的第二字节区间中字节内容所表示的数值大小,确定为所述提取区间的区间长度;
[0019] 根据所述提取区间的起始字节及区间长度,确定嵌入文件对应的提取区间。
[0020] 根据本发明的第三个方面,提供了一种非瞬时性计算机可读存储介质,非瞬时性计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的一种OneNote文档的检测方法。
[0021] 根据本发明的第四个方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的一种OneNote文档的检测方法。
[0022] 本发明至少具有以下有益效果:
[0023] 由于OneNote文档在转换成对应的十六进制文件后,其中的每一个嵌入文件均会对应一个独有的对其进行标识的全局唯一标识符,也即目标全局唯一标识符;同时在此全局唯一标识符后的第20个字节后是嵌入文件的头部位置,也即起始字节;并且在此全局唯一标识符后的8个字节表示嵌入文件的大小,也即区间长度。对应的,嵌入文件头部位置加上嵌入文件的大小则是嵌入文件的尾部位置。
[0024] 由此,利用OneNote文档对应的十六进制文件所具有的上述特征,可以直接确定出每一个嵌入文件,在目标提取文件中的代码所处的位置区域。
[0025] 也即,根据全局唯一标识符对OneNote文档进行扫描,可以准确快速的定位每一个嵌入文件的代码内容。以便于更加准确的对每一嵌入文件进行提取及进行后续的异常检测,进而提高对此类恶意OneNote文档的检出率。

附图说明

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

具体实施方式

[0028] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029] 根据本发明的第一个方面,如图1所示,提供了一种OneNote文档的检测方法,该方法包括如下步骤:
[0030] S100:获取待处理OneNote文档的目标提取文件。目标提取文件为十六进制文件。
[0031] 通过现有的转化工具进行转化获得。十六进制文件为OneNote文档对应的十六进制编码。
[0032] S200:将目标全局唯一标识符与目标提取文件进行区间确定处理,确定嵌入文件对应的提取区间。提取区间中包括嵌入文件对应的代码内容。
[0033] 在OneNote文档中每一个嵌入的文件均会有一个对应的目标全局唯一标识符作为嵌入标识。且每一个目标全局唯一标识符均相同,其在十六进制编码中的具体值,可以为{ E7‑16‑E3‑BD‑65‑26‑11‑45‑A4‑C4‑8D‑4D‑0B‑7A‑9E‑AC}。由此,可以以此目标全局唯一标识符,对待处理OneNote文档的目标提取文件进行匹配扫描。每匹配成功一次,即为确定出一个嵌入文件。
[0034] 区间确定处理包括:
[0035] S201:若目标全局唯一标识符与第一字节区间中的字节内容相同,则确定目标提取文件中在第一字节区间后的第二十一个字节为提取区间的起始字节。第一字节区间为目标提取文件中与目标全局唯一标识符具有相同字节长度的任意字节区间。
[0036] 第一字节区间也即目标提取文件中每一个目标全局唯一标识符所在的编码区间。
[0037] S202:将第一字节区间对应的第二字节区间中字节内容所表示的数值大小,确定为提取区间的区间长度。第二字节区间为第一字节区间后的八个连续字节形成的字节区间。
[0038] S203:根据提取区间的起始字节及区间长度,确定嵌入文件对应的提取区间。
[0039] 以目标提取文件中的部分编码如下所示为例,进行示例说明:
[0040] { ……E7‑16‑E3‑BD‑65‑26‑11‑45‑A4‑C4‑8D‑4D‑0B‑7A‑9E‑AC[0041] 1C‑05‑00‑00‑00‑00‑00‑00‑00‑00‑00‑00‑00‑00‑00‑00
[0042] 00‑00‑00‑00‑0D‑70‑6F……}
[0043] 其中,第一行中的E7‑16‑E3‑BD‑65‑26‑11‑45‑A4‑C4‑8D‑4D‑0B‑7A‑9E‑AC为第一字节区间,0D为提取区间的起始字节;1C‑05‑00‑00‑00‑00‑00‑00为第二字节区间中编码内容,其表示的大小为0x51C。由此,可以确定出对应的嵌入文件的编码区域,也即提取区间。
[0044] 由于OneNote文档在转换成对应的十六进制文件后,其中的每一个嵌入文件均会对应一个独有的对其进行标识的全局唯一标识符,也即目标全局唯一标识符;同时在此全局唯一标识符的第20个字节后是嵌入文件的头部位置,也即起始字节;并且在此全局唯一标识符后的8个字节表示嵌入文件的大小,也即区间长度。对应的,嵌入文件头部位置加上嵌入文件的大小则是嵌入文件的尾部位置。
[0045] 由此,利用OneNote文档对应的十六进制文件所具有的上述特征,可以直接确定出每一个嵌入文件,在目标提取文件中的代码所处的位置区域。本实施例能够对大量OneNote文档中的嵌入文件进行自动化的提取及检测。且通用性强,能够对OneNote文档中各种类型的嵌入文件进行检测。
[0046] 也即,根据全局唯一标识符对OneNote文档进行扫描,可以准确快速的定位每一个嵌入文件的代码内容。以便于更加准确的对每一嵌入文件进行提取及进行后续的异常检测,进而提高对此类恶意OneNote文档的检出率。
[0047] 作为本发明的一种可能的实施例,该方法还包括:
[0048] S300:获取提取区间对应的代码内容。
[0049] S400:对提取区间对应的代码内容,进行异常检测。异常检测用于确定提取区间对应的代码内容是否为非授权用户用于发起安全攻击的编码。
[0050] 优选的,异常检测包括第一异常检测及第二异常检测,第二异常检测的准确度大于第一异常检测的准确度。
[0051] S400:对提取区间对应的代码内容,进行异常检测,包括:
[0052] S401:对提取区间对应的代码内容进行第一异常检测。
[0053] 第一异常检测包括利用恶意代码特征库对提取区间对应的代码内容进行比对检测。
[0054] S402:若未检测出异常,则对提取区间对应的代码内容进行第二异常检测。
[0055] 并将由第二异常检测确定出的恶意嵌入文件,经过人工分析后从中提取出恶意代码特征,将新增的恶意代码特征录入恶意代码特征库中。
[0056] 可以通过现有的异常检测方法,对提取区间对应的代码内容进行异常检测,以确定待处理OneNote文档中是否携带有的恶意文件。同时,为了考虑检测效率与准确度,所以第一异常检测的检测速度大于第二异常检测的检测速度,第二异常检测的准确度大于第一异常检测的准确度。第二异常检测可以为由人工进行的异常检测等现有的具有更高精度的异常检测方法。
[0057] 作为本发明的一种可能的实施例,在S100:获取待处理OneNote文档的目标提取文件之前,该方法还包括:
[0058] S110:获取多个初始检测文档的目标提取文件。多个初始检测文档中包括至少一个OneNote文档。
[0059] S120:将目标文件标识与每一初始检测文档的目标提取文件的头部字节进行匹配。优选的,目标文件标识的长度为十六字节。
[0060] S130:若匹配成功,则确定初始检测文档为待处理OneNote文档。
[0061] 由于OneNote文档的十六进制编码中会具有一个特定的16字节文件头:{E4‑52‑5C‑7B‑8C‑D8‑A7‑4D‑AE‑B1‑53‑78‑D0‑29‑96‑D3}。由此,可以以该特征来从大量的文件中,筛选出OneNote文档。由此,无需对所有内容进行扫描,所以能够更加快速地确定出OneNote文档,以快速进行后续检测。
[0062] 作为本发明的一种可能的实施例,OneNote文档包括多个嵌入文件,嵌入文件为图像文件或可执行文件。图像文件可以为静态图片或动图。可执行文件即为点击开启后,可按预设代码执行对应操作的文件,如可以为可执行的程序、可执行的网页文件及可执行的脚本文件;其中,可执行的网页文件的格式可以为html及htm等。可执行的脚本文件的格式可以为VBS、BAT及CMD等。
[0063] 在S200:确定嵌入文件对应的提取区间之后,该方法还包括:
[0064] S500:根据每一嵌入文件对应的提取区间中的头部区间中的编码,确定OneNote文档中包括的每一嵌入文件的文件类型。文件类型包括图像类型和可执行文件类型。
[0065] 具体的,相同格式的图像文件对应的头部区间的编码是固定的。相同格式的可执行文件对应的头部区间的编码也是相同的。由此,可以通过历史数据收集到多个嵌入文件对应的头部区间中的编码。通过匹配来确定每一嵌入文件的文件类型。
[0066] S600:当Pexe/Pimg>Y1时,对OneNote文档进行置信度处理,生成OneNote文档的置信度D。其中,Pexe为OneNote文档中可执行文件类型的嵌入文件的总数量,Pimg为OneNote文档中图像类型的嵌入文件的总数量,Y1为第一置信阈值。
[0067] 攻击者通常为了增加用户运行恶意文件的机率,会在一些引导用户点击的图片下,放置多个恶意文件的启动图标,启动图标可以为启动快捷方式,图片可以为双击按钮的图标。用户通过按照图片的示意双击图片,进而启动图片下方的启动快捷方式,以使恶意软件开始运行。
[0068] 由此,基于上述特点会使得OneNote文档中的Pexe/Pimg升高,而大于正常的OneNote文档中的Pexe/Pimg。Y1和Y2可以根据具体的使用场景进行确定。
[0069] 同时,由于Pexe/Pimg虽然会体现出一定异常度,但是其准确度较低,容易将正常的OneNote文档误判为异常文档。所以需要进行精度更高的置信度处理,来进一步判定OneNote文档是否异常。
[0070] S700:当D
[0071] 置信度处理包括:
[0072] S601:根据OneNote文档对应的jcidImageNode结构体,获取OneNote文档中每一个图像类型的嵌入文件的图像属性值。其中,Ai为第i个图像类型的嵌入文件的图像属性值。AiP P P P P P={(Xi ,Yi),Wi ,Hi }。其中,(Xi ,Yi)为第i个图像类型的嵌入文件对应的图片的左上角点P P
在OneNote文档中的位置坐标,Wi 和Hi分别为第i个图像类型的嵌入文件对应的图片的宽度及图片的高度。
[0073] S602:根据OneNote文档对应的jcidEmbeddedFileNode结构体,获取OneNote文档中每一个可执行文件类型的嵌入文件的图标属性值。其中,Bn为第n个可执行文件类型的嵌b b b b b b入文件的图标属性值。Bn={(Xn ,Yn),Wn ,Hn}。其中,(Xn ,Yn)为第n个可执行文件类型的嵌b b
入文件对应的启动图标的左上角点在OneNote文档中的位置坐标,Wn和Hn分别为第n个可执行文件类型的嵌入文件对应的启动图标的图标宽度及图标高度。
[0074] OneNote文档中的jcidImageNode结构体中指定了OneNote文档中包括的所有图像节点的属性值,该属性值包括图像的宽度及高度、图像的水平位置及垂直位置(位置坐标)、图像中所包含的文字内容等信息。
[0075] 对应的,jcidEmbeddedFileNode结构体中指定了OneNote文档中包括的所有可执行文件的属性值,属性值包括文件启动图标的宽度及高度、文件的水平位置及垂直位置(位置坐标)、文件的源文件名称(包括后缀名)等。
[0076] 具体的,OneNote文档中页面坐标系,可以以页面的左下角为坐标原点,页面的横向下边缘为X轴,页面的竖向左边缘为Y轴,建立每一个页面的页面坐标系。由此,嵌入的图片及启动图标的覆盖区域值,就可以准确确定了。
[0077] S603:根据每一个图像类型的嵌入文件的图像属性值,生成每一个图像类型的嵌P P入文件的覆盖区域值。其中,Ci为第i个图像类型的嵌入文件的覆盖区域值,Ci={[Xi ,Xi +P P P P
Wi],[Yi‑Hi,Yi]}。
[0078] S604:根据每一个可执行文件类型的嵌入文件的图标属性值,生成每一个可执行文件类型的嵌入文件的覆盖区域值。其中,Dn为第n个可执行文件类型的嵌入文件的覆盖区b b b b b b域值,Di={[Xn,Xn+Wn],[Yn‑Hn,Yn]}。
[0079] S605:根据每一图像类型的嵌入文件的覆盖区域值及每一可执行文件类型的嵌入文件的覆盖区域值,确定每一图像类型的嵌入文件对应的可执行文件覆盖数E1、E2、…、Ei、…、Ez。其中,Ei为第i个图像类型的嵌入文件对应的可执行文件覆盖数,z为OneNote文档中包括的图像类型的嵌入文件的总数,i=1、2、…、z。
[0080] 具体的,当[Xnb,Xnb+Wnb]∈[XiP,XiP+WiP]且[Ynb‑Hnb,Ynb]∈[YiP‑HiP,YiP]时,则第n个可执行文件类型的嵌入文件的启动图标,被覆盖在第i个图像类型的嵌入文件下方。
[0081] 根据上述方法可以确定出每一个图片下方覆盖的启动图标的数量,也即可执行文件覆盖数。
[0082] S606:根据E1、E2、…、Ei、…、Ez,生成OneNote文档的置信度D。D满足如下条件:
[0083] 。
[0084] 其中,K为基础系数,K为非零自然数,通过加入K可以避免计算公式中的分母为0的情况。
[0085] 本实施例中,可以根据每一个嵌入文件对应的属性值,获得图像所覆盖的区域以及可执行文件的启动图标所覆盖的区域。并根据启动图标所覆盖的区域是否完全在图像区域内,从而判断可执行文件是否隐藏在图像下方。从而可以更加准确的判定该OneNote文档是否具有恶意特征。
[0086] 作为本发明的一种可能的实施例,图像属性值还包括图像类型的嵌入文件中的文本信息。
[0087] 在S605:确定每一图像类型的嵌入文件对应的可执行文件覆盖数之后,置信度处理还包括:
[0088] S615:将每一图像类型的嵌入文件中的文本信息与第一映射词表进行匹配,生成每一图像类型的嵌入文件的第一置信附加值F1、F2、…、Fi、…、Fz。其中,Fi为第i个图像类型的嵌入文件对应的第一置信附加值。第一映射词表为预设文本信息与第一权重值之间的映射关系表。
[0089] S625:将根据E1、E2、…、Ei、…、Ez,生成OneNote文档的置信度D,替换为:根据每一图像类型的嵌入文件对应的可执行文件覆盖数及第一置信附加值,生成OneNote文档的置信度D。D满足如下条件:
[0090] 。
[0091] 攻击者通常为了进一步增加用户运行恶意文件的机率,还会在覆盖多个恶意启动图标的图片中,设置一些引导用户点击的文字内容。如“双击”、“Double Click here to view”等具有诱导性的内容。
[0092] 本实施例中还将图片中是否包括诱导用户进行操作的敏感词汇这一特征,也考虑在置信度计算之中,进而可以进一步的提高置信度的计算精度,最终提高OneNote文档是否为异常文档的判定精度。
[0093] 作为本发明的一种可能的实施例,图标属性值还包括可执行文件类型的嵌入文件的后缀名。
[0094] 在S615:生成每一图像类型的嵌入文件的第一置信附加值之后,置信度处理还包括:
[0095] S635:将每一可执行文件类型的嵌入文件的后缀名与第二映射词表进行匹配,生成每一可执行文件类型的嵌入文件的第二置信附加值G1、G2、…、Gn、…、GQ。其中,Gn为第n个可执行文件类型的嵌入文件的对应的第二置信附加值。Q为OneNote文档中包括的可执行文件类型的嵌入文件的总数,n=1、2、…、Q。第二映射词表为预设后缀名与第二权重值之间的映射关系表。
[0096] S645:将根据每一图像类型的嵌入文件对应的可执行文件覆盖数及第一置信附加值,生成OneNote文档的置信度D,替换为:根据每一图像类型的嵌入文件对应的可执行文件覆盖数和第一置信附加值,以及每一可执行文件类型的嵌入文件的第二置信附加值,生成OneNote文档的置信度D。D满足如下条件:
[0097] 。
[0098] 由于,图标属性值还包括可执行文件类型的嵌入文件的后缀名。而且后缀名恰好可以体现可执行文件的具体类型信息。由此,可以将该具体类型信息与已确定的恶意文件的类型信息进行匹配,并根据匹配度来赋予对应的权重值,也即第二置信附加值,以表示可执行文件的恶意程度。
[0099] 本实施例中不仅将图片中是否包括诱导用户进行操作的敏感词汇这一特征,考虑在置信度计算之中,还将可执行文件的后缀名这一特征,也考虑在置信度计算之中。进而可以再次提高置信度的计算精度,最终提高OneNote文档是否为异常文档的判定精度。
[0100] 作为本发明的第二的方面,提供了一种OneNote文档的检测装置,包括:
[0101] 获取模块:用于获取待处理OneNote文档的目标提取文件;所述目标提取文件为十六进制文件;
[0102] 处理模块:用于将目标全局唯一标识符与所述目标提取文件进行区间确定处理,确定嵌入文件对应的提取区间;所述提取区间中包括嵌入文件对应的代码内容;
[0103] 所述处理模块具体用于:
[0104] 若所述目标全局唯一标识符与第一字节区间中的字节内容相同,则确定所述目标提取文件中在第一字节区间后的第二十一个字节为所述提取区间的起始字节;第一字节区间为所述目标提取文件中与目标全局唯一标识符具有相同字节长度的任意字节区间;
[0105] 将所述第一字节区间对应的第二字节区间中字节内容所表示的数值大小,确定为所述提取区间的区间长度;
[0106] 根据所述提取区间的起始字节及区间长度,确定嵌入文件对应的提取区间。
[0107] 作为本发明的第三的方面,还提供了一种非瞬时性计算机可读存储介质,非瞬时性计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任一项实施例中的一种OneNote文档的检测方法。
[0108] 作为本发明的第四的方面,还提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一项实施例中的一种OneNote文档的检测方法。
[0109] 本发明的实施例还提供一种计算机程序产品,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
[0110] 此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0111] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
[0112] 在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
[0113] 所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0114] 根据本发明的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0115] 电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。
[0116] 其中,储存器存储有程序代码,程序代码可以被处理器执行,使得处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0117] 储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(RAM)和/或高速缓存储存器,还可以进一步包括只读储存器(ROM)。
[0118] 储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0119] 总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
[0120] 电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0121] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
[0122] 在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0123] 程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0124] 计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0125] 可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0126] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0127] 此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0128] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0129] 以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。