国際・国内特許データベース検索
このアプリケーションの一部のコンテンツは現時点では利用できません。
このような状況が続く場合は、にお問い合わせくださいフィードバック & お問い合わせ
1. (CN102194079) File access filtering method
注意: このテキストは、OCR 処理によってテキスト化されたものです。法的な用途には PDF 版をご利用ください。
文件访问过滤方法


技术领域
本发明涉及网络安全技术领域,特别涉及一种文件访问过滤方 法。
背景技术
随着电脑和互联网越来越成为人们生活中不可缺少的一部分,个 人文件安全问题越来越受到重视。很多恶意程序或木马在用户不知道 的情况下偷偷扫描用户的文件,甚至把文件上传到指定的服务器上。
在Windows平台下,操作系统分为两部分:用户层(也叫做Ring3 层)和内核层(也叫做Ring0层)。Windows所提供的API接口都是 从Ring3层调用Ring0层内核函数来实现功能的。可以这样讲,如果 要达到保护电脑、保护文件,在Ring0层采取措施是必不可少的。
目前市场上开发的文件保护产品,采用的技术之一就是通过对 Windows内核函数ZwCreateFile函数进行挂钩(HOOK),达到控制 文件操作、保护文件的目的。
众所周知,Windows下文件的访问首先要调用ZwCreateFile拿到 文件的句柄,通过文件的句柄再进一步操作文件的读、写、删除等操 作。如果在ZwCreateFile函数中加入拦截代码,就可以得到所有操作 文件的动作,文件路径、权限、进程等参数。挂钩的具体实现过程: 通过windows内核的SSDT(System Services Descriptor Table,系统 服务描述表)表,搜索到ZwCreateFile函数地址。替换成自定义的 MyCreateFile函数地址,在MyCreateFile中调用原始系统ZwCreateFile 函数,这样就达到挂钩windows函数的完整流程。监控的具体实现过 程:在自定义函数MyCreateFile函数中,首先得到用户想要操作文件 的文件路径,和当前进程等参数。根据允许进程和文件路径,文件类 型的白名单列表进行对比,看看是否允许通过。如果符合条件存在于 白名单中,将继续调用系统函数ZwCreateFile函数。不符合条件或者 没有存在白名单中,将不调用ZwCreateFile函数,直接返回失败。这 样就到达监控文件访问的目的。
以上实现方法的缺陷在于:1、效率比较低:由于文件和文件夹 的访问都要经过ZwCreateFile函数,所以很多路径的对比其实都是针 对设备和文件夹路径的对比。由于白名单比较长,要完全对比一遍效 率自然会下降很多,而且这些对比会带来多余的内存和CPU资源的消 耗,增加了系统的不稳定风险。2、没有记录那些文件曾经被非法操 作:用户的文件被非法操作,利用产品对其进行了保护,但是用户并 不知道那些文件被那个进程非法操作过,这样这个进程还会有机会再 次操作文件。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提供一种执行效率高、方便用 户进一步采取措施保护个人文件的文件访问过滤方法。
(二)技术方案
为解决上述技术问题,本发明提供了一种文件访问过滤方法,包 括以下步骤:
S1、处理I/O请求包IRP请求类别和退出驱动请求,并安装相 对应的派遣函数;
S2、处理用户层调用,并向内核层发出调用命令;
S3、在所述自定义函数中调用所述Windows内核函数时通过参 数拿到传入的句柄Handle,通过调用系统的内核函数查询该Handle 对应的路径是否是文件夹路径;如果是文件夹路径,并且不包含磁盘 盘符,则不进行对比;如果是文件路径,则在所述白名单中进行比较, 如果该文件路径不在所要保护的文件路径的白名单范围之内说明该 文件路径不在允许访问的范围之内,则将把这次非法访问文件信息记 录到返回列表BackList中;
S4、通过用户层和内核层之间创建的共享事件,通知用户层的应 用程序取回BackList中记录的非法访问文件信息,用户层应用程序把 该非法访问文件信息写入到日志文件中。
其中,步骤S2具体为:当用户层发出开始命令时,内核层开始 查找系统服务描述表SSDT中一种Windows内核函数的地址,并将 该地址转换成一种自定义函数的地址,从而完成挂钩动作。
其中,步骤S1中,所述IRP请求类别包括IRP_MJ_CREATE、 IRP_MJ_READ、IRP_MJ_CLOSE和IRP_MJ_DEVICE_CONTROL。
其中,所述Windows内核函数为ZwCreateFile函数。
(三)有益效果
本发明通过在HOOK内核函数ZwCreateFile使保护文件不被非 法访问的同时,区分了文件路径和文件夹路径。提高了对文件夹路径 比较的速度,加快了比对效率。为进一步对文件夹进行扩展操作打下 了基础。用户通过查看日志(log)文件,可以看到被保护文件的境 况,了解什么时间、哪些进程、访问了哪些文件等非法操作,为用户 下一步查杀木马,病毒等恶意程序提供了帮助。
附图说明
图1是本发明的方法流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细 说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明的文件访问过滤方法包括以下步骤:
S1、处理I/O请求包IRP请求类别和退出驱动请求DriverUnload, 并安装相对应的派遣函数;
S2、处理用户层调用,并向内核层发出调用命令,例如:当用户 层发出开始命令时,内核层开始查找系统服务描述表SSDT中 Windows内核函数ZwCreateFile的地址,并将该地址转换成自定义函 数MyCreateFile的地址,从而完成挂钩HOOK动作;
S3、在所述自定义函数中调用所述Windows内核函数时通过参 数拿到传入的句柄Handle,通过调用系统的内核函数查询该Handle 对应的路径是否是文件夹路径;如果是文件夹路径,并且不包含磁盘 盘符,例如:C:\\,由于这种情况不在需要对比的名单范围之内,直 接返回不进行对比;如果是文件路径,则在所述白名单中进行比较, 如果该文件路径不在所要保护的文件路径的白名单范围之内说明该 文件路径不在允许访问的范围之内,则将把这次非法访问文件信息记 录到返回列表BackList中;
S4、通过用户层和内核层之间创建的共享事件Event,通知用户 层的应用程序取回BackList中记录的非法访问文件信息,用户层应用 程序把该非法访问文件信息写入到日志文件中。
其中,步骤S1中,所述IRP请求类别包括IRP_MJ_CREATE、 IRP_MJ_READ、IRP_MJ_CLOSE和IRP_MJ_DEVICE_CONTROL。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关 技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下, 还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明 的范畴,本发明的专利保护范围应由权利要求限定。