论文部分内容阅读
摘要:本文介绍了一种有别于传统保护系统的方法。该方法利用Windows NT 内核技术对磁盘文件进行隐藏保护,只有当用户被验证通过后才能够访问磁盘文件。同时在驱动层上直接向系统发送IRP来访问文件系统,绕过Windows API层级以达到对文件深度保护的目的。
关键词:文件保护;Windows 内核;IRP
中图分类号:TP393 文献标识码:A文章编号:1007-9599 (2012) 06-0000-02
随着信息技术高速发展,计算机以及互联网的应用领域逐渐广泛。同时,信息安全也越来越受到人们的关注和重视。在我国,计算机的安全保护仍有很大的发展空间,许多计算机在保护时,普遍采用的是访问控制以及文件加密的方式。但这种方式并不能从根本上解决安全保护问题。病毒、木马和恶意代码的攻击仍然具有相当高的危险性,而计算机在处理、存储信息时,其表现形式大部分为“文件”,所以将“文件”进行深度保护是极其必要的。传统文件保护一般是基于对文件进行加密、伪装等操作来实现。而这类实现方法无疑给用户的日常使用带来的极大的不便利,也未能完全的解决信息的安全保护。本文针对Windows NT 系列操作系统,设计了一个基于Windows 内核级别的文件保护系统,该系统能够对系统中的重要文件进行内核级别的防护,防止非法用户访问未经授权的文件,阻止应用层级木马的盗取文件行为。
一、系统设计原理
该文件保护系统基于WindowsNT操作系统,利用对系统内核进行开发而得以实现。该程序可以进入到内核级别并和系统底层进行通讯,建立自身的过滤驱动,从而将磁盘隐藏,使得只有通过本系统的验证后才能访问到真正的文件。这样一来有效的避免了木马病等窃取文件行为。
(一)WindowsNT 操作系统体系结构
如图所示,该图描述了WindowsNT操作系统的体系结构。当普通用户需要访问文件是,会利用WindowsAPI来调用,而这次调用会一层层向下传递,在这一些列的传递过程中,都会有可能遭到恶意代码的威胁,和文件被窃取的危险。
(二)IRP拦截技术
IRP——I/O Request Pcaket,即I/O请求包。驱动和驱动进行通信时需要通过IRP来进行进行。而应用层所使用的 CreatFile,ReadFile,WriteFile,DeviceIoControl 等函数,追根溯源,也是使用 IRP 和驱动进行通信。IRP由I/O管理器根据用户态程序提出的请求创建并传给相应的驱动程序。一般情况下,IRP首先到达设备堆栈的最上层驱动程序,之后,其会逐步向下面的驱动程序过滤,其所经过的每层驱动都可以根据IRP中的内容和设备的属性来决定对IRP的处理,通常处理方式有以下三种方式:(1)IRP被驱动程序所处理后,继续向下传递;(2)IRP被驱动程序所处理,但不继续向下传递;(3)驱动程序对IRP不进行任何处理而是直接将其向下传递。在本系统中,对于符合权限表中的合法访问,驱动程序进行第一种处理方式,而对于非法访问,进行第二种处理,即拦截该访问请求。
(三)FileHooking
本系统通过自建一个处理函数,将所有与系统输入输出有关的调用拦截。在WindowsNT 环境下,其32位的保护模式可以安装文件系统(IFS),而WindowsAPI中对于系统的I/O请求的调用均会被它收到并将其转发给文件驱动程序,再由文件驱动程序调用更低级别的IOS系统从而达到文件访问的目的。不同的I/O操作的API调用都会有一个文件驱动程序与其对应,而文件系统管理程序则负责将二者联系起来,将API参数装配,并且,它会调用FileSystemApiHookFunction 的Hooker 函数。我们需要建立自己的Hooker 函数,拦截系统内所有对文件I/O 的API 调用,并根据不同的权限实现文件的保护功能。
二、系统设计
本系统分为两大部分,第一部分为应用层程序,用于向用户提供良好的操作界面和文件保护接口,同时将请求传递给驱动层;第二部分为驱动层,该驱动提供对请求的处理,如果请求合法,会将文件提供给用户使用,否则拒绝。
(一)权限表设计
由于需要对不同用户采取不同的访问策略,所以需要权限对应表以便对用户进行分级。将不同的用户纳入到不同的权限组中。具有管理权限的用户可以添加和删除权限文件、用户,同时可以添加和删除权限组。每次当有用户需要对文件进行访问时,需要进行验证,验证通过后,程序会根据权限表进行判断,将权限表中对应的文件展示给用户,而不属于该组权限的文件则不会提供给用户。
(二)驱动程序设计
本系统的关键在于利用驱动对文件进行深度保护。通过利用内核级指令,对用户访问磁盘文件操作进行拦截和控制,从而达到文件保护的目的。使得当用户需要进行文件访问时,需要本程序调用驱动对其进行权限验证和分配。在WindowsNT下,程序运行在两个级别,RING3和RING0级别,运行在RING0 级别的程序具有对系统的全部访问和控制权限,而我们系统中的驱动便运行在RING0级别以便对用户访问磁盘行为进行实时监视。
三、结束语
本文提出了一种基于WindowsNT操作系统下的文件保护思路,并利用了IRP拦截方法,将其挂载到系统驱动层上,是一种操作系统内核程序,提高了系统内文件的安全性。通过实际使用的测试可以证明该系统可以有效的对对用户权限分级访问并有效遏制了文件盗取类木马的恶意行为
参考文献:
[1]于飞,胡平.基于文件过滤驱动的局域网安全系统设计[J].计算机工程与设计,2008
[2]毛德操.Windows 内核情景分析(上下).电子工业出版社,2005
[3]谭文,杨潇等.Windows内核安全编程.电子工业出版社,2009
[4]Art Baker,JerryLozano.The Windows2000 DeviceDriver
Book.Prenice Hall PTR,2000