驱动程序处理方法、装置及存储介质与流程

文档序号:14836241发布日期:2018-06-30 12:32阅读:309来源:国知局
驱动程序处理方法、装置及存储介质与流程

本发明实施例涉及信息安全领域,特别涉及一种驱动程序处理方法、装置及存储介质。



背景技术:

Rootkit是指具有恶意行为的异常驱动程序,往往会在终端上隐藏自身及指定的文件、进程和网络链接等信息,通过隐藏的信息具有某些恶意行为,从而对终端造成极大的危害,甚至会给用户带来财产损失。因此如何准确检测出Rootkit成为亟待解决的问题。

参见图1,相关技术中,通常会获取已知的异常驱动程序,确定这些异常驱动程序的MD5(Message Digest Algorithm,消息摘要算法第五版)值,从而创建包括异常驱动程序的MD5值的异常特征库,并确定可能会出现异常驱动程序的指定目录,遍历指定目录下的驱动程序,对于遍历到的每个目标驱动程序,获取该目标驱动程序的MD5值,并将该目标驱动程序的MD5值与异常特征库中的MD5值进行匹配,当异常特征库中包括该目标驱动程序的MD5值时,确定该目标驱动程序为异常驱动程序。

在实现本发明实施例的过程中,发明人发现上述相关技术至少存在以下问题:上述检测异常驱动程序的方式只能检测出已知的异常驱动程序,而无法检测出未知的异常驱动程序,检测范围狭窄,准确性差。



技术实现要素:

本发明实施例提供了一种驱动程序处理方法、装置及存储介质,可以解决相关技术的问题。所述技术方案如下:

第一方面,提供了一种驱动程序处理方法,所述方法包括:

确定待检测的目标驱动程序;

获取预设条件,所述预设条件包括异常驱动程序的至少一种预设行为;

按照所述预设条件中所述至少一种预设行为的行为模式以及所述目标驱动程序的行为模式,对所述目标驱动程序进行行为分析,确定所述目标驱动程序是否具有所述预设条件规定的预设行为;

当所述目标驱动程序具有所述预设条件规定的预设行为时,确定所述目标驱动程序为异常驱动程序。

第二方面,提供了一种驱动程序处理方法,所述方法包括:

确定待检测的目标驱动程序;

当按照预设条件中至少一种预设行为的行为模式以及所述目标驱动程序的行为模式,确定所述目标驱动程序具有所述预设条件规定的预设行为时,确定所述目标驱动程序为异常驱动程序,所述预设条件包括异常驱动程序的至少一种预设行为;

展示异常提示信息,所述异常提示信息中包括确定为异常驱动程序的目标驱动程序。

第三方面,提供了一种驱动程序处理装置,所述装置包括:

程序确定模块,用于确定待检测的目标驱动程序;

获取模块,用于获取预设条件,所述预设条件包括异常驱动程序的至少一种预设行为;

行为分析模块,用于按照所述预设条件中所述至少一种预设行为的行为模式以及所述目标驱动程序的行为模式,对所述目标驱动程序进行行为分析,确定所述目标驱动程序是否具有所述预设条件规定的预设行为;

检测模块,用于当所述目标驱动程序具有所述预设条件规定的预设行为时,确定所述目标驱动程序为异常驱动程序。

第四方面,提供了一种驱动程序处理装置,所述装置包括:

程序确定模块,用于确定待检测的目标驱动程序;

检测模块,用于当按照预设条件中至少一种预设行为的行为模式以及所述目标驱动程序的行为模式,确定所述目标驱动程序具有预设条件规定的预设行为时,确定所述目标驱动程序为异常驱动程序,所述预设条件包括异常驱动程序的至少一种预设行为;

展示模块,用于展示异常提示信息,所述异常提示信息中包括确定为异常驱动程序的目标驱动程序。

第五方面,提供了一种驱动程序处理装置,所述驱动程序处理装置包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并具有以实现如第一方面所述的驱动程序处理方法中所具有的操作,或者以实现如第二方面所述的驱动程序处理方法中所具有的操作。

第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并具有以实现如第一方面所述的驱动程序处理方法中所具有的操作,或者以实现如第二方面所述的驱动程序处理方法中所具有的操作。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例提供的方法、装置及存储介质,通过在预设条件中设置异常驱动程序的至少一种预设行为,并按照预设条件中至少一种预设行为的行为模式以及目标驱动程序的行为模式,对目标驱动程序进行行为分析,确定目标驱动程序是否具有预设条件规定的预设行为,当目标驱动程序具有预设条件规定的预设行为时,确定目标驱动程序为异常驱动程序。本发明实施例根据异常驱动程序的预设行为对目标驱动程序的行为进行检测,确定目标驱动程序是否为异常驱动程序,不仅可以检测出已知的异常驱动程序,还可以检测出未知的异常驱动程序,检测范围全面,提高了准确性。

附图说明

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

图1是相关技术提供的一种检测异常驱动程序的操作流程图;

图2是本发明实施例提供的一种驱动程序处理方法的流程图;

