基于微过滤驱动的文件监控系统.pdf
第3 0 卷第1 1 期2 0 1 0 年1 1 月计算机应用J o u r n a lo fC o m p u t e rA p p l i c a t i o n sV 0 1 3 0N o 1 lN o v 2 0 l O文章编号:1 0 0 1 9 0 8 1(2 0 1 0)1 1 3 1 1 5 0 3基于微过滤驱动的文件监控系统孙莹莹,郑扣根(浙江大学计算机科学与技术学院,杭州3 1 0 0 2 7)(s u n n y k i d z j u e d u c n)摘要:文件安全访问控制,是银行自动柜员机安全的核心部分。采用微过滤模型的文件监控系统,将用户、进程和访问控制权限结合,实时监控文件,实现文件安全访问。同时,基于互斥锁的日志文件的操作,实现日志事件生成和写入日志文件的同步,提高了写日志的效率。该文件监控系统,增强了文件的安全性,提高了系统的稳定,l 生。关键词:文件过滤驱动;徼过滤;内核模式;访问控制;文件监控系统中图分类号:l Y 3 1 1文献标志码:AF i l em o n i t o r i n gs y s t e mb a s e do nm i n i f i l t e rS U NY i n g-y i n g,Z H E N GK o u g e n(C o t z e g eo fC o m p u t e rS c i e n c ea n dT e c h n o l o g y,Z h e j i a n gU n i v e r s i t y,舶增咖l 撕喈3 1 0 0 2 7,C h i n a)A b s t r a c t:F i l es e c u r i 移a c c e s sc o n t r o li st h eC O l eo ft l l eb a n ka u t o m a t i ct e l l e rm a c h i n es e c u r i t y F i l em o n i t o r i n gs y s t e mb a s e do nm i n i f i h e r,c o m b i n i n gn s e l|a n dp r o c e s s e st oa c c e s sc o n t r o lr i g h t s,r e a l-t i m em o n i t o r e df i l e sa n da c h i e v e dt h ef i l es e c u r i t ya c c s M i n i f i h e rm o d e ls h o r t e n e dt h ed e v e l o p m e n tt i m e,a n dW I l l Ss t a b l ea n dc o m p a t i b l e T h el o gf i l eo p e r a t i o nb a s e do nm u t e xl o c k,a c h i e v e dt h el o ge v e n t sg e n e r a ta n dt h el o gw r i t t e ns y n c h r o n i z a t i o n,a n di m p r o v e dt h el o g w r i t t e ne f f i c i e n c y T h ef i l em o n i t o r i n gs y s t e me n h a n c e st h ef i l es e c u r i t ya n dt h es y s t e ms t a b i l i t y K e yw o r d s:f i l ef i l t e rd r i v e r;m i n i f i l t e r,k e r n e lm o d e;a c C e S Sc o n t r o l;f i l em o n i t o r i n gs y s t e m0引言目前,对于W i n d o w s 操作系统中的N T F S 文件系统,通常采用访问控制列表(A c c e s sC o n t r o lL i s t,A C L)技术。但是,这种机制不能满足银行自动柜员机(A u t o m a t i cT e l l e rM a c h i n e,A T M)上的操作系统对文件安全的要求,如果攻击者以管理员账户登录到A T M 操作系统,就可以轻易地修改文件的访问控制列表来访问文件,从而破坏文件系统的安全性。本文将介绍一种基于微过滤(M i n i f i h e r)驱动的文件监控系统,只允许合法用户的合法进程,才拥有文件的相应访问控制权限,从而提高文件访问的安全性。该文件监控系统,是维护A T M 上W i n d o w s 操作系统安全性的Z S e c A t m 安全软件的核心组件,对维护A T M 文件系统的安全性具有至关重要的作用。1M i n i f i h e r 驱动技术过滤管理器(F i l t e rM a n a g e r)是一个采用传统文件过滤驱动模型的内核模式驱动,负责基本的I O 请求包(L OR e q u e s tP a c k e t,I R P)处理工作,提供了文件过滤驱动所需的一般功能。过滤管理器为驱动提供了一种简单的机制,实现过滤文件系统操作。M i n i f i h e r 驱动是M i c r o s o f t 公司提出的一种新的过滤器模型。M i n i f i h e r 驱动位于I O 管理器和文件系统之间,如图1所示旧J。M i n i f i l t e r 驱动利用过滤管理器采用的回调机制,回调机制明确了所需过滤的I R P。过滤管理器绑定到目标卷的文件系统栈上,M i n i f i h e r 驱动所需过滤的I O 操作,通过向过滤管理器注册间接绑定到文件系统栈上。用户文件I O 请求用户模式F O 管理器前向请求文件系统过滤管理器拦截清求按A l t i t u d e 顺序调用已注册的徽过滤文件系统驱动进程和前向修改请求内核模式M i n i f i l t e rAF S F i l t e r 活动监控器A l t i t u d e3 6 5)0M i n l f i h e rBF S F i l t e r 病毒防御A l t i t u d e3 2 尉X H JM i n i f i l t e rCF S F i l t e r 复制A I f i t u d e3 2 5 1 3 0 0存储驱动栈为耳标卷配置请求硬件硬件图1 简单I 0 栈(过滤器和M i n i f i h e r 驱动)M i n i f i h e r 驱动的A l t i t u d e 顺序,决定了驱动实例的加载位置,决定了过滤器管理器调用驱动处理I O 操作的顺序。M i n i f i h e r 的优点是:易被开发者掌握,缩短开发时间;驱动可被灵活加载和卸载;更高效率地使用内核栈;更好地支持多平台;更好地支持用户模式应用程序;降低复杂性一。2M i n i f i h e r 驱动的工作原理M i n i f i h e r 驱动的D r i v e r E n t r y 入口函数主要包含两个关键函数:F h R e g i s t e r F i h e r 和F l t S t a r t F i h e r i n g。F h R e g i s t e r F i h e r 函数的功能是注册一个M i n i f i h e r 驱动,F l t S t a r t F i h e r i n g 函数的功能是开始过滤。F h R e g i s t e r F i h e r 函数,使用到过滤器注册信息的肿一R E G I S T R A T I O N 数据结构。该数据结构包括以下主要内容:收藕日期:2 0 1 0 一0 5 2 7;修回日期:2 0 1 0 0 7 2 1。作者简介:孙莹莹(1 9 8 6 一)女,山东泰安人,硕士研究生,主要研究方向:操作系统、无线传感网络;郑扣根(1 9 6 4 一),男,江苏镇江人,教授,博士生导师,主要研究方向:操作系统、系统安全。万方数据3 1 1 6计算机应用第3 0 卷数据结构大小和版本、M i n i f i h e r 驱动标志位、上下文注册、卸载程序、回调函数声明等(其中回调函数最为蕈要)。回调函数是一个数组,定义指定请求的相应操作。所需过滤的I O 操作类型,都需要指定一个预操作回调函数(P r e o p e r a t i o nC a l l b a c kR o u t i n e)和一个后操作回调函数(P o s t o p e r a t i o nC a l l b a c kR o u t i n e)。预操作回调函数在请求执行之前被调用;后操作回调函数在请求执行之后被调用。因此,预操作回调函数,是进行规则匹配的最佳时机。这种机制,可在非法请求执行之前,拒绝该请求,实现了文件的安全保护。2 1M i n i f i h e r 模型的文件监控系统本文介绍的文件监控系统中,文件过滤驱动的回调函数数组,针对不同的V O 操作类型,设置了相应的预操作回调函数和后操作回调函数。结合文件的A C L,回调函数数组具体如下:C O N S Tn J O P E R A T I O N R E G I S T R A T I O NC a l l b a c k s【】=I R P _ M J C R E A T E,0,S p y P r e C r e a t e C a l l b a c k。S p y P o s t C r e a t e ,1 R P _ 砌_ s E T-I N F O R M A T I O N,0,S p y P r e O p c r a t i o n C a U b a c k,S p y P o s t R e n a m e ,I R P _ M J C L O S E,0,S p y P r e O p e r a t i o n C a l l b a c k,N U L L ,lI R P _ M J _ R E A D,0,S p y P r e O p e r a t i o n C a l l b a c k,N U L L ,S p y P r e C r e a t e C a l l b a c k:I R P _ M J C R E A T E 操作的预操作回调函数。C r e a t e F i l e 函数会引起该I R P。进入该同调函数时,需要从回调函数的参数中提取出来文件名和操作的参数。该函数,提取出用户请求的权限、文件名和用户的S I D 字符串进行规则匹配校验。如果校验非法,可直接拒绝该I R P;如果校验合法,则操作系统会继续把请求向下传递,直到N T F S 的A C L 来校验是否合法。因此,相当于在N I T S 文件系统的A C L 之上,增加了一层独立的文件访问控制,外界应用程序无法区分是文件监控系统拒绝了I R P,还是N T F S 拒绝了I R P,从而达到很好的兼容性。S p y P r e O p e r a t i o n C a l l b a c k:其余所有I R P 操作的预操作回调函数。S p y P o s t C r e a t e:I R P M J C R E A T E 操作的后操作回调函数。该函数查找文件的名字和当前文件句柄所对应的用户S I D 字符串,并保存起来。文件名和用户的S I D 字符串将被S p y P r e O p e r a t i o n C a l l b a c k 和S p y P o s t R e n a m e 回调函数使用。S p y P o s t R e n a m e:I R P M J S E T I N F O R M A T I O N 操作的后操作回调函数。重命名文件成功后,更新之前保存的文件名为新的文件名。根据回调函数数组的定义,文件监控系统,拦截到一个所需过滤的I R P 时,调用相应的预操作回调函数进行处理。文件监控的工作流程如图2 所示。举例,新建文件时,调用C r e a t e F i l e 函数,引起类型为I R PM J C R E A T E 的I O 操作,拦截该I R P,调用S p y P r e C r e a t e C a l l b a c k(该I R P 的预操作回调函数)。进入预操作回调函数S p y P r e C r e a t e C a l l b a e k 后,判断用户进程是否拥有创建文件的权限。1)根据用户图形界面配置的文件访问控制权限规则,进行规则匹配。2)规则校验成功,操作系统执行新建文件操作,调用I R P_ M J C R E A T E 的后操作回调函数S p y P o s t C r e a t e。3)规则校验失败,拒绝新建文件操作,写事件到日志链表。其中,规则匹配的执行过程具体如下:1)若文件访问控制权限没有配置,则设置该文件访问权限为默认设置(即该用户进程对本文件没有任何访问权限);规则校验失败。2)判断用户是否为指定用户,当前进程是否为指定进程。否,则规则校验失败。3)搜索A C L,把符合要求的所有访问控制实例(A c c e s sC o n t r o lE n t r y,A C E)的权限组合起来,组成最大访问权限。根据最大访问权限,判断文件是否可以读写、修改属性等。否,则规则校验失败。本文件监控系统中,驱动采用基于路径的规则解析树。验证规则,包括了文件路径和该路径的权限定义(用户,进程和文件访问控制权限),判断文件访问控制是否合法。采用的路径树j,结构是“左孩子一右兄弟”。该路径树可简单便捷地实现路径的添加、删除及遍历等。图2 文件过滤监控工作流程2 1写日志文件监控系统,需要将影响操作系统安全的操作记录到1 3 志文件,以方便系统管理员查看。为了提高系统整体性能。本文件监控系统的日志,不记录合法文件访问,只记录不被允许的文件操作和监控程序发现的其他严重错误。完成一项写日志操作是耗时的,它不但要获取当前的系统时间,还要把日志内容写入磁盘。如果在调用写日志线程中完成所有操作,可能会导致系统性能的降低。如果多个线程同时试图向日志文件写入内容,这更可能成为系统性能的瓶颈。因此,本文采用异步方式实现写日志操作。写日志问题实际上是生产者一消费者问题,多个生产者产生日志信息,一个消费者负责写日志信息到日志文件。本文万方数据第1 1 期孙莹莹等:基于微过滤驱动的文件监控系统3 1 1 7介绍的文件监控系统,采用链表作为缓冲区。写日志记录向链表中插入新的日志条目,写日志线程从链表中,按顺序取出日志条目,写入日志文件。采用信号量机制,实现了同步操作。相对于前一种方式,性能有很大提高。写日志的大致工作流程如图3 所示。W r i t e L o g R e c o r d 函数使用M u t e x 同步访问日志列表,将当前创建的日志加入到该列表尾部,实现写事件到日志。F l u s h L o g 函数把缓冲在内存中的日志内容写到磁盘上。日志流程安装驱动的方法有很多,可以手动修改注册表或编写I N I文件向系统注册驱动,或使用驱动加载_ 亡具(如O S R 的D r i v e rL o a d e r 工具)等。考虑到操作系统及其他冈素,本文利用服务控制管理器(S e r v i c eC o n t m lM a n a g e r),将文件监控驱动安装到目标机器上。每条只志记录包括了非法操作的时间、用户、进程、文件路径、I B P 类型及操作系统执行的拒绝操作。2 1 测试结果根据用户需求,本文件监控系统中,需要监控的文件访问图4 文件监控配嚣界面权限如F:文件和目录的创建、删除和设置,文件的读写。在W i n d o w sX P、W i n d o w sV i s t a、W i n d o w s7 等操作系统上Z S e c A t m 安全软件的用户图形配嚣界面,提供了直观简洁的进行测试。文件监控系统中,用户文件访问权限配置见表I,设置文件访问控制权限界面,便于用户使用。根据系统需求测试结果见表2。其中拒绝文件操作,弹出错误提示信息。及文件访问控制间的逻辑关系,该界面如图4 所示。如打开N u L L 文件,显示如图5。表I 文件访问权限设置文件路径用户名进程路径预测结果测试结果图5 错误提示同时,日志文件中,记录了A d m i n i s t r a t o r 账户对C:T e s t N l l l l 的非法操作。3结语测试结果表明,本文采用M i n i f i h e r 模型设计的文件监控系统,可以实现文件访问控制的实时监控,拒绝非法文件操作的执行,防止非法用户访问与系统安全密切相关的文件,或管理员的不当操作破坏系统重要文件,提高了W i n d o w s 文件系统的安全性。Z S e e A t m 安全系统中,文件过滤监控系统与其他监控服务一起,在文件数据安全、病毒防御等方面发挥巨大作用,大大提高了系统安全性和稳定性,可应用于银行A T M的W i n d o w s 操作系统上。参考文献:【1】钱涛金融A T M 的安全软件的设计和实现fD 1 杭州:浙江大学计算机科学与技术学院2 0 1 0【2 1F i l es y s t e mm i n i t i l t e rd r i v e r s【E B O L l【2 0 1 0 0 4 0 9】h t t p:m s d n m i c r o s o f t c o m e n-u s l i b r a r y f t 5 4 0 4 0 2(v=V S 8 5)a s p x【3】W i n d o w sd r i v e tk i t【E B O L】f 2 0 1 0 一0 4 0 9】h t t p:m M a I n i-c r o s o f t c o m e n u s l i b r a r y f 1 5 5 7 5 7 3(V=V S 8 5)a s p x【4】谭文,杨潇,邵坚磊,等寒江独钓:W i n d o w s 内核安全编程【M】北京:电子工业出版社,2 0 0 9:2 7 4 2 9 2【5】胡宏银,姚峰,何成万一种基于文件过滤驱动的W i n d o w s 文件安全保护方裁J】计算机应用,2 0 0 9,2 9(1):1 6 8 1 7 1【6】张帆,史彩成W i n d o w s 驱动开发技术详解【M】北京:电子工业出版社2 0 0 8:5 0 6 5 0 9【7】张之勇,郑方伟,余望。等W i n d o w sN T 文件系统实时监控的实现【J】计算机应用2 0 0 7,2 7(Z I):2 7 3 2 7 5 万方数据基于微过滤驱动的文件监控系统基于微过滤驱动的文件监控系统作者:孙莹莹,郑扣根,SUN Ying-ying,ZHENG Kou-gen作者单位:浙江大学,计算机科学与技术学院,杭州310027刊名:计算机应用英文刊名:JOURNAL OF COMPUTER APPLICATIONS年,卷(期):2010,30(11)被引用次数:0次 参考文献(7条)参考文献(7条)1.钱涛.金融ATM的安全软件的设计和实现D.杭州:浙江大学计算机科学与技术学院,2010.2.File system minifilter driversEB/OL.2010-04-09.http:/ driver kitEB/OL.2010-04-09.http:/ NT文件系统实时监控的实现J.计算机应用,2007,27(Z1):273-275.相似文献(1条)相似文献(1条)1.学位论文 陈勉 基于新一代过滤驱动框架的安全文件内核开发 2009 作为信息存储的逻辑部件文件,其安全性问题已成为当今信息科学领域最重要的课题之一。目前解决这一安全问题的方法是以现代密码学为基础的文件加密。文件加密按照其实现方式又分为静态文件加密和动态文件加密。静态加密是指在加密期间,待加密的数据处于未使用状态,这些数据一旦加密,在使用前,需首先通过解密得到明文,然后才能使用。而动态加密是指数据在使用过程中自动对数据进行加密或解密操作,无需用户的干预。表面看来,访问加密的文件和访问未加密的文件基本相同,对合法用户来说,这些加密文件是“透明的”,即好像没有加密一样,但对于没有访问权限的用户,即使通过其它非常规手段得到了这些文件,由于文件是加密的,因此也无法使用。过滤驱动是实现动态加解密的最佳手段。目前对于过滤驱动的开发都是基于旧的文件过滤驱动开发框架,其稳定性较差,复杂度高,开发出产品的实际使用效果不理想。而本课题使用的是微软最新的文件过滤驱动框架微过滤器(Minifilter),它的产生就是为了简化过滤驱动开发,使用户能够开发出性能更好、更稳定的过滤驱动。其次,使用USBKEY来加固密钥的安全性,目前国内还很少有过滤驱动用到这种硬件产品。本课题的目的就是开发基于新一代过滤驱动框架的加解密安全文件内核,并使具有拥有USBKEY的保护。本论文首先介绍了Windows的体系结构并着重讨论了其内核模块与机理,然后详细分析了一个文件系统内核对一次文件访问的控制流程。接着,论文描述了驱动开发的关键概念,然后分析了传统过滤驱动开发方法及其弱点。由此引出了Minifilter过滤驱动框架,分析了其工作流程和性能优点,描述了新框架过滤驱动的开发步骤。最后详细介绍了在新框架下设计过滤驱动的思路和使用的关键技术,最终实现了一个基于Minifilter框架的文件加解密过滤驱动。本文链接:http:/