一种文件解锁的方法及装置的制作方法

文档序号:6427263阅读:100来源:国知局
专利名称:一种文件解锁的方法及装置的制作方法
技术领域
本发明涉及计算机安全的技术领域,特别是涉及ー种文件解锁的方法和一种文件解锁的装置。
背景技术
计算机病毒是指“編制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。计算机一旦染上病毒,计算机通常表现为其文件被増加、删出、改变名称或属性、移动到其它目录下,病毒对计算机文件的这些操作,可能会导致正常的程序无法运行、计算机操作系统崩溃、计算机被远程控制、用户信息被盗用等一系列的问题。为了保证计算机的安全运行,需要对计算机中感染病毒的文件进行病毒查杀,以防止和清除病毒的破坏。在安全软件领域,针对染毒计算机文件的“删除”与“反删除”是 安全软件和恶意程序(计算机病毒)对抗的永恒主题之一。现有技术中的病毒,往往通过文件权限、所有者限制以及文件共享属性独占等手段给染毒文件加上了加密锁,采用常规手段无法破解加密锁即无法删除染毒文件,这些手段阻止杀毒软件查杀染毒文件。安全软件查杀病毒的过程,可以理解为对染毒文件进行解锁和粉碎。现有安全软件,对染毒文件的解锁和粉碎手段単一,无法破除染毒文件设置的层层保护,对抗能力不强。传统安全软件厂商只解决了部分“反删除”问题,在操作系统内核态的攻防上往往体现出一定的能力缺失,驱动级恶意程序(Rootkit)对抗能力偏弱。因此,目前需要本领域技术人员迫切解决的ー个技术问题就是提出一种文件解锁的处理机制,不仅提供操作系统用户态的攻防,还进ー步提供操作系统内核态的攻防,在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,以增强和驱动级恶意程序攻防的对抗能力。