图3是本发明实施例提供的一种文件路径示意图;

图4是本发明实施例提供的一种目标驱动程序的属性信息的示意图;

图5是本发明实施例提供的一种目标驱动程序运行之后的属性信息的示意图;

图6是本发明实施例提供的一种操作流程示意图;

图7是本发明实施例提供的一种异常提示信息的示意图;

图8是本发明实施例提供的另一种异常提示信息的示意图;

图9是本发明实施例提供的一种查杀历史记录的示意图;

图10是本发明实施例提供的一种驱动程序处理方法的流程图;

图11是本发明实施例提供的一种操作流程示意图;

图12是本发明实施例提供的一种驱动程序处理装置的结构示意图;

图13是本发明实施例提供的一种驱动程序处理装置的结构示意图;

图14是本发明实施例提供的一种终端的结构示意图。

具体实施方式

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

本发明实施例提供了一种驱动程序处理方法,可以应用于对终端进行安全检测的场景下,通过对终端上的各个驱动程序进行行为分析,并与预设条件中的预设行为进行比对,从而检测出异常驱动程序。

在一种可能实现方式中,终端可以安装具有安全检测功能的指定应用,通过指定应用执行本发明实施例提供的驱动程序处理方法,从而检测出终端上的异常驱动程序,进而能够对检测出的异常驱动程序进行处理,以保证终端的安全性。其中,该指定应用可以为电脑管家应用、安全卫士应用、病毒查杀应用等。

图2是本发明实施例提供的一种驱动程序处理方法的流程图,该驱动程序处理方法的执行主体为终端,参见图2,该方法包括:

201、解析注册表文件,获取注册表文件中的多个服务项,将每个服务项下的文件路径确定为目标驱动程序的文件路径。

其中,注册表文件是帮助终端的操作系统控制硬件、软件、用户环境和界面的一套数据文件,注册表文件位于操作系统的指定目录下,可以从该指定目录获取注册表文件。

该注册表文件即为存储注册表的文件,注册表中包括多个服务项,每个服务项下的文件路径代表一个驱动程序的文件路径,因此终端解析注册表文件,可以获取注册表文件中的多个服务项,从而枚举每个服务项下的文件路径,将每个服务项下的文件路径确定为目标驱动程序的文件路径,也即是将每个服务项下的文件路径指代的驱动程序确定为目标驱动程序,后续可以根据获取到的文件路径检测对应的目标驱动程序是否为异常驱动程序。

例如,参见图3,解析注册表文件,确定服务项

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\adp94xx下的imagepath(文件路径)为\SystemRoot\system32\drivers\adp94xx.sys,则该文件路径指代的驱动程序adp94xx.sys即为目标驱动程序。

另外,终端调用接口可以对注册表进行相应的操作,如调用读取注册表中驱动程序的接口可以读取注册表中某一驱动程序等。但是,考虑到Rootkit这类异常驱动程序往往会注册一些回调函数或者钩子函数,在终端通过调用接口触发了读取注册表的操作时,异常驱动程序会利用回调函数或钩子函数来对触发的操作进行拦截,从而隐藏了异常驱动程序自身的文件路径或者其他信息的文件路径,而导致终端无法获取到准确的文件路径。因此,本发明实施例中并未采用调用接口的方式来获取注册表中的文件路径,而是直接解析注册表文件,从注册表文件中获取文件路径,从而提高了文件路径的准确性,进而提高了后续检测异常驱动程序的准确性。

202、获取预设条件,按照预设条件中至少一种预设行为的行为模式以及目标驱动程序的行为模式,对目标驱动程序进行行为分析,确定目标驱动程序是否具有预设条件规定的预设行为。

本发明实施例中,可以设置一些异常驱动程序常出现的预设行为,将异常驱动程序的至少一种预设行为作为预设条件。当根据注册表文件获取到目标驱动程序的文件路径时,即可根据获取到的文件路径,对目标驱动程序进行行为分析,并按照预设条件中至少一种预设行为的行为模式与目标驱动程序的行为模式进行对比,从而确定目标驱动程序具有哪些预设行为。

在一种可能实现方式中,该步骤202可以包括以下至少一项:

(1)当目标驱动程序的属性信息包含的原始文件名称与目标驱动程序的文件路径包含的文件名称不匹配,或者,当目标驱动程序的属性信息包含的签名信息未验证通过时,确定目标驱动程序具有第一预设行为。

考虑到异常驱动程序通常会修改自身的文件名称,以实现隐藏自身的目的,从而导致原始文件名称与当前的文件名称不匹配,或者异常驱动程序还会伪造签名信息,但伪造的签名信息通常无法验证通过。因此,可以设置第一预设行为:驱动程序的原始文件名称与当前的文件名称不匹配,或者,驱动程序的签名信息未验证通过。

相应地,目标驱动程序的文件路径中包含文件名称,而目标驱动程序的属性信息中包含原始文件名称字段,在该原始文件名称字段中包含目标驱动程序的原始文件名称。终端可以获取目标驱动程序的属性信息包含的原始文件名称以及目标驱动程序的文件路径包含的文件名称,当这两个文件名称不匹配时,确定目标驱动程序具有第一预设行为。

