CN113742475A - 一种office文档检测方法、装置、设备及介质 - Google Patents
一种office文档检测方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113742475A CN113742475A CN202111060539.2A CN202111060539A CN113742475A CN 113742475 A CN113742475 A CN 113742475A CN 202111060539 A CN202111060539 A CN 202111060539A CN 113742475 A CN113742475 A CN 113742475A
- Authority
- CN
- China
- Prior art keywords
- list
- function
- office document
- matrix
- call
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims description 296
- 239000011159 matrix material Substances 0.000 claims description 167
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 17
- 239000000284 extract Substances 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 101150068479 chrb gene Proteins 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种office文档检测方法、装置、设备及介质,所述方法包括:提取office文档的宏;通过解析所述office文档的宏,确定所述office文档的模板特征参数;将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。基于同一个office文档模板,用户即使根据需要删减或增加相应内容,office文档的宏是不变的,因此,根据office文档的宏确定office文档的模板特征参数,然后基于模板特征参数检测office文档是否为恶意文档,解决了现有技术检测office文档的局限性较大的问题。
Description
技术领域
本发明涉及恶意文件检测技术领域,尤其涉及一种office文档检测方法、装置、设备及介质。
背景技术
某些公司或办事处会有内部的office文档模板,office文档模板中有的为恶意模板,基于恶意模板生成的office文档为恶意office文档,office文档检测也就是检测office文档是否为恶意的。现有技术中,利用消息摘要算法MD5计算office文档模板的签名信息,然后基于签名信息检测office文档模板是否为恶意模板。然后将恶意模板的签名信息加入黑名单,将正常模板的签名信息加入白名单,在检测office文档时,利用MD5算法计算office文档的签名信息,再与黑白名单中的签名信息匹配,来检测office文档是否为恶意文档。但是基于同一个office文档模板,用户可能根据需要会删减或增加相应内容,这样有可能产生成百上千个不同的office文档,利用消息摘要算法MD5计算出的这些百上千个不同的office文档的签名信息各不相同,因此,通过与黑白名单中的签名信息匹配并不能有效的检测office文档是否为恶意文档,office文档检测的局限性较大。
发明内容
本发明实施例提供了一种office文档检测方法、装置、设备及介质,用以解决现有技术中office文档检测的局限性较大的问题。
本发明实施例提供了一种office文档检测方法,所述方法包括:
提取office文档的宏;
通过解析所述office文档的宏,确定所述office文档的模板特征参数;
将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。
进一步地,所述通过解析所述office文档的宏,确定所述office文档的模板特征参数包括:
通过解析所述office文档的宏,确定所述office文档的调用函数列表和关键字列表;根据所述调用函数列表和关键字列表确定函数调用矩阵;所述模板特征参数包括调用函数列表、关键字列表和函数调用矩阵;
所述将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档包括:
将确定出的所述office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配,检测所述office文档是否为恶意文档。
进一步地,所述根据所述调用函数列表和关键字列表确定函数调用矩阵包括:
根据所述调用函数列表,确定函数调用关系子矩阵;
根据所述调用函数列表、关键字列表和预设的关键字库,确定函数命中关键字子矩阵;
所述函数调用矩阵包括所述函数调用关系子矩阵和所述函数命中关键字子矩阵。
进一步地,所述将确定出的所述office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配包括:
判断预先保存的黑白名单库中是否存在与所述office文档的调用函数列表、关键字列表相同的列表,与所述office文档的函数调用矩阵匹配的矩阵,如果是,确定匹配成功,否则,确定未匹配成功。
进一步地,判断预先保存的黑白名单库中是否存在与所述office文档的函数调用矩阵匹配的矩阵包括:
选取预先保存的黑白名单库中与所述函数调用矩阵规模相同的候选矩阵;
针对每个候选矩阵,确定该候选矩阵与所述函数调用矩阵每个对应位置的元素的差值;判断确定出的每个差值是否均小于预设的阈值;如果是,确定该候选矩阵与所述函数调用矩阵匹配,如果否,确定该候选矩阵与所述函数调用矩阵不匹配。
另一方面,本发明实施例提供了一种office文档检测装置,所述装置包括:
提取模块,用于提取office文档的宏;
确定模块,用于通过解析所述office文档的宏,确定所述office文档的模板特征参数;
检测模块,用于将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。
进一步地,所述确定模块,具体用于通过解析所述office文档的宏,确定所述office文档的调用函数列表和关键字列表;根据所述调用函数列表和关键字列表确定函数调用矩阵;所述模板特征参数包括调用函数列表、关键字列表和函数调用矩阵;
所述检测模块,具体用于将确定出的所述office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配,检测所述office文档是否为恶意文档。
进一步地,所述确定模块,具体用于根据所述调用函数列表,确定函数调用关系子矩阵;根据所述调用函数列表、关键字列表和预设的关键字库,确定函数命中关键字子矩阵;所述函数调用矩阵包括所述函数调用关系子矩阵和所述函数命中关键字子矩阵。
进一步地,所述检测模块,具体用于判断预先保存的黑白名单库中是否存在与所述office文档的调用函数列表、关键字列表相同的列表,与所述office文档的函数调用矩阵匹配的矩阵,如果是,确定匹配成功,否则,确定未匹配成功。
进一步地,所述检测模块,具体用于选取预先保存的黑白名单库中与所述函数调用矩阵规模相同的候选矩阵;针对每个候选矩阵,确定该候选矩阵与所述函数调用矩阵每个对应位置的元素的差值;判断确定出的每个差值是否均小于预设的阈值;如果是,确定该候选矩阵与所述函数调用矩阵匹配,如果否,确定该候选矩阵与所述函数调用矩阵不匹配。
再一方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一项所述的方法步骤。
再一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法步骤。
本发明实施例提供了一种office文档检测方法、装置、设备及介质,所述方法包括:提取office文档的宏;通过解析所述office文档的宏,确定所述office文档的模板特征参数;将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。
上述的技术方案具有如下优点或有益效果:
本发明实施例提供的office文档检测方法,提取office文档的宏,然后解析office文档的宏,确定office文档的模板特征参数。预先保存了白名单库和黑名单库,将确定出的office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测office文档是否为恶意文档。基于同一个office文档模板,用户即使根据需要删减或增加相应内容,office文档的宏是不变的,因此,根据office文档的宏确定office文档的模板特征参数,然后基于模板特征参数检测office文档是否为恶意文档,解决了现有技术中用户根据需要删减或增加相应内容后,无法有效的检测office文档是否为恶意文档的问题,即解决了现有技术检测office文档的局限性较大的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的office文档检测过程示意图;
图2为本发明实施例提供的函数调用关系子矩阵示意图;
图3为本发明实施例提供的函数命中关键字子矩阵示意图;
图4为本发明实施例提供的函数调用矩阵示意图;
图5为本发明实施例提供的office文档检测装置结构示意图;
图6为本发明实施例提供的电子设备结构示意图。
具体实施方式
下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1:
图1为本发明实施例提供的office文档检测过程示意图,该过程包括以下步骤:
S101:提取office文档的宏。
S102:通过解析所述office文档的宏,确定所述office文档的模板特征参数。
S103:将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。
本发明实施例提供的office文档检测方法应用于电子设备,该电子设备可以是能够接收office文档,并对office文档进行恶意检测的设备。
电子设备接收到待检测的office文档后,首先提取office文档的宏,并对office文档的宏进行解析,进而确定office文档的模板特征参数。其中,可以通过vba语法解析office文档的宏,确定office文档的模板特征参数。
电子设备预先保存有黑白名单库,其中,黑名单库中的是预先根据恶意office文档确定出的模板特征参数,白名单库中的是预先根据正常office文档确定出的模板特征参数。具体的,电子设备预先针对已知的每个恶意office文档,提取该恶意office文档的宏,通过解析该恶意office文档的宏,确定该恶意office文档的模板特征参数,并存入黑名单库。电子设备预先针对已知的每个正常office文档,提取该正常office文档的宏,通过解析该正常office文档的宏,确定该正常office文档的模板特征参数,并存入白名单库。
电子设备确定待检测的office文档的模板特征参数之后,将确定出的office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测office文档是否为恶意文档。如果确定出的office文档的模板特征参数与预先保存的黑名单库中的模板特征参数匹配成功,则确定待检测的office文档为恶意office文档。如果确定出的office文档的模板特征参数与预先保存的白名单库中的模板特征参数匹配成功,则确定待检测的office文档为正常office文档。
本发明实施例提供的office文档检测方法,提取office文档的宏,然后解析office文档的宏,确定office文档的模板特征参数。预先保存了白名单库和黑名单库,将确定出的office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测office文档是否为恶意文档。基于同一个office文档模板,用户即使根据需要删减或增加相应内容,office文档的宏是不变的,因此,根据office文档的宏确定office文档的模板特征参数,然后基于模板特征参数检测office文档是否为恶意文档,解决了现有技术中用户根据需要删减或增加相应内容后,无法有效的检测office文档是否为恶意文档的问题,即解决了现有技术检测office文档的局限性较大的问题。
实施例2:
为了确定office文档的模板特征参数,在上述实施例的基础上,在本发明实施例中,所述通过解析所述office文档的宏,确定所述office文档的模板特征参数包括:
通过解析所述office文档的宏,确定所述office文档的调用函数列表和关键字列表;根据所述调用函数列表和关键字列表确定函数调用矩阵;所述模板特征参数包括调用函数列表、关键字列表和函数调用矩阵;
所述将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档包括:
将确定出的所述office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配,检测所述office文档是否为恶意文档。
本发明实施例中,通过解析office文档的宏,确定office文档的调用函数列表和关键字列表。office文档的调用函数列表包括通过解析office文档的宏得到的各个函数以及各个函数之间的调用关系,各个函数之间的调用关系可以是某一函数调用另一函数的次数。关键字列表包括各个函数中包含的关键字。
根据调用函数列表和关键字列表确定函数调用矩阵,也就是将各个函数之间的调用次数以及各个函数中包含的关键字的次数作为函数调用矩阵中的元素,得到函数调用矩阵。模板特征参数包括调用函数列表、关键字列表和函数调用矩阵。预先保存的黑白名单库中的模板特征参数同样包括调用函数列表、关键字列表和函数调用矩阵。
将确定出的office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测office文档是否为恶意文档。具体为,将确定出的office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配,检测office文档是否为恶意文档。
将确定出的office文档的调用函数列表与黑名单库中的调用函数列表进行匹配,判断黑名单库中是否存在与office文档的调用函数列表相同的列表;将确定出的office文档的关键字列表与黑名单库中的关键字列表进行匹配,判断黑名单库中是否存在与office文档的关键字列表相同的列表;将确定出的office文档的函数调用矩阵与黑名单库中的函数调用矩阵进行匹配,判断黑名单库中是否存在与office文档的函数调用矩阵相同的矩阵。如果黑名单库中存在与office文档的调用函数列表相同的列表;存在与office文档的关键字列表相同的列表;存在与office文档的函数调用矩阵相同的矩阵,则确定待检测的office文档为恶意文档。
类似的,将确定出的office文档的调用函数列表与白名单库中的调用函数列表进行匹配,判断白名单库中是否存在与office文档的调用函数列表相同的列表;将确定出的office文档的关键字列表与白名单库中的关键字列表进行匹配,判断白名单库中是否存在与office文档的关键字列表相同的列表;将确定出的office文档的函数调用矩阵与白名单库中的函数调用矩阵进行匹配,判断白名单库中是否存在与office文档的函数调用矩阵相同的矩阵。如果白名单库中存在与office文档的调用函数列表相同的列表;存在与office文档的关键字列表相同的列表;存在与office文档的函数调用矩阵相同的矩阵,则确定待检测的office文档为正常文档。
实施例3:
为了使根据调用函数列表和关键字列表确定函数调用矩阵更准确,在上述各实施例的基础上,在本发明实施例中,所述根据所述调用函数列表和关键字列表确定函数调用矩阵包括:
根据所述调用函数列表,确定函数调用关系子矩阵;
根据所述调用函数列表、关键字列表和预设的关键字库,确定函数命中关键字子矩阵;
所述函数调用矩阵包括所述函数调用关系子矩阵和所述函数命中关键字子矩阵。
本发明实施例中,根据调用函数列表和关键字列表确定的函数调用矩阵包括两部分,分别是函数调用关系子矩阵和函数命中关键字子矩阵。其中,根据调用函数列表,确定各个函数之间的调用次数,将各个函数之间的调用次数作为函数调用关系子矩阵中的元素,得到函数调用关系子矩阵。电子设备保存有预设的关键字库,根据调用函数列表、关键字列表和预设的关键字库可以确定出各个函数中命中关键字库中的关键字的次数,将各个函数中命中关键字库中的关键字的次数作为函数命中关键字子矩阵中的元素,得到函数命中关键字子矩阵。
例如,根据调用函数列表确定一个宏内有六个函数,分别为函数1、函数2、函数3、函数4、函数5和函数6。六个函数共命中五个关键字,分别为关键字1、关键字2、关键字3、关键字4和关键字5。如图2所示,函数调用关系子矩阵共包括A11、A12、……、A66这36个元素。其中,A11表示函数1调用函数1的次数,A12表示函数1调用函数2的次数,A13表示函数1调用函数3的次数,……,A21表示函数2调用函数1的次数,A22表示函数2调用函数2的次数,A23表示函数2调用函数3的次数,……,A61表示函数6调用函数1的次数,A62表示函数6调用函数2的次数,A63表示函数6调用函数3的次数……。如图3所示,函数命中关键字子矩阵共包括B11、B12、……、B65这30个元素。其中,B11表示函数1中命中关键字1的次数,B12表示函数1命中关键字2的次数,B13表示函数1命中关键字3的次数,……,B21表示函数2中命中关键字1的次数,B22表示函数2命中关键字2的次数,B23表示函数2命中关键字3的次数,……,B61表示函数6中命中关键字1的次数,B62表示函数6命中关键字2的次数,B63表示函数6命中关键字3的次数……。图4为函数调用矩阵示意图,其包括函数调用关系子矩阵和函数命中关键字子矩阵。
实施例4:
在上述各实施例的基础上,在本发明实施例中,所述将确定出的所述office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配包括:
判断预先保存的黑白名单库中是否存在与所述office文档的调用函数列表、关键字列表相同的列表,与所述office文档的函数调用矩阵匹配的矩阵,如果是,确定匹配成功,否则,确定未匹配成功。
本发明实施例中,将确定出的office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配,具体的,可以是判断黑名单库中是否存在与office文档的调用函数列表相同的列表;判断黑名单库中是否存在与office文档的关键字列表相同的列表;判断黑名单库中是否存在与office文档的函数调用矩阵相同的矩阵。判断白名单库中是否存在与office文档的调用函数列表相同的列表;判断白名单库中是否存在与office文档的关键字列表相同的列表;判断白名单库中是否存在与office文档的函数调用矩阵相同的矩阵。
较佳的,为了避免office文档误检测,提高检测准确性,本发明实施例中,判断预先保存的黑白名单库中是否存在与所述office文档的函数调用矩阵匹配的矩阵包括:
选取预先保存的黑白名单库中与所述函数调用矩阵规模相同的候选矩阵;
针对每个候选矩阵,确定该候选矩阵与所述函数调用矩阵每个对应位置的元素的差值;判断确定出的每个差值是否均小于预设的阈值;如果是,确定该候选矩阵与所述函数调用矩阵匹配,如果否,确定该候选矩阵与所述函数调用矩阵不匹配。
本发明实施例中,首先选取预先保存的黑白名单库中与函数调用矩阵规模相同的候选矩阵,其中,规模相同指的是矩阵行的元素数量及列的元素数量均相同。并且,选取的候选矩阵的函数调用关系子矩阵与函数调用矩阵中的函数调用关系子矩阵的规模相同,选取的候选矩阵的函数命中关键字子矩阵与函数调用矩阵中的函数命中关键字子矩阵的规模相同。
针对每个候选矩阵,确定该候选矩阵与所述函数调用矩阵每个对应位置的元素的差值,电子设备保存有预设的阈值,该预设的阈值可以是1、2等。若确定出的每个差值均小于预设的阈值,则确定该候选矩阵与函数调用矩阵匹配,否则确定该候选矩阵与函数调用矩阵不匹配。
由于在本发明实施例中,确定候选矩阵与函数调用矩阵每个对应位置的元素的差值,若确定出的每个差值均小于预设的阈值,则确定候选矩阵与函数调用矩阵匹配,从而使得将确定出的office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配更准确,进而使得office文档检测更准确。
下面通过具体的示例对office文档检测过程进行详细说明。
步骤1:
准备已知的白/黑的含有宏的office样本。
步骤2:
提取office样本中的宏,语法分析导出调用函数列表和关键字列表(office内置函数也包含):
例如如下结构,其中key为vba函数名,Value结构中的key为被调用函数名,Value结构中的value为被调用函数出现的次数,可以体现函数调用关系。
{"s_sg":{},"NLists":{},"PrintX":{},"mo":{"Cells":1,"Run":1},"Lkoid":{},"Cooper_n":{},"jilodf_h":{},"Adm":{"Int":1,"Rnd":1},"s_prints1":{"Right":1,"Run":1,".value":3,"Int":2,"Cells":5,"Replace":1,"Chr":1},"Z_app1_a_Layout":{"Application.OnTime":1,"Now":1}}。
步骤3:
建立宏的调用函数列表,将宏内的函数导出为一个数组,例如"fun_list":["Adm","Cooper_n","Lkoid","NLists","PrintX","Z_app1_a_Layout","jilodf_h","mo","s_prints1","s_sg"]。
步骤4:
构造二维矩阵存储有向图,Y维度为宏内函数的数量,X维度为宏内函数的数量+命中关键词的数量。以图4为例,可以发现例如一个宏内有6个函数,共命中5个关键词,则Y维度宏内函数的数量为6,X维度宏内函数的数量+命中关键词的数量为6+5=11。
例如预设的关键字库(混淆相关的关键词)lst_obfuscation_keywords=['Asc','Mid','Left','Right','Tan','StrReverse','Xor','ChrB','ChrW','Chr','CStr','StrConv','Replace','Int','Hex','Sqr','CByte','Log','Rnd']。
此时office宏模型建立完毕,得到黑白名单库中的模板特征参数,其中,黑白名单库中的模板特征参数包含调用函数列表、关键字列表和函数调用矩阵。
步骤5:
若获取一个待检测office文档,根据步骤2至步骤4的方法确定待检测office文档的调用函数列表、关键字列表和函数调用矩阵,然后分别将待检测office文档的调用函数列表、关键字列表和函数调用矩阵与黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配,若与白名单库匹配成功,则确定待检测office文档为正常文档,此时不告警;若与黑名单库匹配成功,则确定待检测office文档为恶意文档,此时触发告警。
需要说明的是,若待检测office文档与黑白名单库均未匹配成功,可以采用现有的检测方案或者人为进行检测。如果确定待检测office文档为正常文档,可以将待检测office文档的调用函数列表、关键字列表和函数调用矩阵添加至白名单库,如果确定待检测office文档为恶意文档,可以将待检测office文档的调用函数列表、关键字列表和函数调用矩阵添加至黑名单库,并且触发报警。这样可以丰富黑白名单库,后续在进行office文档检测时更加便利准确。
另外,本发明实施例提供的方案可以对现有的office文档检测结果进行误报修正。如果现有的office文档检测结果为恶意文档,则确定office文档的模板特征参数,与白名单库中的模板特征参数进行匹配,若匹配成功,则修正误报。如果现有的office文档检测结果为正常文档,则确定office文档的模板特征参数,与黑名单库中的模板特征参数进行匹配,若匹配成功,则确定office文档为恶意文档,并产生告警。
实施例5:
图5为本发明实施例提供的office文档检测装置结构示意图,该装置包括:
提取模块51,用于提取office文档的宏;
确定模块52,用于通过解析所述office文档的宏,确定所述office文档的模板特征参数;
检测模块53,用于将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。
所述确定模块52,具体用于通过解析所述office文档的宏,确定所述office文档的调用函数列表和关键字列表;根据所述调用函数列表和关键字列表确定函数调用矩阵;所述模板特征参数包括调用函数列表、关键字列表和函数调用矩阵;
所述检测模块53,具体用于将确定出的所述office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配,检测所述office文档是否为恶意文档。
所述确定模块52,具体用于根据所述调用函数列表,确定函数调用关系子矩阵;根据所述调用函数列表、关键字列表和预设的关键字库,确定函数命中关键字子矩阵;所述函数调用矩阵包括所述函数调用关系子矩阵和所述函数命中关键字子矩阵。
所述检测模块53,具体用于判断预先保存的黑白名单库中是否存在与所述office文档的调用函数列表、关键字列表相同的列表,与所述office文档的函数调用矩阵匹配的矩阵,如果是,确定匹配成功,否则,确定未匹配成功。
所述检测模块53,具体用于选取预先保存的黑白名单库中与所述函数调用矩阵规模相同的候选矩阵;针对每个候选矩阵,确定该候选矩阵与所述函数调用矩阵每个对应位置的元素的差值;判断确定出的每个差值是否均小于预设的阈值;如果是,确定该候选矩阵与所述函数调用矩阵匹配,如果否,确定该候选矩阵与所述函数调用矩阵不匹配。
实施例6:
在上述各实施例的基础上,本发明实施例中还提供了一种电子设备,如图6所示,包括:处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信;
所述存储器303中存储有计算机程序,当所述程序被所述处理器301执行时,使得所述处理器301执行如下步骤:
提取office文档的宏;
通过解析所述office文档的宏,确定所述office文档的模板特征参数;
将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。
基于同一发明构思,本发明实施例中还提供了一种电子设备,由于上述电子设备解决问题的原理与office文档检测方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
本发明实施例提供的电子设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、网络侧设备等。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口302用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在本发明实施例中处理器执行存储器上所存放的程序时,实现提取office文档的宏;通过解析所述office文档的宏,确定所述office文档的模板特征参数;将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。本发明实施例提供的office文档检测方法,提取office文档的宏,然后解析office文档的宏,确定office文档的模板特征参数。预先保存了白名单库和黑名单库,将确定出的office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测office文档是否为恶意文档。基于同一个office文档模板,用户即使根据需要删减或增加相应内容,office文档的宏是不变的,因此,根据office文档的宏确定office文档的模板特征参数,然后基于模板特征参数检测office文档是否为恶意文档,解决了现有技术中用户根据需要删减或增加相应内容后,无法有效的检测office文档是否为恶意文档的问题,即解决了现有技术检测office文档的局限性较大的问题。
实施例7:
在上述各实施例的基础上,本发明实施例还提供了一种计算机存储可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:
提取office文档的宏;
通过解析所述office文档的宏,确定所述office文档的模板特征参数;
将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。
基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,由于处理器在执行上述计算机可读存储介质上存储的计算机程序时解决问题的原理与office文档检测方法相似,因此处理器在执行上述计算机可读存储介质存储的计算机程序的实施可以参见方法的实施,重复之处不再赘述。
上述计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD)等。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种office文档检测方法,其特征在于,所述方法包括:
提取office文档的宏;
通过解析所述office文档的宏,确定所述office文档的模板特征参数;
将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。
2.如权利要求1所述的方法,其特征在于,所述通过解析所述office文档的宏,确定所述office文档的模板特征参数包括:
通过解析所述office文档的宏,确定所述office文档的调用函数列表和关键字列表;根据所述调用函数列表和关键字列表确定函数调用矩阵;所述模板特征参数包括调用函数列表、关键字列表和函数调用矩阵;
所述将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档包括:
将确定出的所述office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配,检测所述office文档是否为恶意文档。
3.如权利要求2所述的方法,其特征在于,所述根据所述调用函数列表和关键字列表确定函数调用矩阵包括:
根据所述调用函数列表,确定函数调用关系子矩阵;
根据所述调用函数列表、关键字列表和预设的关键字库,确定函数命中关键字子矩阵;
所述函数调用矩阵包括所述函数调用关系子矩阵和所述函数命中关键字子矩阵。
4.如权利要求2所述的方法,其特征在于,所述将确定出的所述office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配包括:
判断预先保存的黑白名单库中是否存在与所述office文档的调用函数列表、关键字列表相同的列表,与所述office文档的函数调用矩阵匹配的矩阵,如果是,确定匹配成功,否则,确定未匹配成功。
5.如权利要求4所述的方法,其特征在于,判断预先保存的黑白名单库中是否存在与所述office文档的函数调用矩阵匹配的矩阵包括:
选取预先保存的黑白名单库中与所述函数调用矩阵规模相同的候选矩阵;
针对每个候选矩阵,确定该候选矩阵与所述函数调用矩阵每个对应位置的元素的差值;判断确定出的每个差值是否均小于预设的阈值;如果是,确定该候选矩阵与所述函数调用矩阵匹配,如果否,确定该候选矩阵与所述函数调用矩阵不匹配。
6.一种office文档检测装置,其特征在于,所述装置包括:
提取模块,用于提取office文档的宏;
确定模块,用于通过解析所述office文档的宏,确定所述office文档的模板特征参数;
检测模块,用于将确定出的所述office文档的模板特征参数与预先保存的黑白名单库中的模板特征参数进行匹配,检测所述office文档是否为恶意文档。
7.如权利要求6所述的装置,其特征在于,所述确定模块,具体用于通过解析所述office文档的宏,确定所述office文档的调用函数列表和关键字列表;根据所述调用函数列表和关键字列表确定函数调用矩阵;所述模板特征参数包括调用函数列表、关键字列表和函数调用矩阵;
所述检测模块,具体用于将确定出的所述office文档的调用函数列表、关键字列表和函数调用矩阵与预先保存的黑白名单库中的调用函数列表、关键字列表和函数调用矩阵进行匹配,检测所述office文档是否为恶意文档。
8.如权利要求7所述的装置,其特征在于,所述确定模块,具体用于根据所述调用函数列表,确定函数调用关系子矩阵;根据所述调用函数列表、关键字列表和预设的关键字库,确定函数命中关键字子矩阵;所述函数调用矩阵包括所述函数调用关系子矩阵和所述函数命中关键字子矩阵。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一项所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111060539.2A CN113742475A (zh) | 2021-09-10 | 2021-09-10 | 一种office文档检测方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111060539.2A CN113742475A (zh) | 2021-09-10 | 2021-09-10 | 一种office文档检测方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113742475A true CN113742475A (zh) | 2021-12-03 |
Family
ID=78737904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111060539.2A Pending CN113742475A (zh) | 2021-09-10 | 2021-09-10 | 一种office文档检测方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742475A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129603A1 (en) * | 2004-12-14 | 2006-06-15 | Jae Woo Park | Apparatus and method for detecting malicious code embedded in office document |
US20090019546A1 (en) * | 2007-07-10 | 2009-01-15 | Samsung Electronics Co., Ltd. | Method and Apparatus for Modeling Computer Program Behaviour for Behavioural Detection of Malicious Program |
CN103294955A (zh) * | 2013-06-28 | 2013-09-11 | 北京奇虎科技有限公司 | 宏病毒查杀方法及系统 |
US20140090054A1 (en) * | 2011-07-26 | 2014-03-27 | Securitymatters B.V. | System and Method for Detecting Anomalies in Electronic Documents |
CN106021196A (zh) * | 2016-05-05 | 2016-10-12 | 广东小天才科技有限公司 | 一种公式转换方法及系统 |
CN107025407A (zh) * | 2017-03-22 | 2017-08-08 | 国家计算机网络与信息安全管理中心 | 一种office文档文件的恶意代码检测方法及系统 |
CN110866256A (zh) * | 2019-11-12 | 2020-03-06 | 深信服科技股份有限公司 | 一种宏代码检测方法、装置、设备及存储介质 |
CN113127867A (zh) * | 2019-12-31 | 2021-07-16 | 苏州三六零智能安全科技有限公司 | 文档识别方法、装置、设备及存储介质 |
-
2021
- 2021-09-10 CN CN202111060539.2A patent/CN113742475A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129603A1 (en) * | 2004-12-14 | 2006-06-15 | Jae Woo Park | Apparatus and method for detecting malicious code embedded in office document |
US20090019546A1 (en) * | 2007-07-10 | 2009-01-15 | Samsung Electronics Co., Ltd. | Method and Apparatus for Modeling Computer Program Behaviour for Behavioural Detection of Malicious Program |
US20140090054A1 (en) * | 2011-07-26 | 2014-03-27 | Securitymatters B.V. | System and Method for Detecting Anomalies in Electronic Documents |
CN103294955A (zh) * | 2013-06-28 | 2013-09-11 | 北京奇虎科技有限公司 | 宏病毒查杀方法及系统 |
CN106021196A (zh) * | 2016-05-05 | 2016-10-12 | 广东小天才科技有限公司 | 一种公式转换方法及系统 |
CN107025407A (zh) * | 2017-03-22 | 2017-08-08 | 国家计算机网络与信息安全管理中心 | 一种office文档文件的恶意代码检测方法及系统 |
CN110866256A (zh) * | 2019-11-12 | 2020-03-06 | 深信服科技股份有限公司 | 一种宏代码检测方法、装置、设备及存储介质 |
CN113127867A (zh) * | 2019-12-31 | 2021-07-16 | 苏州三六零智能安全科技有限公司 | 文档识别方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109905385B (zh) | 一种webshell检测方法、装置及系统 | |
CN110933104B (zh) | 恶意命令检测方法、装置、设备及介质 | |
CN108399482B (zh) | 合同的评估方法、装置和电子设备 | |
CN110941827B (zh) | 应用程序异常行为检测方法及装置 | |
CN111062036A (zh) | 恶意软件识别模型构建、识别方法及介质和设备 | |
CN109299276B (zh) | 一种将文本转化为词嵌入、文本分类方法和装置 | |
CN112214402B (zh) | 一种代码验证算法的选择方法、装置及存储介质 | |
CN108470126B (zh) | 数据处理方法、装置及存储介质 | |
CN115098858A (zh) | 一种恶意软件检测方法及装置 | |
CN111062034A (zh) | 一种Webshell文件检测方法、装置、电子设备及存储介质 | |
CN111639493A (zh) | 一种地址信息标准化方法、装置、设备及可读存储介质 | |
CN115730313A (zh) | 一种恶意文档检测方法、装置、存储介质及设备 | |
CN113468524B (zh) | 基于rasp的机器学习模型安全检测方法 | |
CN113378161A (zh) | 一种安全检测方法、装置、设备及存储介质 | |
CN110335628B (zh) | 智能设备的语音测试方法、装置及电子设备 | |
CN113742475A (zh) | 一种office文档检测方法、装置、设备及介质 | |
CN108304310B (zh) | 一种日志分析方法及计算设备 | |
CN108804917B (zh) | 一种文件检测方法、装置、电子设备及存储介质 | |
CN110598115A (zh) | 一种基于人工智能多引擎的敏感网页识别方法及系统 | |
CN110472415B (zh) | 一种恶意程序的确定方法及装置 | |
CN114117062A (zh) | 文本向量表示方法、装置及电子设备 | |
CN112632548A (zh) | 一种恶意安卓程序检测方法、装置,电子设备及存储介质 | |
CN110852083A (zh) | 一种短信模板的生成方法及装置 | |
CN112055009A (zh) | 漏洞数据的比较方法、装置、电子设备以及存储介质 | |
CN115718696B (zh) | 源码密码学误用检测方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |