CN113127867A - 文档识别方法、装置、设备及存储介质 - Google Patents
文档识别方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113127867A CN113127867A CN201911424321.3A CN201911424321A CN113127867A CN 113127867 A CN113127867 A CN 113127867A CN 201911424321 A CN201911424321 A CN 201911424321A CN 113127867 A CN113127867 A CN 113127867A
- Authority
- CN
- China
- Prior art keywords
- target
- document
- function
- hook
- abnormal
- 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
Images
Classifications
-
- 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及文档安全技术领域,公开了一种文档识别方法、装置、设备及存储介质,所述方法包括:在接收到目标文档的访问请求时,确定目标进程的进程信息,所述目标进程为用于启动所述目标文档的进程;根据所述进程信息获取所述目标进程在运行过程中需要调用的目标函数;对所述目标函数进行检测,并根据检测结果判断所述目标文档是否为异常文档。从而在目标文档被打开时,根据目标进程的进程信息获取目标函数,通过对目标函数进行检测来判断目标文档是否为异常文档,解决了如何识别异常文档,以提高用户使用电脑时的安全性的技术问题。
Description
技术领域
本发明涉及文档安全技术领域,尤其涉及一种文档识别方法、装置、设 备及存储介质。
背景技术
强大的VBA可以做任何事情,可以在文档中嵌入各种函数,使用诱导文 档伪装成政府报告、商业机密等进行鱼叉攻击,Office是现在大家电脑上的标 配软件,因此绝大多数的攻击都是以Office文档为源头,会严重威胁到用户 使用电脑时的安全性。
因此,在打开Office文档时需要对其进行检测,识别该Office文档是否 为异常文档,以提高用户使用电脑的安全性。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是 现有技术。
发明内容
本发明的主要目的在于提出一种文档识别方法、装置、设备及存储介质, 旨在解决如何识别异常文档,以提高用户使用电脑时的安全性的技术问题。
为实现上述目的,本发明提供一种文档识别方法,所述文档识别方法包 括以下步骤:
在接收到目标文档的访问请求时,确定目标进程的进程信息,所述目标 进程为用于启动所述目标文档的进程;
根据所述进程信息获取所述目标进程在运行过程中需要调用的目标函 数;
对所述目标函数进行检测,并根据检测结果判断所述目标文档是否为异 常文档。
优选地,所述根据所述进程信息获取所述目标进程在运行过程中需要调 用的目标函数,具体包括:
根据所述进程信息向所述目标进程内注入动态链接库DLL文件;
通过所述DLL文件中的钩子函数获取所述目标进程在运行过程中需要 调用的目标函数。
优选地,所述根据所述进程信息向所述目标进程内注入动态链接库DLL 文件,具体包括:
从所述进程信息中提取所述目标进程对应的进程类型;
查找与所述进程类型相匹配的DLL文件;
将所述DLL文件注入所述目标进程内。
优选地,所述通过所述DLL文件中的钩子函数获取所述目标进程在运行 过程中需要调用的目标函数,具体包括:
从所述DLL文件中提取钩子链表;
查找所述钩子链表中的钩子进程,并获取各钩子进程对应的钩子函数;
通过所述钩子函数获取所述目标进程在运行过程中需要调用的目标函 数。
优选地,所述通过所述钩子函数获取所述目标进程在运行过程中需要调 用的目标函数,具体包括:
从所述进程信息中提取所述目标进程的当前进程时刻;
在所述当前进程时刻为宏代码执行时刻时,获取所述目标文档中的当前 宏代码,并从所述钩子函数中选取第一目标钩子函数;
根据所述第一目标钩子函数从所述当前宏代码中钩取预设VBA引擎函 数;
将所述预设VBA引擎函数作为目标函数。
优选地,所述对所述目标函数进行检测,并根据检测结果判断所述目标 文档是否为异常文档,具体包括:
对所述目标函数进行遍历,并将遍历到的目标函数添加进目标函数集合;
对所述目标函数集合内的目标函数进行组合;
根据组合结果确定目标行为;
对所述目标行为进行检测,并根据检测结果判断所述目标文档是否为异 常文档。
优选地,所述在接收到目标文档的访问请求时,确定目标进程的进程信 息,所述目标进程为用于启动所述目标文档的进程之前,还包括:
对文档进行遍历,将遍历到的文档作为当前文档;
获取所述当前文档对应的脚本的字符串;
对所述字符串进行木马检测,以判断所述字符串中是否存在木马;
若所述字符串中存在木马,则将所述当前文档作为异常文档。
此外,为实现上述目的,本发明还提出一种文档识别装置,所述文档识 别装置包括:
进程确定模块,用于在接收到目标文档的访问请求时,确定目标进程的 进程信息,所述目标进程为用于启动所述目标文档的进程;
函数获取模块,用于根据所述进程信息获取所述目标进程在运行过程中 需要调用的目标函数;
函数检测模块,用于对所述目标函数进行检测,并根据检测结果判断所 述目标文档是否为异常文档。
此外,为实现上述目的,本发明还提出一种文档识别设备,所述文档识 别设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运 行的文档识别程序,所述文档识别程序配置有实现如上所述的文档识别方法 的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上 存储有文档识别程序,所述文档识别程序被处理器执行时实现如上所述的文 档识别方法的步骤。
本发明提出的文档识别方法,通过在接收到目标文档的访问请求时,确 定目标进程的进程信息,所述目标进程为用于启动所述目标文档的进程;根 据所述进程信息获取所述目标进程在运行过程中需要调用的目标函数;对所 述目标函数进行检测,并根据检测结果判断所述目标文档是否为异常文档。 从而在目标文档被打开时,根据目标进程的进程信息获取目标函数,通过对 目标函数进行检测来判断目标文档是否为异常文档,解决了如何识别异常文 档,以提高用户使用电脑时的安全性的技术问题。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的文档识别设备结构示意 图;
图2为本发明文档识别方法第一实施例的流程示意图;
图3为本发明文档识别方法第二实施例的流程示意图;
图4为本发明文档识别方法第三实施例的流程示意图;
图5为本发明文档识别装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步 说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限 定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的文档识别设 备结构示意图。
如图1所示,该文档识别设备可以包括:处理器1001,例如中央处理器 (CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口 1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。 用户接口1003可以包括显示屏(Display)、输入单元比如按键,可选用户接 口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包 括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速随机 存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独 立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对文档识别设 备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不 同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络 通信模块、用户接口模块以及文档识别程序。
在图1所示的文档识别设备中,网络接口1004主要用于连接外网,与其 他网络设备进行数据通信;用户接口1003主要用于连接用户设备,与所述用 户设备进行数据通信;本发明设备通过处理器1001调用存储器1005中存储 的文档识别程序,并执行本发明实施例提供的文档识别方法。
基于上述硬件结构,提出本发明文档识别方法实施例。
参照图2,图2为本发明文档识别方法第一实施例的流程示意图。
在第一实施例中,所述文档识别方法包括以下步骤:
步骤S10,在接收到目标文档的访问请求时,确定目标进程的进程信息, 所述目标进程为用于启动所述目标文档的进程。
需要说明的是,本实施例的执行主体可为文档识别设备,还可为其他可 实现相同或相似功能的设备,本实施例对此不作限制,在本实施例中,以文 档识别设备为例进行说明。
应当理解的是,在接收到目标文档的访问请求时,说明此时目标文档在 请求访问,即目标文档刚被打开。
应当理解的是,在目标文档被打开时,会生成一个用于启动目标文档的 进程,将这个进程作为目标进程,确定目标进程的进程信息,所述进程信息 包括目标进程的进程类型和当前进程时刻等信息,还可包括其他信息,本实 施例对此不作限制,所述当前进程时刻为目标进程在当前时刻的运行状态。 例如,宏代码执行时刻、创建或获取COM对象时刻等,还可为其他时刻, 本实施例对此不作限制。
需要说明的是,所述目标文档可为Office文档,例如Word文档、Excel 文档、PPT文档、Outlook文档等,还可为其他类型的文档,本实施例对此不 作限制。
可以理解的是,在目标文档为Word文档时,对应的目标进程为 winword.exe;在目标文档为Excel文档时,对应的目标进程为excel.exe;在 目标文档为PPT文档时,对应的目标进程为ppt.exe;在目标文档为Outlook 文档时,对应的目标进程为outlook.exe;在目标文档为其他类型的文档时, 对应的目标进程可为其他进程,本实施例对此不作限制。
步骤S20,根据所述进程信息获取所述目标进程在运行过程中需要调用 的目标函数。
可以理解的是,根据进程信息查找与目标进程相匹配的动态链接库 (DynamicLink Library,DLL)文件,将DLL文件注入目标进程内,通过 DLL文件中的钩子函数获取目标进程在运行过程中需要调用的目标函数。
应当理解的是,在宏代码执行的时刻,根据钩子函数对红代码中的预设 VBA引擎函数进行hook,在创建或获取COM对象的时刻,根据钩子函数对 COM对象中的成员函数进行hook,将hook到的函数作为目标进程在运行过 程中需要调用的目标函数。
步骤S30,对所述目标函数进行检测,并根据检测结果判断所述目标文 档是否为异常文档。
可以理解的是,对目标函数进行组合,根据组合结果确定目标行为,将 目标行为与预设黑名单行为进行匹配,根据匹配结果判断目标文档是否为异 常文档,从而实现对目标文档的动态检测。
应当理解的是,若目标文档为异常文档,可关闭目标进程以关闭目标文 档,并将其进行隔离处置,还可为其他处置方法,本实施例对此不作限制。
进一步地,所述步骤S10之前,还包括:
对文档进行遍历,将遍历到的文档作为当前文档;获取所述当前文档对 应的脚本的字符串;对所述字符串进行木马检测,以判断所述字符串中是否 存在木马;若所述字符串中存在木马,则将所述当前文档作为异常文档。
需要说明的是,可通过对目标文档进行动态检测来判断目标文档是否为 异常文档,在进行动态检测之前,还可以通过QEX对文档进行静态检测来判 断文档是否为异常文档,通过将动态检测与静态检测相结合的方式来对文档 进行检测,提高了文档识别的准确性,从而进一步地提升了用户使用电脑时 的安全性。
可以理解的是,动态检测是在文档被打开时进行检测,静态检测是对所 有文档进行检测,先对文档进行遍历,将遍历到的文档作为当前文档,然后 从当前文档中获取当前文档对应的脚本的字符串,对字符串进行木马检测, 将字符串与预设黑名单字符串进行匹配,若匹配成功则说明字符串中存在木 马,将当前文档作为异常文档。
应当理解的是,预设黑名单字符串为技术人员预先设置的,可为通过大 数据筛选出的存在问题或异常的字符串,将其列入黑名单并作为黑名单字符 串,还可为根据其他方式进行设置的,本实施例对此不作限制。
进一步地,所述步骤S30之后,还包括:
对异常文档进行遍历,并将遍历到的异常文档作为目标异常文档;将所 述目标异常文档上传至预设云服务平台。
应当理解的是,在对文档进行静态检测和动态检测后,可识别出一个或 多个异常文档,对异常文档进行遍历,并将遍历到的异常文档作为目标异常 文档,然后将目标异常文档上传至预设云服务平台,通过这种方式可以筛选 出所有异常文档,并将异常文档上传至预设云服务平台。
本实施例中在接收到目标文档的访问请求时,确定目标进程的进程信息, 所述目标进程为用于启动所述目标文档的进程;根据所述进程信息获取所述 目标进程在运行过程中需要调用的目标函数;对所述目标函数进行检测,并 根据检测结果判断所述目标文档是否为异常文档。从而在目标文档被打开时, 根据目标进程的进程信息获取目标函数,通过对目标函数进行检测来判断目 标文档是否为异常文档,解决了如何识别异常文档,以提高用户使用电脑时 的安全性的技术问题。
在一实施例中,如图3所示,基于第一实施例提出本发明文档识别方法 第二实施例,所述步骤S20,包括:
步骤S201,根据所述进程信息向所述目标进程内注入动态链接库DLL 文件。
进一步地,所述步骤S201,包括:
从所述进程信息中提取所述目标进程对应的进程类型;查找与所述进程 类型相匹配的DLL文件;将所述DLL文件注入所述目标进程内。
可以理解的是,由于不同类型的进程在运行过程中需要调用的函数并不 一定相同,而对于不同的函数,需要使用不同的钩子函数来进行获取,而不 同的钩子函数又存储在不同的DLL文件中,因此,需要先从进程信息中提取 目标进程对应的进程类型,在预设数据库中查找与进程类型相匹配的DLL文 件,将DLL文件注入目标进程内,所述DLL文件中存储有用于获取目标进 程在运行过程中需要调用的目标函数的钩子函数。
进一步地,所述将所述DLL文件注入所述目标进程内,包括:
在所述目标进程中分配出内存空间;将所述DLL文件复制到所述内存空 间中。
可以理解的是,将DLL文件注入目标进程内的方式可为,在目标进程中 分配出一个内存空间,将DLL文件复制到内存空间中,以完成DLL文件的 注入。
步骤S202,通过所述DLL文件中的钩子函数获取所述目标进程在运行 过程中需要调用的目标函数。
进一步地,所述步骤S202,包括:
从所述DLL文件中提取钩子链表;查找所述钩子链表中的钩子进程,并 获取各钩子进程对应的钩子函数;通过所述钩子函数获取所述目标进程在运 行过程中需要调用的目标函数。
需要说明的是,钩子函数以钩子链表的形式存储在DLL文件中,因此, 在将DLL文件注入目标进程内后,从DLL文件中提取钩子链表,再查找钩 子链表中的所有钩子进程,然后获取各钩子进程对应的钩子函数,通过钩子 函数获取目标进程在运行过程中需要调用的目标函数。
应当理解的是,一个钩子链表中含有多个钩子进程,各钩子进程分别通 过对应的钩子函数来对目标进程中的不同的目标函数进行钩取。
进一步地,所述通过所述钩子函数获取所述目标进程在运行过程中需要 调用的目标函数,包括:
从所述进程信息中提取所述目标进程的当前进程时刻;在所述当前进程 时刻为宏代码执行时刻时,获取所述目标文档中的当前宏代码,并从所述钩 子函数中选取第一目标钩子函数;根据所述第一目标钩子函数从所述当前宏 代码中钩取预设VBA引擎函数;将所述预设VBA引擎函数作为目标函数。
需要说明的是,从进程信息中提取目标进程的当前进程时刻,在当前进 程时刻为宏代码执行时刻时,获取目标文档中的当前宏代码,然后从钩子函 数中选取与宏代码对应的第一目标钩子函数,根据第一目标钩子函数从当前 宏代码中钩取预设VBA引擎函数,在具体实现中,预设VBA引擎函数包括GetObject、CreateObject、Shell等函数,还可包括其他类型的函数,本实施 例对此不作限制,在钩取到预设VBA引擎函数后,将钩取到的预设VBA引 擎函数作为目标函数,所述预设VBA引擎函数可为VBA引擎关键函数。
进一步地,所述从所述进程信息中提取所述目标进程的当前进程时刻之 后,还包括:
在所述当前进程时刻为创建或获取COM对象时刻时,获取所述目标文 档中的当前COM对象,并从所述钩子函数中选取第二目标钩子函数;根据 所述第二目标钩子函数从所述当前COM对象中钩取成员函数;将所述成员 函数作为目标函数。
可以理解的是,在当前进程时刻为创建或获取COM对象时刻时,获取 目标文档中的当前COM对象,然后从钩子函数中选取与当前COM对象对应 的第二目标钩子函数,根据第二目标钩子函数从当前COM对象中钩取成员 函数,所述成员函数包括Shell.Application、WMI、Scripting.FileSystemObject 等函数,还可包括其他类型的函数,本实施例对此不作限制,在钩取到成员 函数后,将钩取到的成员函数作为目标函数。
应当理解的是,钩子函数只能钩取目标进程中存在的函数,而如果目标 进程中不存在钩子函数要钩取的函数,则钩取结果为空,例如,钩子函数中 有一个钩子函数是用来钩取A函数的,而目标进程中没有A函数,则钩取结 果为空;而钩子函数中还有一个钩子函数是用来钩取B函数的,目标进程中 也有B函数,因此,通过该钩子函数可从目标进程中钩取B函数,并将B函 数作为目标函数;同理,还可用钩取C函数的钩子函数从目标进程中钩取C 函数,将C函数也作为目标函数,所以,目标函数可为一个,也可为多个, 本实施例对此不作限制。
在本实施例中,通过根据所述进程信息向所述目标进程内注入动态链接 库DLL文件,再通过所述DLL文件中的钩子函数获取所述目标进程在运行 过程中需要调用的目标函数,从而向目标进程内注入DLL文件,再根据DLL 文件中的钩子函数获取目标函数,提高了获取目标函数的准确性及效率。
在一实施例中,如图4所示,基于第一实施例提出本发明文档识别方法 第三实施例,所述步骤S30,包括:
步骤S301,对所述目标函数进行遍历,并将遍历到的目标函数添加进目 标函数集合。
应当理解的是,对目标函数进行遍历,并将遍历到的目标函数添加进目 标函数集合,通过这种方式可将获取到的所有目标函数都添加进目标函数集 合。
步骤S302,对所述目标函数集合内的目标函数进行组合。
可以理解的是,对目标函数集合内的目标函数进行组合,通过各种组合 结果来确定目标行为,并且,还可获取各目标函数中的代码,与代码进行结 合来确定目标行为,本实施例对此不作限制。
应当理解的是,所述目标行为是根据目标函数确定的,其主要作用为用 来体现目标进程中的目标函数的作用。
步骤S303,根据组合结果确定目标行为。
在具体实现中,例如,在目标函数集合内存在多个目标函数时,对所述 多个目标函数进行组合,组合方式不限,而且可以对任意数量的目标函数进 行组合,本实施例对此不作限制。
可以理解的是,根据之前步骤从目标进程中获取的目标函数进行组合, 可根据组合结果确定目标行为,再对目标行为进行检测,根据检测结果判断 目标文档是否为异常文档。
步骤S304,对所述目标行为进行检测,并根据检测结果判断所述目标文 档是否为异常文档。
进一步地,所述步骤S304,包括:
将所述目标行为与预设黑名单行为进行匹配;若匹配成功,则为所述目 标行为打上异常标签,并判定所述目标行为对应的目标文档为异常文档;若 匹配不成功,则判定所述目标行为对应的目标文档不为异常文档。
可以理解的是,将目标行为与预设黑名单行为进行匹配,根据匹配结果 来判断目标文档是否为异常文档。
应当理解的是,所述预设黑名单行为为技术人员预先设置的,可为通过 大数据筛选出的存在问题或异常的行为,将其列入黑名单并作为黑名单行为, 还可为根据其他方式进行设置的,本实施例对此不作限制。
本实施例中通过对所述目标函数进行遍历,并将遍历到的目标函数添加 进目标函数集合,对所述目标函数集合内的目标函数进行组合,根据组合结 果确定目标行为,对所述目标行为进行检测,并根据检测结果判断所述目标 文档是否为异常文档,从而根据目标进程中的目标函数来确定目标行为,然 后对目标行为进行检测来判断目标文档是否为异常文档,提高了文档识别的 准确性及效率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有文档 识别程序,所述文档识别程序被处理器执行时实现如上所述的文档识别方法 的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有 上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,参照图5,本发明实施例还提出一种文档识别装置,所述文档识 别装置包括:
进程确定模块10,用于在接收到目标文档的访问请求时,确定目标进程 的进程信息,所述目标进程为用于启动所述目标文档的进程。
应当理解的是,在接收到目标文档的访问请求时,说明此时目标文档在 请求访问,即目标文档刚被打开。
应当理解的是,在目标文档被打开时,会生成一个用于启动目标文档的 进程,将这个进程作为目标进程,确定目标进程的进程信息,所述进程信息 包括目标进程的进程类型和当前进程时刻等信息,还可包括其他信息,本实 施例对此不作限制,所述当前进程时刻为目标进程在当前时刻的运行状态。 例如,宏代码执行时刻、创建或获取COM对象时刻等,还可为其他时刻, 本实施例对此不作限制。
需要说明的是,所述目标文档可为Office文档,例如Word文档、Excel 文档、PPT文档、Outlook文档等,还可为其他类型的文档,本实施例对此不 作限制。
可以理解的是,在目标文档为Word文档时,对应的目标进程为 winword.exe;在目标文档为Excel文档时,对应的目标进程为excel.exe;在 目标文档为PPT文档时,对应的目标进程为ppt.exe;在目标文档为Outlook 文档时,对应的目标进程为outlook.exe;在目标文档为其他类型的文档时, 对应的目标进程可为其他进程,本实施例对此不作限制。
函数获取模块20,用于根据所述进程信息获取所述目标进程在运行过程 中需要调用的目标函数。
可以理解的是,根据进程信息查找与目标进程相匹配的动态链接库 (DynamicLink Library,DLL)文件,将DLL文件注入目标进程内,通过 DLL文件中的钩子函数获取目标进程在运行过程中需要调用的目标函数。
应当理解的是,在宏代码执行的时刻,根据钩子函数对红代码中的预设 VBA引擎函数进行hook,在创建或获取COM对象的时刻,根据钩子函数对 COM对象中的成员函数进行hook,将hook到的函数作为目标进程在运行过 程中需要调用的目标函数。
函数检测模块30,用于对所述目标函数进行检测,并根据检测结果判断 所述目标文档是否为异常文档。
可以理解的是,对目标函数进行组合,根据组合结果确定目标行为,将 目标行为与预设黑名单行为进行匹配,根据匹配结果判断目标文档是否为异 常文档,从而实现对目标文档的动态检测。
应当理解的是,若目标文档为异常文档,可关闭目标进程以关闭目标文 档,并将其进行隔离处置,还可为其他处置方法,本实施例对此不作限制。
本实施例中通过在接收到目标文档的访问请求时,确定目标进程的进程 信息,所述目标进程为用于启动所述目标文档的进程;根据所述进程信息获 取所述目标进程在运行过程中需要调用的目标函数;对所述目标函数进行检 测,并根据检测结果判断所述目标文档是否为异常文档。从而在目标文档被 打开时,根据目标进程的进程信息获取目标函数,通过对目标函数进行检测 来判断目标文档是否为异常文档,解决了如何识别异常文档,以提高用户使 用电脑时的安全性的技术问题。
进一步地,所述函数获取模块20,还用于根据所述进程信息向所述目标 进程内注入动态链接库DLL文件;所述函数获取模块20,还用于通过所述 DLL文件中的钩子函数获取所述目标进程在运行过程中需要调用的目标函 数。
进一步地,所述函数获取模块20,还用于从所述进程信息中提取所述目 标进程对应的进程类型;所述函数获取模块20,还用于查找与所述进程类型 相匹配的DLL文件;所述函数获取模块20,还用于将所述DLL文件注入所 述目标进程内。
可以理解的是,由于不同类型的进程在运行过程中需要调用的函数并不 一定相同,而对于不同的函数,需要使用不同的钩子函数来进行获取,而不 同的钩子函数又存储在不同的DLL文件中,因此,需要先从进程信息中提取 目标进程对应的进程类型,在预设数据库中查找与进程类型相匹配的DLL文 件,将DLL文件注入目标进程内,所述DLL文件中存储有用于获取目标进 程在运行过程中需要调用的目标函数的钩子函数。
可以理解的是,将DLL文件注入目标进程内的方式可为,在目标进程中 分配出一个内存空间,将DLL文件复制到内存空间中,以完成DLL文件的 注入。
进一步地,所述函数检测模块30,还用于对所述目标函数进行遍历,并 将遍历到的目标函数添加进目标函数集合;所述函数检测模块30,还用于对 所述目标函数集合内的目标函数进行组合;所述函数检测模块30,还用于根 据组合结果确定目标行为;所述函数检测模块30,还用于对所述目标行为进 行检测,并根据检测结果判断所述目标文档是否为异常文档。
应当理解的是,对目标函数进行遍历,并将遍历到的目标函数添加进目 标函数集合,通过这种方式可将获取到的所有目标函数都添加进目标函数集 合。
可以理解的是,对目标函数集合内的目标函数进行组合,通过各种组合 结果来确定目标行为,并且,还可获取各目标函数中的代码,与代码进行结 合来确定目标行为,本实施例对此不作限制。
应当理解的是,所述目标行为是根据目标函数确定的,其主要作用为用 来体现目标进程中的目标函数的作用。
在具体实现中,例如,在目标函数集合内存在多个目标函数时,对所述 多个目标函数进行组合,组合方式不限,而且可以对任意数量的目标函数进 行组合,本实施例对此不作限制。
可以理解的是,根据之前步骤从目标进程中获取的目标函数进行组合, 可根据组合结果确定目标行为,再对目标行为进行检测,根据检测结果判断 目标文档是否为异常文档。
将所述目标行为与预设黑名单行为进行匹配;若匹配成功,则为所述目 标行为打上异常标签,并判定所述目标行为对应的目标文档为异常文档;若 匹配不成功,则判定所述目标行为对应的目标文档不为异常文档。
可以理解的是,将目标行为与预设黑名单行为进行匹配,根据匹配结果 来判断目标文档是否为异常文档。
应当理解的是,所述预设黑名单行为为技术人员预先设置的,可为通过 大数据筛选出的存在问题或异常的行为,将其列入黑名单并作为黑名单行为, 还可为根据其他方式进行设置的,本实施例对此不作限制。
进一步地,所述文档识别装置还包括静态检测模块;所述静态检测模块, 用于对文档进行遍历,将遍历到的文档作为当前文档;所述静态检测模块, 还用于获取所述当前文档对应的脚本的字符串;所述静态检测模块,还用于 对所述字符串进行木马检测,以判断所述字符串中是否存在木马;所述静态 检测模块,还用于若所述字符串中存在木马,则将所述当前文档作为异常文 档。
需要说明的是,可通过对目标文档进行动态检测来判断目标文档是否为 异常文档,在进行动态检测之前,还可以通过QEX对文档进行静态检测来判 断文档是否为异常文档,通过将动态检测与静态检测相结合的方式来对文档 进行检测,提高了文档识别的准确性,从而进一步地提升了用户使用电脑时 的安全性。
可以理解的是,动态检测是在文档被打开时进行检测,静态检测是对所 有文档进行检测,先对文档进行遍历,将遍历到的文档作为当前文档,然后 从当前文档中获取当前文档对应的脚本的字符串,对字符串进行木马检测, 将字符串与预设黑名单字符串进行匹配,若匹配成功则说明字符串中存在木 马,将当前文档作为异常文档。
应当理解的是,预设黑名单字符串为技术人员预先设置的,可为通过大 数据筛选出的存在问题或异常的字符串,将其列入黑名单并作为黑名单字符 串,还可为根据其他方式进行设置的,本实施例对此不作限制。
进一步地,所述文档识别装置还包括文档上传模块;所述文档上传模块, 用于对异常文档进行遍历,并将遍历到的异常文档作为目标异常文档;所述 文档上传模块,还用于将所述目标异常文档上传至预设云服务平台。
应当理解的是,在对文档进行静态检测和动态检测后,可识别出一个或 多个异常文档,对异常文档进行遍历,并将遍历到的异常文档作为目标异常 文档,然后将目标异常文档上传至预设云服务平台,通过这种方式可以筛选 出所有异常文档,并将异常文档上传至预设云服务平台。
在一实施例中,所述函数获取模块20,还用于在所述目标进程中分配出 内存空间;将所述DLL文件复制到所述内存空间中。
在一实施例中,所述函数获取模块20,还用于从所述DLL文件中提取 钩子链表;查找所述钩子链表中的钩子进程,并获取各钩子进程对应的钩子 函数;通过所述钩子函数获取所述目标进程在运行过程中需要调用的目标函 数。
在一实施例中,所述函数获取模块20,还用于从所述进程信息中提取所 述目标进程的当前进程时刻;在所述当前进程时刻为宏代码执行时刻时,获 取所述目标文档中的当前宏代码,并从所述钩子函数中选取第一目标钩子函 数;根据所述第一目标钩子函数从所述当前宏代码中钩取预设VBA引擎函 数;将所述预设VBA引擎函数作为目标函数。
在一实施例中,所述函数获取模块20,还用于在所述当前进程时刻为创 建或获取COM对象时刻时,获取所述目标文档中的当前COM对象,并从所 述钩子函数中选取第二目标钩子函数;根据所述第二目标钩子函数从所述当 前COM对象中钩取成员函数;将所述成员函数作为目标函数。
在一实施例中,所述函数检测模块30,还用于将所述目标行为与预设黑 名单行为进行匹配。
在一实施例中,所述函数检测模块30,还用于若匹配成功,则为所述目 标行为打上异常标签,并判定所述目标行为对应的目标文档为异常文档;若 匹配不成功,则判定所述目标行为对应的目标文档不为异常文档。
在本发明所述文档识别装置的其他实施例或具体实现方法可参照上述各 方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意 在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者 装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包 括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况 下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方 法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的 技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该估算机软件产品存储在如上所述的一个估算机可读存储介质(如 ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台智能设备(可以是手 机,估算机,文档识别设备,空调器,或者网络文档识别设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是 利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间 接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
本发明公开了A1、一种文档识别方法,所述文档识别方法包括以下步骤:
在接收到目标文档的访问请求时,确定目标进程的进程信息,所述目标 进程为用于启动所述目标文档的进程;
根据所述进程信息获取所述目标进程在运行过程中需要调用的目标函 数;
对所述目标函数进行检测,并根据检测结果判断所述目标文档是否为异 常文档。
A2、如A1所述的文档识别方法,所述根据所述进程信息获取所述目标 进程在运行过程中需要调用的目标函数,具体包括:
根据所述进程信息向所述目标进程内注入动态链接库DLL文件;
通过所述DLL文件中的钩子函数获取所述目标进程在运行过程中需要 调用的目标函数。
A3、如A1~A2中任一项所述的文档识别方法,所述根据所述进程信息 向所述目标进程内注入动态链接库DLL文件,具体包括:
从所述进程信息中提取所述目标进程对应的进程类型;
查找与所述进程类型相匹配的DLL文件;
将所述DLL文件注入所述目标进程内。
A4、如A1~A3中任一项所述的文档识别方法,所述将所述DLL文件注 入所述目标进程内,具体包括:
在所述目标进程中分配出内存空间;
将所述DLL文件复制到所述内存空间中。
A5、如A1~A4中任一项所述的文档识别方法,所述通过所述DLL文件 中的钩子函数获取所述目标进程在运行过程中需要调用的目标函数,具体包 括:
从所述DLL文件中提取钩子链表;
查找所述钩子链表中的钩子进程,并获取各钩子进程对应的钩子函数;
通过所述钩子函数获取所述目标进程在运行过程中需要调用的目标函 数。
A6、如A1~A5中任一项所述的文档识别方法,所述通过所述钩子函数 获取所述目标进程在运行过程中需要调用的目标函数,具体包括:
从所述进程信息中提取所述目标进程的当前进程时刻;
在所述当前进程时刻为宏代码执行时刻时,获取所述目标文档中的当前 宏代码,并从所述钩子函数中选取第一目标钩子函数;
根据所述第一目标钩子函数从所述当前宏代码中钩取预设VBA引擎函 数;
将所述预设VBA引擎函数作为目标函数。
A7、如A1~A6中任一项所述的文档识别方法,所述从所述进程信息中 提取所述目标进程的当前进程时刻之后,还包括:
在所述当前进程时刻为创建或获取COM对象时刻时,获取所述目标文 档中的当前COM对象,并从所述钩子函数中选取第二目标钩子函数;
根据所述第二目标钩子函数从所述当前COM对象中钩取成员函数;
将所述成员函数作为目标函数。
A8、如A1~A7中任一项所述的文档识别方法,所述对所述目标函数进 行检测,并根据检测结果判断所述目标文档是否为异常文档,具体包括:
对所述目标函数进行遍历,并将遍历到的目标函数添加进目标函数集合;
对所述目标函数集合内的目标函数进行组合;
根据组合结果确定目标行为;
对所述目标行为进行检测,并根据检测结果判断所述目标文档是否为异 常文档。
A9、如A1~A8中任一项所述的文档识别方法,所述对所述目标行为进 行检测,并根据检测结果判断所述目标文档是否为异常文档,具体包括:
将所述目标行为与预设黑名单行为进行匹配;
根据匹配结果判断所述目标文档是否为异常文档。
A10、如A1~A8中任一项所述的文档识别方法,所述根据匹配结果判断 所述目标文档是否为异常文档,具体包括:
若匹配成功,则为所述目标行为打上异常标签,并判定所述目标行为对 应的目标文档为异常文档。
A11、如A1~A10中任一项所述的文档识别方法,所述在接收到目标文档 的访问请求时,确定目标进程的进程信息,所述目标进程为用于启动所述目 标文档的进程之前,还包括:
对文档进行遍历,将遍历到的文档作为当前文档;
获取所述当前文档对应的脚本的字符串;
对所述字符串进行木马检测,以判断所述字符串中是否存在木马;
若所述字符串中存在木马,则将所述当前文档作为异常文档。
A12、如A1~A11中任一项所述的文档识别方法,所述对所述目标函数进 行检测,并根据检测结果判断所述目标文档是否为异常文档之后,还包括:
对异常文档进行遍历,并将遍历到的异常文档作为目标异常文档;
将所述目标异常文档上传至预设云服务平台。
本发明还公开了B13、一种文档识别装置,所述文档识别装置包括:
进程确定模块,用于在接收到目标文档的访问请求时,确定目标进程的 进程信息,所述目标进程为用于启动所述目标文档的进程;
函数获取模块,用于根据所述进程信息获取所述目标进程在运行过程中 需要调用的目标函数;
函数检测模块,用于对所述目标函数进行检测,并根据检测结果判断所 述目标文档是否为异常文档。
B14、如B13所述的文档识别装置,所述函数获取模块,还用于根据所 述进程信息向所述目标进程内注入动态链接库DLL文件;
所述函数获取模块,还用于通过所述DLL文件中的钩子函数获取所述目 标进程在运行过程中需要调用的目标函数。
B15、如B13~B14中任一项所述的文档识别装置,所述函数获取模块, 还用于从所述进程信息中提取所述目标进程对应的进程类型;
所述函数获取模块,还用于查找与所述进程类型相匹配的DLL文件;
所述函数获取模块,还用于将所述DLL文件注入所述目标进程内。
B16、如B13~B15中任一项所述的文档识别装置,所述函数检测模块, 还用于对所述目标函数进行遍历,并将遍历到的目标函数添加进目标函数集 合;
所述函数检测模块,还用于对所述目标函数集合内的目标函数进行组合;
所述函数检测模块,还用于根据组合结果确定目标行为;
所述函数检测模块,还用于对所述目标行为进行检测,并根据检测结果 判断所述目标文档是否为异常文档。
B17、如B13~B16中任一项所述的文档识别装置,所述文档识别装置还 包括静态检测模块;
所述静态检测模块,用于对文档进行遍历,将遍历到的文档作为当前文 档;
所述静态检测模块,还用于获取所述当前文档对应的脚本的字符串;
所述静态检测模块,还用于对所述字符串进行木马检测,以判断所述字 符串中是否存在木马;
所述静态检测模块,还用于若所述字符串中存在木马,则将所述当前文 档作为异常文档。
B18、如B13~B17中任一项所述的文档识别装置,所述文档识别装置还 包括文档上传模块;
所述文档上传模块,用于对异常文档进行遍历,并将遍历到的异常文档 作为目标异常文档;
所述文档上传模块,还用于将所述目标异常文档上传至预设云服务平台。
本发明还公开了C19、一种文档识别设备,所述文档识别设备包括:存 储器、处理器及存储在所述存储器上并可在所述处理器上运行的文档识别程 序,所述文档识别程序配置有实现如上所述的文档识别方法的步骤。
本发明还公开了D20、一种存储介质,所述存储介质上存储有文档识别 程序,所述文档识别程序被处理器执行时实现如上所述的文档识别方法的步 骤。
Claims (10)
1.一种文档识别方法,其特征在于,所述文档识别方法包括以下步骤:
在接收到目标文档的访问请求时,确定目标进程的进程信息,所述目标进程为用于启动所述目标文档的进程;
根据所述进程信息获取所述目标进程在运行过程中需要调用的目标函数;
对所述目标函数进行检测,并根据检测结果判断所述目标文档是否为异常文档。
2.如权利要求1所述的文档识别方法,其特征在于,所述根据所述进程信息获取所述目标进程在运行过程中需要调用的目标函数,具体包括:
根据所述进程信息向所述目标进程内注入动态链接库DLL文件;
通过所述DLL文件中的钩子函数获取所述目标进程在运行过程中需要调用的目标函数。
3.如权利要求2所述的文档识别方法,其特征在于,所述根据所述进程信息向所述目标进程内注入动态链接库DLL文件,具体包括:
从所述进程信息中提取所述目标进程对应的进程类型;
查找与所述进程类型相匹配的DLL文件;
将所述DLL文件注入所述目标进程内。
4.如权利要求2所述的文档识别方法,其特征在于,所述通过所述DLL文件中的钩子函数获取所述目标进程在运行过程中需要调用的目标函数,具体包括:
从所述DLL文件中提取钩子链表;
查找所述钩子链表中的钩子进程,并获取各钩子进程对应的钩子函数;
通过所述钩子函数获取所述目标进程在运行过程中需要调用的目标函数。
5.如权利要求4所述的文档识别方法,其特征在于,所述通过所述钩子函数获取所述目标进程在运行过程中需要调用的目标函数,具体包括:
从所述进程信息中提取所述目标进程的当前进程时刻;
在所述当前进程时刻为宏代码执行时刻时,获取所述目标文档中的当前宏代码,并从所述钩子函数中选取第一目标钩子函数;
根据所述第一目标钩子函数从所述当前宏代码中钩取预设VBA引擎函数;
将所述预设VBA引擎函数作为目标函数。
6.如权利要求1~5中任一项所述的文档识别方法,其特征在于,所述对所述目标函数进行检测,并根据检测结果判断所述目标文档是否为异常文档,具体包括:
对所述目标函数进行遍历,并将遍历到的目标函数添加进目标函数集合;
对所述目标函数集合内的目标函数进行组合;
根据组合结果确定目标行为;
对所述目标行为进行检测,并根据检测结果判断所述目标文档是否为异常文档。
7.如权利要求1~5中任一项所述的文档识别方法,其特征在于,所述在接收到目标文档的访问请求时,确定目标进程的进程信息,所述目标进程为用于启动所述目标文档的进程之前,还包括:
对文档进行遍历,将遍历到的文档作为当前文档;
获取所述当前文档对应的脚本的字符串;
对所述字符串进行木马检测,以判断所述字符串中是否存在木马;
若所述字符串中存在木马,则将所述当前文档作为异常文档。
8.一种文档识别装置,其特征在于,所述文档识别装置包括:
进程确定模块,用于在接收到目标文档的访问请求时,确定目标进程的进程信息,所述目标进程为用于启动所述目标文档的进程;
函数获取模块,用于根据所述进程信息获取所述目标进程在运行过程中需要调用的目标函数;
函数检测模块,用于对所述目标函数进行检测,并根据检测结果判断所述目标文档是否为异常文档。
9.一种文档识别设备,其特征在于,所述文档识别设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文档识别程序,所述文档识别程序配置有实现如权利要求1至7中任一项所述的文档识别方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有文档识别程序,所述文档识别程序被处理器执行时实现如权利要求1至7中任一项所述的文档识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911424321.3A CN113127867A (zh) | 2019-12-31 | 2019-12-31 | 文档识别方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911424321.3A CN113127867A (zh) | 2019-12-31 | 2019-12-31 | 文档识别方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113127867A true CN113127867A (zh) | 2021-07-16 |
Family
ID=76769850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911424321.3A Pending CN113127867A (zh) | 2019-12-31 | 2019-12-31 | 文档识别方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127867A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742475A (zh) * | 2021-09-10 | 2021-12-03 | 绿盟科技集团股份有限公司 | 一种office文档检测方法、装置、设备及介质 |
-
2019
- 2019-12-31 CN CN201911424321.3A patent/CN113127867A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742475A (zh) * | 2021-09-10 | 2021-12-03 | 绿盟科技集团股份有限公司 | 一种office文档检测方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114946B2 (en) | Method and device for detecting malicious code in an intelligent terminal | |
GB2568410B (en) | Detecting vulnerable applications | |
US9824212B2 (en) | Method and system for recognizing advertisement plug-ins | |
Crussell et al. | Andarwin: Scalable detection of android application clones based on semantics | |
CN101593253B (zh) | 一种恶意程序判断方法及装置 | |
US20120151586A1 (en) | Malware detection using feature analysis | |
CN109189496B (zh) | 应用程序的动态库信息获取方法及装置 | |
CN105357204B (zh) | 生成终端识别信息的方法及装置 | |
US10607010B2 (en) | System and method using function length statistics to determine file similarity | |
CN112084497A (zh) | 嵌入式Linux系统恶意程序检测方法及装置 | |
CN103761478A (zh) | 恶意文件的判断方法及设备 | |
CN108182364B (zh) | 一种基于调用依赖关系识别攻击同源的方法及系统 | |
CN110543765A (zh) | 一种恶意软件检测方法 | |
CN113127868A (zh) | 脚本识别方法、装置、设备及存储介质 | |
CN109145589B (zh) | 应用程序获取方法及装置 | |
CN110858247A (zh) | 安卓恶意应用检测方法、系统、设备及存储介质 | |
CN113127867A (zh) | 文档识别方法、装置、设备及存储介质 | |
CN108229168B (zh) | 一种嵌套类文件的启发式检测方法、系统及存储介质 | |
CN115809288A (zh) | 数据转换方法、装置、设备及存储介质 | |
CN113254577A (zh) | 敏感文件检测方法、装置、设备及存储介质 | |
CN112395603A (zh) | 基于指令执行序列特征的漏洞攻击识别方法、装置及计算机设备 | |
CN110377499B (zh) | 一种对应用程序进行测试的方法及装置 | |
CN114996698A (zh) | 病毒文件的确定方法、装置、设备及存储介质 | |
US10599845B2 (en) | Malicious code deactivating apparatus and method of operating the same | |
CN109492392B (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 |