目标驱动程序的属性信息中还包含签名信息,当该签名信息为错误的签名信息或者过期时,会导致签名信息验证不通过,则确定目标驱动程序具有第一预设行为。

目标驱动程序的属性信息可以如图4所示,文件名称为FDSOIvdaosfid.sys,签名信息是HT Sr1,但是该目标驱动程序运行之后的属性信息如图5所示,目标驱动程序当前的文件名称为FDSOIvdaosfid.sys,而属性信息中显示原始文件名称为tcpip.sys,签名信息为Microsoft Windows,并显示签名信息不可用,此时确定该目标驱动程序具有第一预设行为。

在另一实施例中,当目标驱动程序的属性信息包含的原始文件名称与目标驱动程序的文件路径包含的文件名称匹配,且目标驱动程序的属性信息中的签名信息验证通过时,确定该目标驱动程序不具有第一预设行为。

(2)当根据目标驱动程序的文件路径调用第一接口以获取目标驱动程序,但第一接口返回的结果为目标驱动程序不存在时,或者,当根据目标驱动程序的文件路径调用第二接口获取目标驱动程序的特征值,但第二接口返回的结果为无法获取到目标驱动程序的特征值时,确定目标驱动程序具有第二预设行为。

考虑到异常驱动程序通常会隐藏自身,从而导致在获取异常驱动程序时会返回该驱动程序不存在的结果,或者异常驱动程序通常会隐藏自身的特征值,从而实现隐藏自身内容的目的,则在获取异常驱动程序的特征值时会返回无法获取到特征值的结果,因此可以设置第二预设行为:获取驱动程序时驱动程序不存在,或者,获取驱动程序的特征值时无法获取。

第一接口是根据文件路径获取驱动程序的接口,将目标驱动程序的文件路径传入到第一接口,可以根据目标驱动程序的文件路径调用第一接口,以获取目标驱动程序,但是当第一接口返回的结果为目标驱动程序不存在时,确定目标驱动程序具有第二预设行为,表明目标驱动程序隐藏了自身,其很可能是异常驱动程序。

第二接口是根据文件路径获取相应的驱动程序的特征值的接口,将目标驱动程序的文件路径传入到第二接口,可以根据目标驱动程序的文件路径调用第二接口,以获取目标驱动程序的特征值,但是当第二接口返回的结果为无法获取到目标驱动程序的特征值时,确定目标驱动程序具有第二预设行为,表明目标驱动程序隐藏了自身的特征值,其很可能是异常驱动程序。

其中,该特征值是指与驱动程序唯一对应的数据,不同内容的驱动程序的特征值不同,如该特征值可以为MD5值或者其他类型的数值。

在另一实施例中,当根据目标驱动程序的文件路径调用第一接口以获取目标驱动程序,第一接口返回目标驱动程序时,且根据目标驱动程序的文件路径调用第二接口获取目标驱动程序的特征值,第二接口返回目标驱动程序的特征值时,确定目标驱动程序不具有第二预设行为。

(3)当目标驱动程序已注册指定回调函数时,确定目标驱动程序具有第三预设行为。

回调函数一般用于截获消息、获取系统信息或处理异步事件,考虑到异常驱动程序在隐藏自身或者自身的特征值,或者需要进行截获消息等操作时,通常会注册一些回调函数。因此可以设置第三预设行为:驱动程序已注册指定回调函数。

其中,预设回调函数为预先设置的回调函数,可以为定时器回调函数、注册表操作回调函数或者关机回调函数等,而指定回调函数为预设回调函数中的关键回调函数,即影响到终端安全性的回调函数,可以为关机回调函数等。如果目标驱动程序注册了指定回调函数,确定目标驱动程序具有第三预设行为,表明该目标驱动程序很有可能是异常驱动程序。

在另一实施例中,当目标驱动程序未注册指定回调函数时,确定目标驱动程序不具有第三预设行为。

需要说明的是,操作系统中会存储数据链表,该数据链表中会记录每个驱动程序所注册的回调函数,根据该数据链表可以确定目标驱动程序是否已注册指定回调函数。

(4)当白名单中不包括目标驱动程序的文件路径时,确定目标驱动程序具有第四预设行为。

终端可以设置白名单,该白名单中包括正常驱动程序的文件路径,而不包括异常驱动程序的文件路径,考虑到白名单中是否包括驱动程序的文件路径可以作为异常驱动程序的评判标准,因此可以设置第四预设行为:白名单中不包括驱动程序的文件路径。

将目标驱动程序的文件路径与白名单进行比对,判断白名单中是否包括目标驱动程序的文件路径,当白名单中不包括目标驱动程序的文件路径时,确定目标驱动程序具有第四预设行为,此时目标驱动程序不是正常驱动程序,其很可能是异常驱动程序。

在另一实施例中,当白名单中包括目标驱动程序的文件路径时,确定目标驱动程序不具有第四预设行为。

