本发明专利技术公开了一种恶意文档的检测方法及装置,其中,所述方法包括:获取待检测文档中存在的可执行代码;模拟执行所述可执行代码,检测在执行所述可执行代码过程中是否存在对系统应用程序编程接口API函数的调用;若存在对系统API函数的调用,则确定所述待检测文档为恶意文档。本发明专利技术实施例能够快速、有效地实现恶意文档的检测,提高用户计算机系统的安全性。
Method and device for detecting malicious document
The invention discloses a method and a device for detecting a malicious document, wherein, the method comprises: acquiring the executable code in the document to be detected; simulation of the execution of the executable code, detection of the existence of the system application programming interface API function calls the process executes the code in the execution; if there exists on the system API function call, it is determined that the detection for malicious document document. The embodiment of the invention can quickly and effectively realize the detection of malicious documents and improve the security of the user computer system.
【技术实现步骤摘要】
本专利技术涉及信息安全
,尤其涉及一种恶意文档的检测方法及装置。
技术介绍
恶意文档,是根据加载文档的软件存在的漏洞而故意制作的不正常文件。如文档可为DOC,PDF,XLS,PPT等文档,根据加载该文档的软件存在的漏洞而特制的文档,在特定的环境下打开该文档后则会成功执行恶意指令。恶意指令代码Shellcode是攻击者隐藏在文档内的负载,通过传播给目标计算机,进而释放攻击代码,导致目标系统的崩溃,或者会让攻击者能够暂时获得控制目标计算机的最高权限。目前,对shellcode的检测,主要包括基于相似度的特征匹配的静态检测方法,和基于虚拟机执行,通过判断指令地址是否在地址空间来实现shellcode的判定方法。但是,基于相似度的特征匹配的静态检测方法,依赖于大量样本,且对混淆过的shellcode无法检测,存在一定的误报和漏报;而采用虚拟机判断地址空间的检测方法,只能确定是否存在异常,并不能判断是否是恶意,无法有效地实现恶意文档的检测。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的恶意文档的检测方法及装置。本专利技术的一个方面,提供了一种恶意文档的检测方法,包括:获取待检测文档中存在的可执行代码;模拟执行所述可执行代码,检测在执行所述可执行代码过程中是否存在对系统应用程序编程接口API函数的调用;若存在对系统API函数的调用,则确定所述待检测文档为恶意文档。可选地,所述获取待检测文档中存在的可执行代码包括:对所述待检测文档的二进制代码进行逐字节查找,以获取所述待检测文档中存在的可执行代码。可选地,所述获取待检测文档中存在的可执行代码包括:对所述待检测文档的预定层级结构的二进制代码进行逐字节查找,以获取所述待检测文档中存在的可执行代码。可选地,所述获取待检测文档中存在的可执行代码包括:对所述待检测文档的二进制代码进行特定字节查找,以获取所述待检测文档中存在的可执行代码,所述特定字节为恶意指令代码shellcode的特征字节。可选地,所述模拟执行所述可执行代码包括:在目标操作系统中模拟执行所述可执行代码,所述目标操作系统为与所述恶意文档的实际运行操作系统不同的操作系统。可选地,所述检测在执行所述可执行代码过程中是否存在对系统应用程序编程接口API函数的调用包括:采用hook函数针对所述可执行代码执行过程中所调用的系统API函数进行钩挂,若钩挂到系统API函数,则确定所述可执行代码在执行过程中存在对系统API函数的调用。可选地,该方法还包括:记录检测结果,并将检测结果保存到日志文件中。本专利技术的另一个方面,提供了一种恶意文档的检测装置,包括:获取模块,用于获取待检测文档中存在的可执行代码;检测模块,用于模拟执行所述获取模块获取的可执行代码,检测在执行所述可执行代码过程中是否存在对系统应用程序编程接口API函数的调用;判断模块,用于当所述检测模块的检测结果为存在对系统API函数的调用时,确定所述待检测文档为恶意文档。可选地,所述获取模块,具体用于对所述待检测文档的二进制代码进行逐字节查找,以获取所述待检测文档中存在的可执行代码。可选地,所述获取模块,具体用于对所述待检测文档的预定层级结构的二进制代码进行逐字节查找,以获取所述待检测文档中存在的可执行代码。可选地,所述获取模块,具体用于对所述待检测文档的二进制代码进行特定字节查找,以获取所述待检测文档中存在的可执行代码,所述特定字节为恶意指令代码shellcode的特征字节。可选地,所述检测模块,具体用于在目标操作系统中模拟执行所述可执行代码,所述目标操作系统为与所述恶意文档的实际运行操作系统不同的操作系统。可选地,所述检测模块,具体用于采用hook函数针对所述可执行代码执行过程中所调用的系统API函数进行钩挂,若钩挂到系统API函数,则确定所述可执行代码在执行过程中存在对系统API函数的调用。可选地,该装置还包括:记录模块,用于记录检测结果,并将检测结果保存到日志文件中。本专利技术实施例提供的恶意文档的检测方法及装置,通过模拟执行待检测文档中存在的可执行代码,检测在执行可执行代码过程中是否存在对系统应用程序编程接口API函数的调用,来检测待检测文档是否为恶意文档,进而快速、有效地实现恶意文档的检测,提高用户计算机系统的安全性。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的一种恶意文档的检测方法的流程图;图2示出了根据本专利技术另一实施例的一种恶意文档的检测方法的流程图;图3示出了根据本专利技术另一实施例的一种恶意文档的检测方法的流程图;图4示出了根据本专利技术另一实施例的一种恶意文档的检测方法的流程图;图5示出了根据本专利技术一个实施例的一种恶意文档的检测装置的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本专利技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。本
技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本专利技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。图1示意性示出了本专利技术一个实施例的恶意文档的检测方法的流程图。参照图1,本专利技术实施例的恶意文档的检测方法具体包括以下步骤:步骤S11、获取待检测文档中存在的可执行代码。本实施例中的待检测文档为非PE类文档。可理解的,正常的非PE类文档,如DOC,PDF,XLS,PPT等,应该仅包括一些文档数据,并不会存在可执行的代码。但是,当加载文档的软件存在漏洞时,会故意制作出不正常文档,即,恶意文档。在特定的环境下打开该文档后则会成功执行恶意指令。恶意指令代码Shellcode是攻击者隐藏在文档内的负载,通过传播给目标计算机,进而释放攻击代码,导致目标系统的崩溃,或者会让攻击者能够暂时获得控制目标计算式的最高权限,对用户的计算机系统造成安全威胁。因此,为了进行恶意文档的检测方法,首先需要获取待检测文档中存在的可执行代码。本专利技术实施例中,可将待检测文档转化为二进制代码,通过对待检测文档的二进制代码进行查找,以获取该待本文档来自技高网...
【技术保护点】
一种恶意文档的检测方法,包括:获取待检测文档中存在的可执行代码;模拟执行所述可执行代码,检测在执行所述可执行代码过程中是否存在对系统应用程序编程接口API函数的调用;若存在对系统API函数的调用,则确定所述待检测文档为恶意文档。
【技术特征摘要】
1.一种恶意文档的检测方法,包括:获取待检测文档中存在的可执行代码;模拟执行所述可执行代码,检测在执行所述可执行代码过程中是否存在对系统应用程序编程接口API函数的调用;若存在对系统API函数的调用,则确定所述待检测文档为恶意文档。2.根据权利要求1所述的方法,所述获取待检测文档中存在的可执行代码包括:对所述待检测文档的二进制代码进行逐字节查找,以获取所述待检测文档中存在的可执行代码。3.根据权利要求1所述的方法,所述获取待检测文档中存在的可执行代码包括:对所述待检测文档的预定层级结构的二进制代码进行逐字节查找,以获取所述待检测文档中存在的可执行代码。4.根据权利要求1所述的方法,所述获取待检测文档中存在的可执行代码包括:对所述待检测文档的二进制代码进行特定字节查找,以获取所述待检测文档中存在的可执行代码,所述特定字节为恶意指令代码shellcode的特征字节。5.根据权利要求1-4任一项所述的方法,所述模拟执行所述可执行代码包括:在目标操作系统中模拟执行所述可执行代码,所述目标操作系统为与所述恶意文档的实际运行操作系统不同的操作系统。6.根据权利要...
【专利技术属性】
技术研发人员:计东,韩鹏,
申请(专利权)人:北京奇虎科技有限公司,北京奇安信科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。