发明内容
本发明所要解决的技术问题是提供一种文件解锁的方法,以增强和驱动级恶意程序攻防的对抗能力。本发明还提供了一种文件解锁的装置,用以保证上述方法在实际中的应用及实现。为了解决上述问题,本发明实施例公开了ー种文件解锁的方法,包括调用操作系统应用程序接ロ API打开目标文件;若所述目标文件无法打开,则判断其返回值是否满足预设类型;若是,则调用自定义的用于文件打开的应用程序接ロ对所述目标文件进行操作,具体包括获取文件操作请求,所述请求中包括调用者输入參数,所述输入參数中包括文件路径;
依据所述文件路径在对象管理器中查找对应的文件对象解析例程;若查找到对应的文件对象解析例程,则依据所述文件对象解析例程生成I/O请求包,并发送至预置的文件系统下层设备的原始地址。优选的,所述I/O请求包中包括从文件操作请求中提取的文件操作信息,在发送I/o请求包至预置的文件系统下层设备的原始地址之后,所述调用自定义的用于文件打开的应用程序接ロ对所述目标文件进行操作的步骤还包括由所述文件系统下层设备依据所述文件操作信息执行对应的文件操作。优选的,所述文件操作请求包括目标文件打开请求,所述文件操作信息包括目标文件打开操作,所述文件系统下层设备依据所述文件操作信息执行打开所述目标文件的操作。
优选的,所述文件操作请求还包括目标文件删除请求,所述文件操作信息还包括目标文件删除操作,所述文件系统下层设备依据所述文件操作信息在打开所述目标文件后,执行所述目标文件的删除操作。优选的,所述预设类型包括文件共享属性独占类型。优选的,所述预设类型还包括文件权限、所有者限制的类型。优选的,所述依据文件路径在对象管理器中查找对应的文件对象解析例程的步骤具体包括以下子步骤;子步骤SI、判断文件路径是否已经拆解完毕,若否,则执行子步骤S2 ;若是,则执行子步骤S4 ;子步骤S2、按照路径分隔符拆解出文件路径中下一个待拆解的路径段;子步骤S3、采用当前拆解出的路径段在对象管理器中捜索,判断是否存在对应的文件对象例程;若是,则返回子步骤S I ;若否,则执行子步骤S5 ;子步骤S4、获得所述文件路径对应的文件对象解析例程。子步骤S5、返回未找到对应文件对象解析例程的信息。本发明实施例还公开了一种文件解锁的装置,包括API调用模块,用于调用操作系统应用程序接ロ API打开目标文件;返回码判断模块,用于在所述目标文件无法打开时,判断其返回值是否满足预设类型;若是,则调用文件穿透操作模块;文件穿透操作模块,用于调用自定义的用于文件打开的应用程序接ロ对所述目标文件进行操作,具体包括内核态请求获取子模块,用于获取文件操作请求,所述请求中包括调用者输入參数,所述输入參数中包括文件路径;内核态对象解析子模块,用于依据所述文件路径在对象管理器中查找对应的文件对象解析例程;若查找到对应的文件对象解析例程,则调用内核态IRP生成发送子模块;内核态IRP生成发送子模块,用于依据所述文件对象解析例程生成I/O请求包,并发送至预置的文件系统下层设备的原始地址。优选的,所述I/O请求包中包括从文件操作请求中提取的文件操作信息,所述文件系统下层设备用于依据所述文件操作信息执行对应的文件操作。优选的,所述文件操作请求包括目标文件打开请求,所述文件操作信息包括目标文件打开操作,所述文件系统下层设备依据所述文件操作信息执行打开所述目标文件的操作。优选的,所述文件操作请求还包括目标文件删除请求,所述文件操作信息还包括目标文件删除操作,所述文件系统下层设备依据所述文件操作信息在打开所述目标文件后,执行所述目标文件的删除操作。优选的,所述预设类型包括文件共享属性独占类型。优选的,所述预设类型还包括文件权限、所有者限制的类型。优选的,所述内核态对象解析子模块具体包括以下单元;文件路径拆解単元,用于按照路径分隔符逐级拆解出文件路径中的路径段;
对象管理器搜索单元,用于采用当前拆解出的路径段在对象管理器中捜索,查找对应的文件对象例程。与现有技术相比,本发明具有以下优点本发明通过在操作系统用户态接ロ完整实现ー套文件操作调用库,当调用操作系统应用程序接ロ API无法打开目标文件时,在其返回值为文件共享属性独占,或者,文件权限、所有者限制的情况下,调用本发明实现的自定义应用程序接ロ BAPI对所述目标文件进行文件解锁和粉碎的操作。本发明不仅提供了操作系统用户态的攻防,还进一歩提供了操作系统内核态的攻防,在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,增强了和驱动级恶意程序攻防的对抗能力。本发明中调用者进程发起文件操作请求,调用对应的自定义文件操作接ロ例程,操作系统内核态驱动获取并校验所述来自用户态的请求,构建查询数据结构循环解析传入的文件路径,最终查找到对象管理器中维护的对象类型,这ー过程有效对抗了内核态的劫持内险。此后,操作系统内核态驱动构建并填充IRP请求数据包,发送至预先确定的文件系统下层设备的原始地址处,此时文件系统调用栈上的第三方过滤驱动,包括其他安全软件和驱动级恶意程序可以被穿透,从而既可以有效避免因文件操作干扰而导致和其他安全软件间产生不兼容的潜在可能性;又可以增强和驱动级恶意程序攻防时的对抗能力。本发明实施例中所采用的文件路径解析方法还能动态解析目标文件路径,例如,对于动态映射的网络磁盘驱动器,通过搜索对象管理器就能动态获得DOS-Style文件路径格式、盘符和文件系统下层设备对象之间的对应处理关系,因而本发明实施例还有适用范围广,适用场景多的优点。