(5)根据目标驱动程序的文件路径和白名单中每个驱动程序的文件路径调用第二接口,获取到目标驱动程序的特征值以及白名单中每个驱动程序的特征值,当白名单中每个驱动程序的特征值组成的特征值集合中包括目标驱动程序的特征值,但白名单中不包括目标驱动程序的文件路径时,确定目标驱动程序具有第五预设行为。

终端可以设置白名单,该白名单中包括正常驱动程序的文件路径,而不包括异常驱动程序的文件路径,而有些异常驱动程序在隐藏自身的特征值时,会通过重定向到正常驱动程序的方式,将自身的特征值伪造成白名单中正常驱动程序的特征值,因此可以设置第五预设行为:白名单中每个驱动程序的特征值组成的特征值集合中包括驱动程序的特征值,但白名单中不包括该驱动程序的文件路径。

将目标驱动程序的文件路径和白名单中每个驱动程序的文件路径分别传入到第二接口,可以根据每个文件路径调用第二接口,获取相应的驱动程序的特征值。此时,可以将目标驱动程序的特征值与白名单中每个驱动程序的特征值进行比对,将目标驱动程序的文件路径与白名单中每个驱动程序的文件路径进行比对,当白名单中每个驱动程序的特征值组成的特征值集合中包括目标驱动程序的特征值,但白名单中不包括目标驱动程序的文件路径时,确定目标驱动程序具有第五预设行为,表明目标驱动程序的特征值是伪造了正常驱动程序的特征值,该目标驱动程序很可能是异常驱动程序。

203、当目标驱动程序具有预设条件规定的预设行为时,确定目标驱动程序为异常驱动程序。

当目标驱动程序具有预设条件规定的预设行为时,确定目标驱动程序为异常驱动程序,而当目标驱动程序不具有预设条件规定的预设行为时,确定目标驱动程序为正常驱动程序。

在一种可能实现方式中,预设条件可以包括多种独立的预设行为,只要目标驱动程序具有任一种预设行为,即可确定该目标驱动程序为异常驱动程序。

在一种可能实现方式中,考虑到仅根据一种预设行为来检测异常驱动程序时准确性较低,可能会将正常驱动程序误报为异常驱动程序,因此预设条件可以包括至少一种行为组合,每种行为组合中包括多种预设行为。只有当目标驱动程序具有任一种行为组合中的所有预设行为时,才会确定目标驱动程序为异常驱动程序。而当目标驱动程序仅具有某些预设行为,但是不具有每种行为组合中的所有预设行为时,确定目标驱动程序不是异常驱动程序。

可选地,预设条件中的一种行为组合可以包括第一预设行为、第二预设行为、第三预设行为和第四预设行为,则当目标驱动程序具有第一预设行为、第二预设行为、第三预设行为和第四预设行为时,确定目标驱动程序为异常驱动程序。

预设条件中另一种行为组合可以包括第一预设行为和第五预设行为,则当目标驱动程序具有第一预设行为和第五预设行为时,确定目标驱动程序为异常驱动程序。

相应地,基于预设条件中设置的上述两种行为组合,本发明实施例的操作流程可以如图6所示,可以先将目标驱动程序的原始文件名称与文件路径中的文件名称进行匹配,如果匹配则确定该目标驱动程序为正常驱动程序,如果不匹配则继续进行检测。如果目标驱动程序的特征值属于白名单中每个驱动程序的特征值组成的特征值集合,且目标驱动程序的文件路径不在白名单中,则确定目标驱动程序为异常驱动程序;如果目标驱动程序的特征值属于白名单中每个驱动程序的特征值组成的特征值集合,且目标驱动程序的文件路径在白名单中,则确定目标驱动程序为正常驱动程序。如果目标驱动程序不存在,但已注册指定钩子函数,文件路径也不在白名单中,则确定目标驱动程序为异常驱动程序;如果目标驱动程序不存在,但已注册指定钩子函数,文件路径也在白名单中,则确定目标驱动程序为正常驱动程序。

204、展示异常提示信息,异常提示信息中包括确定为异常驱动程序的目标驱动程序。其中,该异常提示信息用于提示用户所检测出的异常驱动程序。

本发明实施例中,如果在对目标驱动程序进行检测的过程中获取到目标驱动程序的文件路径,则展示异常提示信息时可以展示目标驱动程序的文件路径,以便用户获知当前检测出的异常驱动程序具体是哪一个驱动程序。

在另一实施例中,如果在对目标驱动程序进行检测的过程中未获取到目标驱动程序的文件路径,则展示异常提示信息时不再展示目标驱动程序的文件路径。

参见图7,当检测到了可疑驱动程序但是未获取到该可疑驱动程序的文件路径时,展示异常提示信息,提示用户系统目录下存在可疑驱动程序以及具体的描述。参见图8,当检测到了可疑驱动程序并且获取到该可疑驱动程序的文件路径为“C:\Windows\System32\drivers\fjtrgqgu.sys”,则展示异常提示信息时展示该文件路径。

在另一种可能实现方式中,该异常提示信息中包括确定为异常驱动程序的每个目标驱动程序的处理选项和确认选项。当终端检测到对显示的任一目标驱动程序的处理选项的选择操作时,表示用户希望删除该目标驱动程序,此时删除该目标驱动程序。例如,将该目标驱动程序删除后,缓存在隔离区中,后续用户希望恢复该目标驱动程序时,可以通过隔离区进行恢复。

而当终端检测到对显示的任一目标驱动程序的确认选项的选择操作时,表示用户确认信任该目标驱动程序,该目标驱动程序不是异常驱动程序,此时将该目标驱动程序确定为正常驱动程序。

参见图8,显示的异常提示信息中不仅包括目标驱动程序的文件路径,还包括处理选项“修复异常”和确认选项“信任”。当用户点击“修复异常”时,删除该目标驱动程序,将该目标驱动程序放入隔离区,之后用户打开如图9所示的查杀历史记录可以查看到该目标驱动程序,并通过点击“恢复”选项恢复该目标驱动程序。或者当用户点击“信任”时,将该目标驱动程序确定为正常驱动程序,此时该目标驱动程序不会被删除。

需要说明的是,本发明实施例提供的驱动程序处理方法可以在任意时刻执行,例如周期性地执行,或者在终端启动时执行,或者在接收到用户触发的检测指令时执行。

相关技术中,通常会根据包括已知的异常驱动程序的MD5值的异常特征库,对目标驱动程序的MD5值进行检测,从而检测出异常驱动程序。但是该检测方式依赖于异常特征库,只能检测出已知的异常驱动程序,而无法检测出未知的异常驱动程序,检测范围狭窄,准确性差。而且,很多异常驱动程序会隐藏自身或者自身的MD5值,甚至还会伪造MD5值,导致无法对这些驱动程序的实际MD5值进行检测,上述检测方式失效。

本发明实施例提供的方法,通过在预设条件中设置异常驱动程序的至少一种预设行为,并按照预设条件中至少一种预设行为的行为模式以及目标驱动程序的行为模式,对目标驱动程序进行行为分析,确定目标驱动程序是否具有预设条件规定的预设行为,当目标驱动程序具有预设条件规定的预设行为时,确定目标驱动程序为异常驱动程序。本发明实施例根据异常驱动程序的预设行为对目标驱动程序的行为进行检测,确定目标驱动程序是否为异常驱动程序,能够将具有干扰读取特征值、注册回调函数或者钩子函数等可疑行为的异常驱动程序均检测出来,不仅可以检测出已知的异常驱动程序,还可以检测出未知的异常驱动程序,检测范围全面,提高了准确性。

并且,通常实验确定,本发明实施例提供的驱动程序处理方法,每天检测出的异常驱动程序数量高达4万左右。

另外,相关技术中终端可以通过注册钩子函数来Hook(挂钩)某个应用程序,每次应用程序执行一些行为时,终端均可通过该钩子函数监控到该行为,因此通过Hook应用程序的方式可以确定应用程序执行了哪些行为。然而,Hook程序的方式不能适用于驱动程序,一旦Hook某个驱动程序,很可能会出现蓝屏或者Hook失败等问题,带来较大的风险,影响系统的正常运行。而本发明实施例在检测Rootkit的过程中分析目标驱动程序是否具有上述几种预设行为时,均无需Hook目标驱动程序,也即是能够在未Hook目标驱动程序的前提下对目标驱动程序进行行为分析,降低了风险,保证了系统的正常运行。

图10是本发明实施例提供的一种驱动程序处理方法的流程图,该驱动程序处理方法的执行主体为终端,参见图10,该方法包括:

1001、将已注册预设钩子函数的驱动程序和已注册预设回调函数的驱动程序确定为目标驱动程序。

回调函数一般用于截获消息、获取系统信息或处理异步事件,预设回调函数为预先设置的回调函数,可以为定时器回调函数、注册表操作回调函数或者关机回调函数等。而指定回调函数为预设回调函数中的关键回调函数,可以为关机回调函数等。

钩子函数一般用于处理系统消息,通过注册钩子函数,驱动程序可以对系统消息或事件进行过滤或者将对驱动程序的操作重定向至其他驱动程序。预设钩子函数为预先设置的钩子函数,可以为NTFS_FSD Hook、Inline Hook、SSDT Hook、Key_Obj Hook、Device_Obj Hook、CellRoutine_Obj Hook等函数。

考虑到异常驱动程序通常会注册一些回调函数或钩子函数,如Rootkit通常会注册注册表操作回调函数,利用注册表操作回调函数拦截对注册表的操作,或者注册磁盘钩子函数,利用磁盘钩子函数拦截对文件的读写操作等。因此,如果某一驱动程序注册了预设回调函数,或者,注册了预设钩子函数,表明该目标驱动程序很有可能是异常驱动程序,此时先将该驱动程序确定为待检测的目标驱动程序。

例如,操作系统中注册了关机回调函数的驱动程序包括:usbhub.sys、csc.sys、Fltmgr.sys,则这些驱动程序都需要进行扫描判定。