图I是本发明的一种文件解锁的方法实施例的步骤流程图;图2是本发明的一种优选实施例中,所述依据文件路径在对象管理器中查找对应的文件对象解析例程的步骤流程图;图3是本发明的ー种具体示例中在对象管理器中进行搜索的第一示意图;图4是本发明的ー种具体示例中在对象管理器中进行搜索的第二示意图;图5是本发明的ー种具体示例中在对象管理器中进行搜索的第三示意图;图6是本发明的另一具体示例中在对象管理器中进行搜索的第四示意图;图7是本发明的另一具体示例中在对象管理器中进行搜索的第五示意图8是本发明的另一具体示例中在对象管理器中进行搜索的第六示意图;图9是本发明的一种文件解锁的方法实施例2的步骤流程图;图10是操作系统文件操作执行流的示意图;图11是应用本发明实施例实现的文件操作执行流示意图;图12是本发明的一种文件解锁的装置实施例的结构框图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进ー步详细的说明。本发明实施例的核心构思之ー在于,在操作系统用户态接ロ完整实现ー套文件操 作调用库,当调用操作系统应用程序接ロ API无法打开目标文件时,在其返回值为文件共享属性独占,或者,文件权限、所有者限制的情况下,调用本发明实现的自定义应用程序接ロ BAPI对所述目标文件进行文件解锁和粉碎的操作。參考图I,示出了本发明的ー种文件解锁的方法实施例的步骤流程图,具体可以包括以下步骤步骤101、调用操作系统应用程序接ロ API打开目标文件;例如,调用微软操作系统的API =CreateFile函数打开指定文件路径和文件名的目标文件,如C:\test. txt ο需要说明的是,在本发明实施例中,所述文件打开不是指通过双击鼠标或按回车键等触发方式打开文件(如*. exe、*. doc等类型的文件);而是指用操作系统API或本发明的自定义BAPI (应用本发明,可以在操作系统用户态接ロ完整实现ー套文件操作调用库)的CreateFileO函数等打开文件、得到文件句柄的操作,因为只有得到文件句柄后才可以进ー步操作该文件。从函数调用方法角度而言,本发明实施例中所指文件“打开”主要包括以下几种情形I、使用Windows标准API CreateFile函数打开目标文件;2、使用 Windows Native API ZwCreateFile/NtCreateFile 函数打开目标文件;3、使用 Windows Native API ZwOpenFile/NtOpenFile 函数打开目标文件其中,CreateFile的參数dwCreationDisposition可以控制函数行为是“创建新文件”还是“打开已经存在的文件”。在具体实现中,需要粉碎的目标文件都需要先进行解锁打开。例如,调用调用微软操作系统的API DeleteFile函数,该函数包含ー个输入參数lpFileName,即目标文件的路径,这个路径要先被打开(调用CreateFile例程得到对应的文件句柄),然后才能被删除。步骤102、若所述目标文件无法打开,则判断其返回值是否满足预设类型; 在本发明的一种优选实施例中,所述预设类型包括文件共享属性独占类型。具体而言,如果文件被驱动级恶意程序劫持,则文件打开的过程可能会触发共享冲突的问题。在这种情况下,操作系统的API会反馈文件共享属性独占的错误返回值。例如,如果目标文件C:\test. txt文件已经被进程A独占打开(独占的方法是调用 CreateFile 函数时,dwShareMode 參数域传空-The objectcannot be shared),那么,
其它任意进程再尝试打开这个文件的时候(调用CreateFile函数)都将得到错误返回值ERROR_SHARING_VIOLATION。其中,ERROR_SHARING_VIOLATION 是ー个数值,为 32。它的定义位于微软WINERR0R. H头文件中,如下
Il
Il Messageld: ERROR—SHARING—VIOLATION
Il
Ii MessageText:
Il
Il The process cannot access the file because Il it is being used by another process.
Il
#define ERROR—SHARING—VIOLATION32L在本发明ー种更为优选的实施例中,所述预设类型还可以包括文件权限、所有者限制的类型。具体而言,如果文件被驱动级恶意程序劫持,则文件打开的过程可能会触发操作无权限的问题。在这种情况下,操作系统的API会反馈文件权限、所有者限制的错误返回值。“权限限制”是微软设计操作系统时的ー种细粒度访问控制机制,Windows操作系统内核有专门的功能模块(缩写为Se,全称是Security),设计的原则要符合美国C2级操作系统的安全标准。目前微软操作系统中权限限制细粒度的体现在如下方面(I)完全控制;(2)遍历文件夹/运行文件;(3)列出文件夹/运行数据;(4)读取属性;(5)读取扩展属性;(6)创建文件/写入数据;(7)创建文件夹/附加数据;(8)写入属性;(9)写入扩展属性;(10)删除;(11)读取权限;(12)更改权限;(13)取得所有权。
Windows操作系统导出了一组权限操作的API,如GetNamedSecurityInfo函数、AccessCheck函数等。其中,GetNamedSecurityInfo函数主要是用于得到目标(如指定文件)的安全描述符(Security Descriptor简称SD,这是操作系统权限相关的ー个基本数据结构),AccessCheck函数主要是用于基于安全描述符查询目标权限限制情況。对于调用者而言,成功将得到返回值ERROR_SUCCESS,ERROR_SUCCESS是ー个数值,为0,表示成功;失败将得到错误返回值ERROR_ACCESS_DENIED,ERROR_ACCESS_DENIED是ー个数值,为5。它的定义位于微软WINERR0R. H头文件中,如下
权利要求
1.一种文件解锁的方法,其特征在于,包括 调用操作系统应用程序接口 API打开目标文件; 若所述目标文件无法打开,则判断其返回值是否满足预设类型; 若是,则调用自定义的用于文件打开的应用程序接口对所述目标文件进行操作,具体包括 获取文件操作请求,所述请求中包括调用者输入参数,所述输入参数中包括文件路径; 依据所述文件路径在对象管理器中查找对应的文件对象解析例程; 若查找到对应的文件对象解析例程,则依据所述文件对象解析例程生成I/o请求包,并发送至预置的文件系统下层设备的原始地址。
2.如权利要求I所述的方法,其特征在于,所述I/O请求包中包括从文件操作请求中提取的文件操作信息,在发送I/O请求包至预置的文件系统下层设备的原始地址之后,所述调用自定义的用于文件打开的应用程序接口对所述目标文件进行操作的步骤还包括 由所述文件系统下层设备依据所述文件操作信息执行对应的文件操作。
3.如权利要求2所述的方法,其特征在于,所述文件操作请求包括目标文件打开请求,所述文件操作信息包括目标文件打开操作,所述文件系统下层设备依据所述文件操作信息执行打开所述目标文件的操作。
4.如权利要求3所述的方法,其特征在于,所述文件操作请求还包括目标文件删除请求,所述文件操作信息还包括目标文件删除操作,所述文件系统下层设备依据所述文件操作信息在打开所述目标文件后,执行所述目标文件的删除操作。
5.如权利要求1、2、3或4所述的方法,其特征在于,所述预设类型包括文件共享属性独占类型。
6.如权利要求5所述的方法,其特征在于,所述预设类型还包括文件权限、所有者限制的类型。
7.如权利要求1、2、3或4所述的方法,其特征在于,所述依据文件路径在对象管理器中查找对应的文件对象解析例程的步骤具体包括以下子步骤; 子步骤SI、判断文件路径是否已经拆解完毕,若否,则执行子步骤S2 ;若是,则执行子步骤S4 ; 子步骤S2、按照路径分隔符拆解出文件路径中下一个待拆解的路径段; 子步骤S3、采用当前拆解出的路径段在对象管理器中搜索,判断是否存在对应的文件对象例程;若是,则返回子步骤S I ;若否,则执行子步骤S5 ; 子步骤S4、获得所述文件路径对应的文件对象解析例程。
子步骤S5、返回未找到对应文件对象解析例程的信息。
8.一种文件解锁的装置,其特征在于,包括 API调用模块,用于调用操作系统应用程序接口 API打开目标文件; 返回码判断模块,用于在所述目标文件无法打开时,判断其返回值是否满足预设类型;若是,则调用文件穿透操作模块; 文件穿透操作模块,用于调用自定义的用于文件打开的应用程序接口对所述目标文件进行操作,具体包括内核态请求获取子模块,用于获取文件操作请求,所述请求中包括调用者输入参数,所述输入参数中包括文件路径; 内核态对象解析子模块,用于依据所述文件路径在对象管理器中查找对应的文件对象解析例程;若查找到对应的文件对象解析例程,则调用内核态IRP生成发送子模块; 内核态IRP生成发送子模块,用于依据所述文件对象解析例程生成I/O请求包,并发送至预置的文件系统下层设备的原始地址。
9.如权利要求8所述的装置,其特征在于,所述I/O请求包中包括从文件操作请求中提取的文件操作信息,所述文件系统下层设备用于依据所述文件操作信息执行对应的文件操作。
10.如权利要求9所述的装置,其特征在于,所述文件操作请求包括目标文件打开请求,所述文件操作信息包括目标文件打开操作,所述文件系统下层设备依据所述文件操作 信息执行打开所述目标文件的操作。
11.如权利要求10所述的装置,其特征在于,所述文件操作请求还包括目标文件删除请求,所述文件操作信息还包括目标文件删除操作,所述文件系统下层设备依据所述文件操作信息在打开所述目标文件后,执行所述目标文件的删除操作。
12.如权利要求8、9、10或11所述的装置,其特征在于,所述预设类型包括文件共享属性独占类型。
13.如权利要求12所述的装置,其特征在于,所述预设类型还包括文件权限、所有者限制的类型。
14.如权利要求8、9、10或11所述的装置,其特征在于,所述内核态对象解析子模块具体包括以下单元; 文件路径拆解单元,用于按照路径分隔符逐级拆解出文件路径中的路径段; 对象管理器搜索单元,用于采用当前拆解出的路径段在对象管理器中搜索,查找对应的文件对象例程。
全文摘要
本发明提供了一种文件解锁的方法及装置,其中所述方法包括调用操作系统应用程序接口API打开目标文件;若所述目标文件无法打开,则判断其返回值是否满足预设类型;若是,则调用自定义的用于文件打开的应用程序接口对所述目标文件进行操作,具体包括获取文件操作请求,所述请求中包括调用者输入参数,所述输入参数中包括文件路径;依据所述文件路径在对象管理器中查找对应的文件对象解析例程;若查找到对应的文件对象解析例程,则依据所述文件对象解析例程生成I/O请求包,并发送至预置的文件系统下层设备的原始地址。本发明可以在复杂的客户端环境中识别恶意程序的文件自保护行为并加以对抗,以增强和驱动级恶意程序攻防的对抗能力。
文档编号G06F21/56GK102855433SQ201110175399
公开日2013年1月2日 申请日期2011年6月27日 优先权日2011年6月27日
发明者王宇, 周鸿祎 申请人:奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1