需要说明的是,操作系统中会存储数据链表,该数据链表中会记录每个驱动程序所注册的回调函数和钩子函数,根据该数据链表可以确定已注册预设回调函数的驱动程序和已注册预设钩子函数的驱动程序。

1002、获取预设条件,按照预设条件中至少一种预设行为的行为模式以及目标驱动程序的行为模式,对目标驱动程序进行行为分析,确定目标驱动程序是否具有预设条件规定的预设行为。

本发明实施例中,可以设置一些异常驱动程序常出现的预设行为,将异常驱动程序的至少一种预设行为作为预设条件。当确定目标驱动程序时,即可对目标驱动程序进行行为分析,并按照预设条件中至少一种预设行为的行为模式与目标驱动程序的行为模式进行对比,从而确定目标驱动程序具有哪些预设行为。

在一种可能实现方式中,该步骤1002可以包括以下至少一项:

(1)对于已注册预设钩子函数的目标驱动程序,可以判断该目标驱动程序是否已注册指定钩子函数,当目标驱动程序已注册指定钩子函数时,确定目标驱动程序具有第六预设行为。

其中,指定钩子函数为预设钩子函数中的关键钩子函数,即影响到终端安全性的钩子函数,如关机钩子函数等。

考虑到异常驱动程序在隐藏自身或者自身的特征值,或者需要进行截获消息等操作时,通常会注册一些关键的钩子函数,如Rootkit通常会注册关机回调函数,利用关机回调函数在终端关机时回写注册表,篡改注册表中的内容。因此可以设置第六预设行为:驱动程序已注册指定钩子函数。如果目标驱动程序注册了指定钩子函数,确定目标驱动程序具有第六预设行为,表明该目标驱动程序很有可能是异常驱动程序。

(2)当调用第三接口以获取目标驱动程序的文件路径,但第三接口返回的结果为无法获取到目标驱动程序的文件路径时,确定目标驱动程序具有第七预设行为。

考虑到异常驱动程序通常会隐藏自身的文件路径,因此可以设置第七预设行为:无法获取目标驱动程序的文件路径。

第三接口是获取驱动程序的文件路径的接口,将目标驱动程序传入到第三接口,可以调用第三接口来获取目标驱动程序的文件路径,但是当第三接口返回的结果为无法获取到目标驱动程序的文件路径时,确定目标驱动程序具有第七预设行为,表明目标驱动程序隐藏了自身的文件路径,其很可能是异常驱动程序。

(3)当调用第三接口获取到目标驱动程序的文件路径时,根据目标驱动程序的文件路径,对目标驱动程序进行行为分析,确定目标驱动程序的行为。其中,根据该目标驱动程序的文件路径进行行为分析的过程与上述步骤202类似,在此不再赘述。

1003、当目标驱动程序具有预设条件规定的预设行为时,确定目标驱动程序为异常驱动程序,预设条件包括异常驱动程序的至少一种预设行为。

终端可以将异常驱动程序的至少一种预设行为作为预设条件,根据目标驱动程序的行为判断该目标驱动程序是否具有预设条件规定的预设行为,当目标驱动程序具有预设条件规定的预设行为时,确定目标驱动程序为异常驱动程序,而当目标驱动程序不具有预设条件规定的预设行为时,确定目标驱动程序为正常驱动程序。

在一种可能实现方式中,预设条件可以包括多种独立的预设行为,只要目标驱动程序具有任一种预设行为,即可确定该目标驱动程序为异常驱动程序。

在一种可能实现方式中,考虑到仅根据一种预设行为来检测异常驱动程序时准确性较低,可能会将正常驱动程序误报为异常驱动程序,因此预设条件可以包括至少一种行为组合,每种行为组合中包括多种预设行为。只有当目标驱动程序具有任一种行为组合中的所有预设行为时,才会确定目标驱动程序为异常驱动程序。而当目标驱动程序仅具有某些预设行为,但是不具有每种行为组合中的所有预设行为时,确定目标驱动程序不是异常驱动程序。

可选地,预设条件中一种行为组合可以包括第六预设行为和第七预设行为,则当目标驱动程序具有第六预设行为和第七预设行为时,确定目标驱动程序为异常驱动程序。

相应地,本发明实施例的操作流程可以如图11所示,可以先将已注册预设钩子函数的驱动程序和已注册预设回调函数的驱动程序作为目标驱动程序,判断目标驱动程序是否已注册指定钩子函数。如果目标驱动程序没有注册指定钩子函数则确定为正常驱动程序;如果目标驱动程序已注册指定钩子函数,则判断是否能获取到目标驱动程序的文件路径,如果无法获取到目标驱动程序的文件路径,则确定为异常驱动程序,如果获取到了目标驱动程序的文件路径则根据该文件路径继续进行行为分析,并根据目标驱动程序的行为继续判断其是否为异常驱动程序。

预设条件中的另一种行为组合可以包括第一预设行为、第二预设行为、第三预设行为和第四预设行为,则当目标驱动程序具有第一预设行为、第二预设行为、第三预设行为和第四预设行为时,确定目标驱动程序为异常驱动程序。

预设条件中再一种行为组合可以包括第一预设行为和第五预设行为,则当目标驱动程序具有第一预设行为和第五预设行为时,确定目标驱动程序为异常驱动程序。

1004、展示异常提示信息,异常提示信息中包括确定为异常驱动程序的目标驱动程序。其中,该步骤1004与步骤204类似,在此不再赘述。

本发明实施例提供的方法,通过在预设条件中设置异常驱动程序的至少一种预设行为,并对目标驱动程序进行行为分析,确定目标驱动程序的行为,当目标驱动程序具有预设条件规定的预设行为时,确定目标驱动程序为异常驱动程序。本发明实施例根据异常驱动程序的预设行为对目标驱动程序的行为进行检测,确定目标驱动程序是否为异常驱动程序,不仅可以检测出已知的异常驱动程序,还可以检测出未知的异常驱动程序,检测范围全面,提高了准确性。

另外,本发明实施例在检测Rootkit的过程中分析目标驱动程序是否具有上述几种预设行为时,均无需Hook目标驱动程序,也即是能够在未Hook目标驱动程序的前提下对目标驱动程序进行行为分析,降低了风险,保证了系统的正常运行。

需要说明的是,上述图2和图10所示实施例中,以两种不同的方式确定待检测的目标驱动程序,进而对两种来源的目标驱动程序进行检测。而在实际应用中,除上述两种方式之外还可以采用其他方式确定待检测的目标驱动程序。

图12是本发明实施例提供的一种驱动程序处理装置的结构示意图。参见图12,该装置应用于终端中,该装置包括:

程序确定模块1201,用于执行上述实施例中确定目标驱动程序的步骤;

获取模块1202,用于获取预设条件,所述预设条件包括异常驱动程序的至少一种预设行为;

行为分析模块1203,用于执行上述实施例中确定目标驱动程序的行为的步骤;

检测模块1204,用于执行上述实施例中确定目标驱动程序为异常驱动程序的步骤。

可选地,程序确定模块1201,包括:

解析单元,用于执行上述实施例中解析注册表文件的步骤;

第一确定单元,用于执行上述实施例中确定目标驱动程序的文件路径的步骤。

可选地,行为分析模块1203包括以下至少一个:

第一行为分析单元,用于执行上述实施例中确定目标驱动程序具有第一预设行为的步骤;

第二行为分析单元,用于执行上述实施例中确定目标驱动程序具有第二预设行为的步骤;

第三行为分析单元,用于执行上述实施例中确定目标驱动程序具有第三预设行为的步骤;

第四行为分析单元,用于执行上述实施例中确定目标驱动程序具有第四预设行为的步骤;

第五行为分析单元,用于执行上述实施例中确定目标驱动程序具有第五预设行为的步骤。

可选地,检测模块1204,包括:

第一检测单元,用于执行上述实施例中当目标驱动程序具有第一预设行为、第二预设行为、第三预设行为和第四预设行为时,确定目标驱动程序为异常驱动程序的步骤;

第二检测单元,用于执行上述实施例中当目标驱动程序具有第一预设行为和第五预设行为时,确定目标驱动程序为异常驱动程序的步骤。

可选地,程序确定模块1201,包括以下至少一个:

第二确定单元,用于执行上述实施例中将已注册预设钩子函数的驱动程序确定为目标驱动程序的步骤;

第三确定单元,用于执行上述实施例中将已注册预设回调函数的驱动程序确定为目标驱动程序的步骤。

可选地,行为分析模块1203包括以下至少一个:

第六行为分析单元,用于执行上述实施例中确定目标驱动程序具有第六预设行为的步骤;

第七行为分析单元,用于执行上述实施例中确定目标驱动程序具有第七预设行为的步骤;

第八行为分析单元,用于执行上述实施例中当调用第三接口获取到目标驱动程序的文件路径时,根据目标驱动程序的文件路径,对目标驱动程序进行行为分析,确定目标驱动程序的行为的步骤。

可选地,检测模块1204,包括:

第三检测单元,用于执行上述实施例中当目标驱动程序具有第六预设行为和第七预设行为时,确定目标驱动程序为异常驱动程序的步骤。

可选地,预设条件包括至少一种行为组合,每种行为组合中包括多种预设行为,检测模块1204,还用于执行上述实施例中当目标驱动程序具有任一种行为组合中的所有预设行为时,确定目标驱动程序为异常驱动程序的步骤。

图13是本发明实施例提供的一种驱动程序处理装置的结构示意图。参见图13,该装置应用于终端中,该装置包括:

程序确定模块1301,用于执行上述实施例中确定目标驱动程序的步骤;

检测模块1302,用于执行上述实施例中将具有预设条件规定的预设行为的目标驱动程序确定为异常驱动程序的步骤;

展示模块1303,用于执行上述实施例中展示异常提示信息的步骤。

可选地,展示模块1303,还用于执行上述实施例中展示目标驱动程序的文件路径的步骤。

可选地,异常提示信息中包括确定为异常驱动程序的目标驱动程序及每个目标驱动程序的处理选项和确认选项,装置还包括:

第一处理模块,用于执行上述实施例中删除任一目标驱动程序的步骤;或者,

第二处理模块,用于执行上述实施例中当检测到对任一目标驱动程序的确认选项的选择操作时将任一目标驱动程序确定为正常驱动程序的步骤。

需要说明的是:上述实施例提供的驱动程序处理装置在处理驱动程序时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的驱动程序处理装置与驱动程序处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图14示出了本发明一个示例性实施例提供的终端1400的结构框图。该终端1400可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1400还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端1400包括有:处理器1401和存储器1402。

处理器1401可以包括一个或多个处理核心,比如4核心处理器、5核心处理器等。处理器1401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器1402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1401所具有以实现本申请中方法实施例提供的驱动程序处理方法。

在一些实施例中,终端1400还可选包括有:外围设备接口1403和至少一个外围设备。处理器1401、存储器1402和外围设备接口1403之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1403相连。具体地,外围设备包括:射频电路1404、触摸显示屏1405、摄像头1406、音频电路1407、定位组件1408和电源1409中的至少一种。

外围设备接口1403可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1401和存储器1402。在一些实施例中,处理器1401、存储器1402和外围设备接口1403被集成在同一芯片或电路板上;在一些其他实施例中,处理器1401、存储器1402和外围设备接口1403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1404包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及14G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏1405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1405是触摸显示屏时,显示屏1405还具有采集在显示屏1405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1401进行处理。此时,显示屏1405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1405可以为一个,设置终端1400的前面板;在另一些实施例中,显示屏1405可以为至少两个,分别设置在终端1400的不同表面或呈折叠设计;在再一些实施例中,显示屏1405可以是柔性显示屏,设置在终端1400的弯曲表面上或折叠面上。甚至,显示屏1405还可以设置成非矩形的不规则图形,也即异形屏。显示屏1405可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。

摄像头组件1406用于采集图像或视频。可选地,摄像头组件1406包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1401进行处理,或者输入至射频电路1404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1401或射频电路1404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1407还可以包括耳机插孔。

定位组件1408用于定位终端1400的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1408可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。

电源1409用于为终端1400中的各个组件进行供电。电源1409可以是交流电、直流电、一次性电池或可充电电池。当电源1409包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端1400还包括有一个或多个传感器1410。该一个或多个传感器1410包括但不限于:加速度传感器1411、陀螺仪传感器1412、压力传感器1413、指纹传感器1414、光学传感器1415以及接近传感器1416。

加速度传感器1411可以检测以终端1400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1411可以用于检测重力加速度在三个坐标轴上的分量。处理器1401可以根据加速度传感器1411采集的重力加速度信号,控制触摸显示屏1405以横向视图或纵向视图进行用户界面的显示。加速度传感器1411还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1412可以检测终端1400的机体方向及转动角度,陀螺仪传感器1412可以与加速度传感器1411协同采集用户对终端1400的3D动作。处理器1401根据陀螺仪传感器1412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1413可以设置在终端1400的侧边框和/或触摸显示屏1405的下层。当压力传感器1413设置在终端1400的侧边框时,可以检测用户对终端1400的握持信号,由处理器1401根据压力传感器1413采集的握持信号进行左右手识别或快捷操作。当压力传感器1413设置在触摸显示屏1405的下层时,由处理器1401根据用户对触摸显示屏1405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1414用于采集用户的指纹,由处理器1401根据指纹传感器1414采集到的指纹识别用户的身份,或者,由指纹传感器1414根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1401授权该用户具有相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1414可以被设置终端1400的正面、背面或侧面。当终端1400上设置有物理按键或厂商Logo时,指纹传感器1414可以与物理按键或厂商标志集成在一起。

光学传感器1415用于采集环境光强度。在一个实施例中,处理器1401可以根据光学传感器1415采集的环境光强度,控制触摸显示屏1405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1405的显示亮度;当环境光强度较低时,调低触摸显示屏1405的显示亮度。在另一个实施例中,处理器1401还可以根据光学传感器1415采集的环境光强度,动态调整摄像头组件1406的拍摄参数。

接近传感器1416,也称距离传感器,通常设置在终端1400的前面板。接近传感器1416用于采集用户与终端1400的正面之间的距离。在一个实施例中,当接近传感器1416检测到用户与终端1400的正面之间的距离逐渐变小时,由处理器1401控制触摸显示屏1405从亮屏状态切换为息屏状态;当接近传感器1416检测到用户与终端1400的正面之间的距离逐渐变大时,由处理器1401控制触摸显示屏1405从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图14中示出的结构并不构成对终端1400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

本发明实施例还提供了一种驱动程序处理装置,该驱动程序处理装置包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,指令、程序、代码集或指令集由处理器加载并具有以实现上述实施例的驱动程序处理方法中所具有的操作。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并具有以实现上述实施例的驱动程序处理方法中所具有的操作。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1