(计算机软件与理论专业论文)文档安全管理系统客户端监控技术的研究与实现.pdf_第1页
(计算机软件与理论专业论文)文档安全管理系统客户端监控技术的研究与实现.pdf_第2页
(计算机软件与理论专业论文)文档安全管理系统客户端监控技术的研究与实现.pdf_第3页
(计算机软件与理论专业论文)文档安全管理系统客户端监控技术的研究与实现.pdf_第4页
(计算机软件与理论专业论文)文档安全管理系统客户端监控技术的研究与实现.pdf_第5页
已阅读5页,还剩84页未读 继续免费阅读

(计算机软件与理论专业论文)文档安全管理系统客户端监控技术的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

四川师范大学硕士学位论文 文档安全管理系统客户端监控技术的研究与实现 计算机软件与理论专业 研究生马金鑫指导教师袁丁 摘要信息化时代的来临与发展使政府、企业、学校等部门把计算机作为 主要的信息载体和存储媒介。重要信息的安全却一直受着来自外部和内部的威 胁,来自外部的危险破坏、窃取、修改可以通过有效的防火墙来控制,但是根 据一个权威的研究结果表示,内部人员犯罪是主要威胁。为了解决内部人员的 主动泄密的问题,一些从事于内部安全的公司陆续成立,也推出了不少专业的 防止内部人员泄密的文档安全系统产品。 文档安全保护系统需要保护文件完整性和正确性,现在主流的文档保护系 统大多数采用了加密的方式来解决问题,在一定的程度上保护了文档的安全 性。但是,即使文档被加密,最终到用户终端时,还是需要把加密后的文档解 密,否则用户无法浏览文档。一些用户出于不合理的动机,在浏览文档的时候 使用一些渠道,把重要的信息泄露。因此,从内部安全的角度出发,对内部用 户的行为加以监控和管制,对文档信息的安全有着非常积极的意义。 本文分析了文档安全管理系统的整体框架及各个子模块的作用和相互之 间的联系。然后重点研究了客户端的用于防密的几个关键核心技术,分别运行 在用户层和内核层。 1 、列举了几种常用的进程保护技术,通过分析它们的利弊,把其中两种 技术有效地结合实现更可靠的效果。 2 、研究了剪贴板和拖放操作的内部运行机制,。有效地实现了对这些操作 的监控。 3 j 研究了n t 文件过滤驱动的运行原理,实现了对文件读写时在内核层 加解密,对用户透明。 文档安全管理系统客户端监控技术的研究与实现 4 、使用最新的内核例程入口替换的方法,实现了对u s b 设备有效的控制。 关键词:信息安全;进程保护;剪贴板;文件过滤驱动;内核例程 i l 四川师范大学硕士学位论文 r e s e a r c ha n di m p l e m e n to fm o n i t o r i n gt e c h n o l o g yo f c l i e n ti ns e c u r ed o c u m e n tm a n a g e rs y s t e m m a j o r :c o m p u t e rs o f t w a r ea n dt h e o r y p o s t g r a d u a t e :m aj i n x i ns u p e r v i s o r :y u a nd i n g a b s t r a c tw i t ht h ec o m i n go fi n f o r m a t i o na g e ,g o v e r n m e n t ,c o r p o r a t i o na n d c o l l e g es t o r ei m p o r t a n ti n f o r m a t i o ne v e nc o n f i d e n t i a li n f o r m a t i o nb yc o m p u t e r a t t h es a m et i m e ,d a n g e rf r o mb o t hi n s i d ea n do u t s i d et h r e a t e n e dt h ei n f o r m a t i o n s e c u r i t y f i r e w a l lc o u l dp r o t e c ti n f o r m a t i o nf r o md e s t r o y i n g ,f i l c h i n ga n dj u g g l i n g b yt h eo u t s i d et h r e a te f f i c i e n t l y a c c o r d i n gt ot h er e p o r t ,t h eb i g g e rt h r e a tc a m e f r o mi n n e ru s e r b e c a u s et h ep r o b l e mi sm o r ea n dm o r ea t t a c h e di m p o r t a n c e ,al o t o fc o m p a n i e sw h od e v o t et h e m s e l v e st oi n n e rs e c u r i t ya n dd o c u m e n t ss e c u r i t y p r o t e c t i o np r o d u c t sc o m eo u t t h ed o c u m e n t ss e c u r i t yp r o t e c t i n gs y s t e mh a dt oa l s u r et h es e c u r i t ya n d i n t e g r i t yo fd o c u m e n t r e c e n t l y , m o s to fd o c u m e n ts e c u r i t yp r o t e c t i n gs y s t e m s p r o t e c t e dt h ed o c u m e n tb yt h ew a yo fe n c r y p t i n gt h e m a n dt h em e t h o dc o u l d m a k ed o c u m e n ts e c u r ei ns o m ew a y s a l t h o u g ht h ed o c u m e n tw a se n c r y p t e d ,t h e y w o u l db ed e c r y p t e dw h e nt h eu s e r sw o u l dl i k et or e a dt h e m s o m eu s e rw i mi l l e g a l p u r p o s ec o u l dl e a kt h ei m p o r t a n ti n f o r m a t i o nb ys o m ew a y s i nt h ep o i n to f v i e wo f i n n e rs e c u r i t y , w ec a ns u mu pt h ei d e a rt h a tm o n i t o r i n ga n dc o n t r o l i n gt h ei n n e r u s e ra r eu n d o u b t e d l yi m p o r t a n t t h ep a p e ra n a l y s e st h em a i nf r a m e w o r ko ft h es e c u r ed o c u m e n tm a n g e r s y s t e ma n dt h ef u n c t i o no fi t ss e v e r a lc h i l dm o d u l ea n dt h ei n t e r r e l a t i o no ft h e m t h e ni tr e s e a r c h e ss e v e r a lk i n d so fk e yt e c h n o l o g yi nu s e rm o d ea n dk e r n e lm o d e 1 、s e v e r a lk i n d so fp r o c e s sp r o t e c t i n gm e t h o da r ee n u m e r a t e da n dm e r i ta n d i i i 文档安全管理系统客户端监控技术的研究与实现 d e m e r i to ft h e ma r ea n a l y z e d i tc o m e so u tc o m b i n i n gt w oo ft h e mc o u l dw o r k m o r es t a b l y 2 、t h ep a p e ra l s or e s e a r c h e st h ei n n e rp r i n c i p l eo fc l i p b o a r da n dd r a g d r o p , w h i c hh e l p sr e a l i z i n gt h em e t h o dt oc o n t r o lt h e m 3 、t h ep a p e ra l s or e s e a r c h e st h ep r i n c i p l eo fn tf i l e f i l t e rd r i v e ra n d i m p l e m e n t se n c r y p t i o na n dd e c r y p t i o nw h e n t h ef i l ei si o 4 、a n di ti m p l e m e n t st h ec o n t r o lo fu s bd e v i c eb yt h em e t h o do fe x c h a n g i n g o ft h ek e r n e lr o u t i n e k e yw o r d s :i n f o r m a t i o ns e c u r i t y ;p r o c e s sp r o t e c t i n g ;c l i p b o a r d ;f i l ef i l t e rd r i v e r ; k e m e lr o u t i n e i v 文档安全管理系统客户端监控技术的研究与实现 图表清单 图2 1i m a g e _ i m p o r t _ d e s c r i p t o r 结构体:一j 7 图2 2a p i 钩子钩挂前后调用情况图8 图2 3n t 系统设备层次结构1 0 图2 4 文件过滤驱动运作示意图一1 l 图2 5d r i v e r o b j e c t 数据结构1 3 图2 6 设备对象的格式。,13 图2 7 设备对象f l a g 可选项一1 4 图2 8 设备对象c h a r a c t e r i s t i c s 可选项1 4 图2 9i r p 结构图1 5 图2 1 0i r p 头字段:j 1 5 图2 1 1i r p 堆栈成员1 6 图2 1 2v p b 结构体1 7 图2 1 3f i l eo b j e c t 结构体“1 7 图2 1 4d i s p a t c h 例程选择。;1 9 图2 1 5 例程类型2 0 图3 1 安全管理系统框架图2 2 图4 1 关键代码( n t o u e r y s y s t e m l n f o r m a t i o n ) 2 7 图4 2 关键代码( m y o p e n p r o c e s s ) ,2 7 图4 j3 三线程保护原理图一:2 8 图4 4 关键代码( 代码注入) 2 9 图4 5z w q u e r y l n f o r m a t i o n 函数原型+ 3 0 图5 1 复制调用过程:3 2 图5 2o l e 剪贴板的运作机理3 3 图5 3o l e 剪贴板调用过程3 3 图5 4 剪贴板监控模块运作原理图3 4 图5 5 规则中心功能示意图3 5 图5 6 剪贴板观察者伪函数代码3 6 图5 7 拖拽过程示意图3 7 v i l l 四川师范人学硕士学位论文 图5 8d o d r a g d r o p 的伪函数代码3 8 图5 9q u e r y c o n t i n u e d r a g 的伪函数代码i 3 8 图5 1 0o f f i c e 剪贴板3 9 图5 1 1 关键代码( 剪贴板消息回调函数) 4 0 图6 1i r p _ m j _ c r e a t e 处理流程4 4 图6 2c r e a t e 处理例程核心代码4 5 图6 3 解密逻辑图:4 6 图6 4 读例程处理流程4 7 图6 5r e a d 例程处理核心代码4 8 图6 6 读完成例核心代码4 9 图6 7 加密逻辑图5 0 图6 8 加密处理流程5 l 图6 9w r i t e 例程处理核心代码5 3 图6 1 0c r e a t e f i l e 参数5 4 图6 1 1d e v i c e i o c o n t r o l 参数5 5 图6 1 2 应用程序与驱动程序通信5 5 图6 1 3i o c t l 代码结构5 6 图6 1 4c t l _ c o d e 结构5 7 图6 1 5i o c t l 宏定义5 9 图6 1 6 本系统中定义的i o c o n t r 0 1 c o d e 值5 9 图6 1 7 驱动程序与用户通信核心代码6 0 图6 1 8i o s e t c o m p l e t i o n r o u t i n e 函数6 1 图6 1 9 中断级别6 2 图7 1w d m 模型的层次结构6 7 图7 2 设备树结构6 8 图7 3 仿真实验结果( 缓存写入失败) 7 0 图7 4 关键代码( 修改权限参数) 7 0 图7 5 反汇编微软源码( i o a t t a c h d e v i c e t o d e v i c e s t a c k ) 7 l 图7 6 关键代码( 保存完成例程上下文) 7 3 i x 文档安伞管理系统客户端监控技术的研究与实现 图7 7 实验结果( u 盘写控制) 7 4 表5 1 监控剪贴板函数列表:3 4 表6 1 内存池类型6 3 表6 2 内核同步对象6 4 表6 3 互斥锁运算函数,6 5 x 四川师范大学学位论文独创性及 使用授权声明 本人声明:所呈交学位论文,是本人在导师塞工查咝指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任 何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本声明的法律结果由本人承担。 本人承诺:已提交的学位论文电子版与论文纸本的内容一致。如因不符而 引起的学术声誉上的损失由本人自负。 本人同意所撰写学位论文的使用授权遵照学校的管理规定: 学校作为申请学位的条件之一,学位论文著作权拥有者须授权所在大学拥 有学位论文的部分使用权,即:1 ) 已获学位的研究生必须按学校规定提交印 刷版和电子版学位论文,可以将学位论文的全部或部分内容编入有关数据库供 检索;2 ) 为教学、科研和学术交流目的,学校可以将公开的学位论文或解密 后的学位论文作为资料在图书馆、资料室等场所或在有关网络上供阅读、浏览。 本人授权中国科学技术信息研究所将本学位论文收录到中国学位论文 全文数据库,并通过网络向社会公众提供信息服务。 ( 保密的学位论文在解密后适用本授权书) 学位敝储躲马眵 翩躲拓 签字日期:加i d 年e 月2 日签字日期如i d 年g 月2日 四川师范大学硕士学位论文 第一章引言 1 1 课题研究背景 计算机以及计算机网络已经成为企业、政府、学校等重要的信息的存储载 体和传播途径。但是计算机和计算机网络给人们带来非常便捷的功能和性能时 同时也带来了重要信息被破坏和被泄露的威胁。这种威胁通常是来自网络外部 或者来自网络内部,外部的威胁尚可以通过技术已经相当成熟的防火墙和主机 入侵检测系统来解决,但来自内部的威胁却往往不容易控制。因为内部人员可 以轻松地将计算机中的机密信息通过移动存储设备或者网络泄露出去,而且不 会留下任何痕迹。这些使得泄密事件频频发生,机密文件、敏感信息、重要数 据、设计图纸、配方、软件源码等通过不同的途径、方法和手段流失到敌人、 竞争对手和无关人员手中,给国家、企业造成了重大的损失。 通过对现代企业的办公状况的了解,能够看出i lj : 缺乏相应数据安全管理保护系统。内部人员能够从内部拷贝资料、内 部人员可以通过即使通讯工具传输资料,没有有效控制和解决措施。 电子文档加密后没有权限的区分。 没有审计监控系统。对合法的数据资料操作没有进行有效的审计。 日志系统不能为系统的维护管理提供有效的依据。 调查发现,u 盘、m p 3 音乐播放器和数码相机日益流行,也使得人们能非常 方便地携带大量的数据。有时,这些数据中可能包含着企业的甚至国家的重要 数据。信息技术迅猛发展的同时,e r p 、c r m 等新型的企业生产信息管理系统被 现代企业广泛采用。这些新型管理手段的采用在为企业带来更高生产效率的同 时,也对企业的数据资产安全管理带来了新的挑战。 电子文档的易复制性决定了其保证其安全完整的重要性,如何适当地存储 电子文档,如何使电子文档被浏览时不被用户以其它手段窃取,如何保护电子 文档不会被计算机的移动外设带出,都成为内部信息安全最关键的研究内容, 也是衡量内部安全产品保证文档安全程度的标准。 1 2 课题研究的目标与研究内容 文档安全管理系统的主要功能是对计算机中信息载体( 如w o r d 文档) 进 文档安全管理系统客户端监控技术的研究与实现 行保护,管理的一个高安全的系统。使用者可以在局域网中安全地使用和共享 文件,并且不会使文件被非法用户盗窃、篡改,使用户的重要或机密信息得以 保障,增加了用户使用文档的安全性。 在文档安全管理系统中,管理员可以给用户分配一定的权限,不同的权限 对文件具有不同程度的使用权限。这些权限具体分为读取、修改、打印、及对 移动存储设备的使用权限。这些权限由管理员来分配,可以提升权限,也可以 回收权限。这种基于权限的文件管理方式可以更有效地防止非法用户的介入。 当共享文件时,由管理员设置共享用户的使用权限,使的用户不能越权去访问 其它文件,防止用户的非法复制、修改,甚至可以有效地控制非法从外设把文 件带走的情况。 本文中的系统是四川省重点科技攻关项目,其中的很多关键技术也用到了 博大科技有限公司推出的产品“r e a l s e c 文档防泄密系统 中,覆盖了文件动 态加解密、日志管理审计、访问控制、身份认证、高并发服务器等多个领域, 本文作者的主要工作范围是主机防泄密模块的设计,这块也是该系统的最关键 模块,这个模块主要有以下几个方面: 文件过滤驱动加解密技术。运用了文件过滤驱动技术,在内核层对文 档进行动态地加解密,在对用户完全透明的情况下同时也大大地提高 了加解密的效率。 进程隐藏和防杀技术。为了对客户端进行有效的保护和对用户更好的 透明,客户端进程要做到隐藏和禁止关闭。 剪贴板监控技术。防止非法用户通过复制、粘贴、拖放等操作把机密 文档中的内容向外泄漏,因此需要对剪贴板进行控制。 u s b 外设控制技术。使用底层h o o k 技术,对u s b 外设进行监控与控制, 对所有的u s b 外设监控,并对存储型的外设重点控制。 1 3 国内外研究现状分析 在以前,政府和企业中通过加强保密制度,通过法律、法规的方式保护重 要信息,但是这些还是远远不够的,最好还是需要从技术的角度从根本上解决 问题。很多部门采用直接的网络隔离、把软盘、光驱拆除,把u s b 端口封住等 2 四川师范大学硕士学位论文 方法,这些方法的确可以起到与外界隔离的作用,可以实现绝对的安全,但是 这些方法必然会造成用户使用上的不方便,并不能称之为一种完美的方法。 迄今为止,市面上出现了一些保护信息安全的产品,主要有以下几类 【2 】【2 】【3 】: 防火墙和主机入侵检测系统( h i p s ) 。主机和外界网络之间建立一种安全 屏障。可以有效地防止外界的黑客侵入主机盗走重要信息。 权限访问控制。给用户分配不同的权限,某种权限对应着对文件的操作规 则,以权限控制访问作为主要手段。 加解密。把电子文档通过加密算法转化为用户无法辨别的密文,即使非法 用户得到信息也是加密后的,难以破译。 当涉及到文件的安全管理时,国内外信息安全公司纷纷推出了一系列的安 全产品,其中,国外的最著名的就是m i c r o s o f t 下的e f s 系统。 e f s 系统的使用率不是很高就是由于其不灵活性,用户使用复杂,而且有 许多限制,如只能对n t f s 文件系统上的文件进行加密。它的原理是,系统自 动生生一个伪随机数组成的文件密钥,然后把文件使用文件密钥加密后存储在 硬盘中,然后使用用户公钥通过非对称加密算法把文件密钥加密管理,需要使 用文件时,先用用户私钥把文件密钥解密,得到文件密钥后再把文件解密使用 【3 】 o 国内安全公司也有一些比较典型的安全产品,将几种较为常见也具有代表 性的产品列下: 1 亿赛通内网安全软件 2 铁卷电子文档保护系统 3 中科网航睿锁电子文档权限管理系统 4 天盾文档安全系统 5 前沿电子文档安全产品 在这些安全产品中,一种类型的产品( 如前沿等为代表) 的特点是把文档自 身的格式转换,加密后的文档需要专用的阅读器来阅读,造成使用上的不方便, 同时也在计算机上保存了明文存在的临时文件,如出现断电,程序中断等情况 时就可能把明文泄露出去。 文档安全管理系统客户端监控技术的研究与实现 另外一种类型的产品,如天盾等安全产品,在用户层进行加解密,不仅在 效率上差很多,而且也大大降低了安全性。 文件安全产品在经过数年的发展后,最终也走向较为成熟的一个阶段,就 是使用内核层的加解密技术和基于权限的控制手段相结合,再附加上一定的文 件控制技术。这种模式的安全产品也被很多安全公司所认可,使的安全产品也 逐渐向这种模式靠拢。 1 4 论文的主要工作 本文主要针对文档安全管理系统的客户端的几个关键技术作了研究与实 现,具体来说包括以下几个方面: 进程保护技术。对客户端进程进行保护的研究与实现,防止被非法行为关 闭,如果被关闭,再把客户端进程开启。 剪贴板监控技术。对w i n d o w s 自带的剪贴板和m i c r o s o f to f f i c e 的剪贴板 监控的研究与实现,使用户无法从剪贴板泄漏重要信息。 底层驱动加解密技术。从内核层对文件f o 加解密的研究与实现,直接从 内核层对文件加解密,对用户透明,并且效率较高。 u s b 设备的控制技术。从内核层对u s b 设备管制的研究与实现。能够直 接屏蔽某些不合法的设备,并且可以根据策略设置可移动存储介质的读写权 限。 1 5 论文的结构 本文共分为八章: 第一章讲述课题背景、研究目标与内容、国内外研究发展现状、论文的主 要工作及结构。 第二章对本章所用到的技术原理进行必要的说明和介绍,其中包括i a t 钩子技术,过滤驱动技术等。 第三章详细介绍了文档安全管理系统的总体结构及各个模块( 客户端、保 密服务器、认证服务器、文件服务器) 的作用及各个模块之间的联系。 第四章研究并实现了本系统中基于用户层的进程保护技术,并提出了一种 4 四川师范大学硕士学位论文 新颖的方案,提供更为稳当的保护。 第五章研究并实现了本系统中基于用户层的剪贴板控制技术。特别对 o f f i c e 剪贴板的情况作了针对性的控制。 、 第六章研究并实现了本系统中基于内核层的底层过滤驱动加解密技术,阐 述了其中几个关键例程的实现逻辑和开发中注意的细节问题。 第七章研究并实现了本系统中基于内核层的u s b 设备控制技术,对n t 过滤驱动模式作了详细的阐述后,并实现其在底层过滤驱动模块与u s b 设备 监控模块的应用。 第八章总结全文并介绍作者下一步的工作方向。 5 文档安全管理系统客户端监控技术的研究与实现 第二章本系统中关键技术相关原理研究 2 1h o o k a p i 技术原理 h o o k a p i 技术是指对系统的某个a p i 调用的截获,使a p i 函数执行时先 调用伪函数,如对系统的m e s s a g e b o x a 这个a p i 函数进行截获后,当某个进 程调用m e s s a g e b o x a 这个函数时,都会去使用u s e r 3 2 d l l 模块中的 m e s s a g e b o x a ,而这个函数的入口已经被预定义的伪函数所替代。因此,所有 对m e s s a g e b o x a 的调用都会先执行伪函数。这种技术可以在对用户透明的情 况下,对系统调用有个预先的调用约束,是一门非常有用的技术。最常用的 h o o k a p i 的一种方法就是i a t h o o k 技术。这种方法可以动态地实现对所有进 程指定a p i 的截获,接下来详细介绍这种方法的实现【4 】。 2 1 1p e 格式简介 在w i n d o w s 系统中,像e x e 、d u 、s y s 这种文件不仅包含了可执行代码和 数据信息,也在文件头中记录了进程调用所需的动态链接库等信息,这种文件 就是p e 文件,p e 文件头中保存着文件运行的所需的库信息,这些信息以统 一的数据结构保存f 5 】1 6 1 。 系统调用的a p i 函数都是导入函数,由k e r n e l 3 2 d l l ,u s e r 3 2 m 1 等子系统 模块导出。应用程序的导入函数信息都存在于它的导入表中,这个表是一个 i m a g ei m p o r td e s c r i p t o r 结构,每个i m a g ei m p o r td e s c r i p t o r 结构对应一个导入模块。这个结构体定义如下: 6 四川师范大学硕士学位论文 图2 1i 舭g e i m p o r t _ d e s c r i p t ( 瑚r 结构体 这个结构体的第一个域是一个联合结构,c h a r a c t e r i s t i c s 是 o r i g i n a l f i r s t t h u n k 的别名,保存的含有h i n t n a m e 表的偏移量,最后一个域 f i r s t t h u n k 保存的是导入地址表( i a t ) 的偏移量。f i r s t t h u n k 与 o r i g i n a l f i r s t t h u n k 非常相似,并且指向的结构体的成员内容是相同的。p e 格 式的文件启动时,根据p e 文件的导入表中的d l l 名加载相应的动态链接库, 接下来再根据h i n t n a m e 表中的函数名取得函数的入口地址,这些地址保存到 i a t 表中。应用函数在调用导入函数时,先从i a t 获得函数的入口地址及导出 库。修改p e 文件的i a t 表中的成员,也就可以修改p e 文件的调用入口【7 】【8 1 。 7 文档安全管理系统客户端监控技术的研究与实现 2 1 2h o o k a p i 方法实现 定位到i a t 表后,就可以直直接接操作函数地址的覆盖,把伪函数的入口 地址与真实函数的入口地址交换即可【9 1 。 将函数进行反汇编分析后就可发现,调用一个函数一般过程【1 0 】【l l 】【1 2 1 是: 先将参数使用p u s h 操作压入到栈中,然后再使用c a l l 操作来调用函数。 所以,h o o k a p i 的实现过程就可以这样描述,首先定义一个伪函数( 或者叫 代理函数) ,这个函数的参数个数及类型和返回值需要与原函数的完全相同。 得到原函数的地址后把原函数与伪函数的入口地址交换,这样,当目标进程需 要调用该函数时,便直接会执行到伪函数,由于参数和返回类型都是相同的, 所以系统并不会发现错误。这样就实现了对目标进程某a p i 函数的替换。当 在伪函数中仍然需要执行原函数的函数体时,由于在伪函数中已经得到正确的 参数,直接调用原函数的真实入口地址即可。下图描述了对a p i 函数的截获 前后对比。 图2 2a p i 钩子钩挂前后调用情况图 当对目标进程的a p i 函数截获后,就可以根据实际的需要来处理,可以在 执行原函数前就使其返回失败,也可以在原函数执行过后,修改其返回结果, 当然也可以不做任何处理直接调用原函数。这个过程对于用户来说是透明的, 并不会感觉到有任何的异常【1 3 】。 2 2w i n d o w sn t 下文件系统过滤驱动程序概述 这节主要从内核层的角度对用户的行为控制,在内核层的程序对用户完全 8 四川师范大学硕士学位论文 透明,可以达到更隐蔽的效果。 用户层的操作引起的一系列系统调用,然后经过i o 管理器转换成内核可 以识别的请求i r p ( i 晡求包) 继续向底层传递。第三方开发的驱动程序可以插 入到某两个驱动层之间,这样可以得到从上层传递下来的i r p ,并作相应的处 理1 引。 过滤驱动程序可以附着在某设备对象的设备堆栈的上层,所有给这个设备 对象发送的i r p 都会先经过最上层的过滤驱动程序,过滤驱动程序就可以对这 些i r p 先做一次过滤,再选择往下传递还是直接取消,或者将做过处理的i r p 传递下去。 用于文件系统上的过滤驱动程序是文件过滤驱动程序,文件过滤驱动程序 现在可以用在很多领域,并且在这些领域中发挥着核心作用 1 5 ,其中主要有: 用于文件安全产品,可以实现底层的透明加解密。效率高,且安全性 高,比上层的加解密更加隐蔽。 用于h i p s ( 主机入侵检测系统) ,可以在用户读写文件前先对文件扫 描,发现恶意程序后可以做及时的处理。 用于文件实时访问控制。可以根据访问规则对文件的访问提供更实 时,更详细的访问控制。 用于文件镜像备份。通过过滤驱动程序可以在读写需要备份文件时, 把读写信息传递到冗余设备上。 2 2 1w i n d o w sn t 文件系统加载过程 w i n d o w s 的文件系统驱动程序位于磁盘驱动的上层,如果没有过滤驱动程 序,由上层的读写请求经过i o 管理器转化后的i r p 直接传递给文件驱动程序。 如下图所示。 操作系统启动时文件系统的加载过程是 1 6 】: 1 加载文件系统驱动程序及其过滤驱动程序。 2 i 0 管理器创建文件系统队列,并初始化文件系统。 3 调用d r i v e r e n t r y 初始化例程,设置分发例程并创建设备对象。 4 注册文件系统驱动程序。 9 文档安全管理系统客户端监控技术的研究与实现 5 执行r e i n i t i a l i z a t i o n 例程。 2 2 2w i n d o w sn t 分层驱动程序模型 w i n d o w s 设备驱动程序的框架层次结构如图4 1 所示。与硬件相对应的就 是物理设备对象,由总线驱动程序控制,处于物理对象上的是功能设备对象, 由功能驱动程序控制,功能设备对象的上下可以插入过滤设备对象,过滤设备 对象由过滤驱动程序控制 1 7 。 用户层 嬲叼瓣嘲嬲蘅雨灞嘲砌孵啊孵1 内核层 图2 3n t 系统设备层次结构 这种分层驱动程序的堆栈模式可以把设备的功能很好的分工,结构非常清 晰,也易于程序员的理解。总线驱动程序负责枚举硬件设备,功能驱动程序实 现设备的主要功能,过滤驱动程序实现一些辅助功能,过滤驱动程序可以停留 在功能驱动程序上层或者下层。每一层驱动除了i r p 的输入输出外,功能的独 立性很高【1 8 】。过滤驱动程序完全不需要理解总线驱动里面的细节。 1 0 四1 1 l 师范大学硕士学位论文 2 2 3w i n d o w sn t 文件系统过滤驱动原理 文件过滤驱动是文件系统上的过滤驱动程序,它负责对发往文件系统的任 何的文件操作截获。其结构图如下所示。 用户麓出帕请求 图2 4 文件过滤驱动运作示意图 用户对文件的的操作直接对系统函数调用,在进入内核层时被i 0 管理器 转化为i o 请求包( i r p ) ,文件系统接收到i r p 后先作一些处理,经过进一步 的转换把请求转换为存储设备可以识别的请求并向存储设备发送请求,真正的 文档安全管理系统客户端监控技术的研究与实现 读写由存储设备驱动程序来控制硬件进行。在这个过程中,每两个设备对象间 都可以插入过滤设备,过滤设备需要对从上层来的i r p 进行处理,再往下传递。 2 3 文件系统过滤驱动程序开发技术研究 2 3 1 文件系统驱动程序开发简介 w i n d o w s 下驱动程序的开发与用户层程序的开发有所不同,它要要使用不 同的驱动开发包的支持。针对于文件驱动程序的开发,有两种的可选的开发包 支持n 们。 i f s d d k 。这是传统的开发文件系统驱动程序的开发包,本文重点讲解的就 是使用这种开发包的支持。它基本上需要程序员实现每一个细节,对于学习文 件系统驱动程序有重要的意义。 w d k 。这是最新微软发布的驱动程序开发包,现在发展到w d k 6 0 0 0 ,它支 持p n p 驱动程序的开发以及各种过滤驱动程序的开发,并且支持专门用于文件 过滤驱动程序的m i n i f i l t e r ( 微过滤驱动程序) 的开发。 驱动开发包可以提供编译所所需要的各种库及头文件,这时可以使用开发 包自带的d o s 编译工具,如果安装了d r i v e r s t u d i 0 3 2 编译工具包,就可以像 开发普通程序一样在v i s u a ls t u d i o 环境中开发。 驱动程序的调试更为复杂,可以使用d r i v e r s t u d i 0 3 2 中提供的s o f t i c e 工具调试,这种调试工具现在已经停止更新,所以一般使用另一种工具,就是 微软提供的w i n d b g 工具,这种工具配置较为复杂一些,但是使用简单,可以 方便的跟踪调试,查看内存,并且可以实时显示打印消息。 2 3 2 预备数据结构知识 学习到驱动程序时,就会接触到一系列内核层的数据结构,了解这些数据 结构对于驱动程序的开发有着重要的意义。 驱动对象( d r i v e r o b j e c t ) 驱动对象代表的就是一个驱动程序,驱动程序的入口例程( d r i v e r e n t r y ) 的第一个参数就是驱动对象,入口例程中所做的处理就是为这个驱动对象创建 一个设备对象,然后初始化驱动对象中的分派例程。驱动对象的成员如下图所 1 2 四川师范大学硕士学位论文 不。 黪:i i i _ _ 确;一一_ 一f 焉戮搿彬一畿耐一一瑚 d e v i c e o b , c e t 髟”御弼”荆娜”1 ”嘲 i d r t 姻r s t a r t 4 “”“ ?dr咖rsize “ 2 。 苏,ddversection ”一 。”1 d n v e r e x t n s , o n 1 一。y 鼍誓邵砰霉搿渊铷黼”一”锈 目z * “a ,一 h a r d w a r e d a t a b a s e f a s u o d m p a t c h d n v o r l n i t d r w e r s t a r t l o d n v e r u n l o a d m 翻o r f u n t i o n 图2 5d r i v e r o b j e c t 数据结构 设备对象( d e v i c e o b j e c t ) 计算机中每个独立功能的模块都可以称为一个设备,如键盘、显卡、网卡, 在内核层中,这些设备对应的就是设备对象的概念。设备对象的成员如下图所 不。 缪j 一一”i ”“? 珏”一。“”? 飞一1 。i 。8 9 “? j 一1 醯。鼬删酬 + d n v e v o 切e t a n e x t d e 哪 磬_ _ 一i 一一? 摇职? q 博? 一翩抽对埔一o e 蛹凶一 弼 c u r r e n t l q ) 麟,嘎笏蝴孺# 撼舻矽渺4 ”,一。1 m r m r ”4” f l a g s 黟”矽”。掣缈4 渺c 姆嘲镒“一4 ” 魏一“t d e w c e e x l e n g o n d 鳓c e t y p e f ,:一7 ”s t a c k s z e ”一一一_ a i i g n 什帅墩e q u h 鲫e n t 图2 6 设备对象的格式 在这个数据结构中,d r i v e r o b e j c t 是指创建该设备对象的驱动程序所对 应的驱动对象,n e x t d e v i c e 设备堆栈中的下一个设备。 f l a g s ( u l o n g ) 包含一组标志位,可以设置读写缓冲方式,如下图所示。 文档安全管理系统客户端监控技术的研究与实现 琵蝴搋砒搋编锄壤羲黝娩勰燃自她瓣瓣;二= 瑟忑置i i 池3 纛鑫赫籀盎蠹盎# 缓如潞躐z 磊。热嚷姚a 蠡貔亥施盘磁施;矗女自施碰翅 d o 一踟| i r f 船蛆1 0 读写操作使用缓冲方式( 系统复制缓冲 区) 访问用户模式数据 d oe x c l u s 工v e 一次只允许个线程打开设备旬柄 d o - d i r e c ti o 读写操作使用直接方式( 内存描述符表) 访问用户模式数据 d 0 - d 肼i c = e _ i n i t i 磊l 工z 日g设备对象正在初始化 d o p o 忱r 2 a g a b l e必须在p a s s i v el e t g l 级上处理 i r p 一耵一p 职请求 d o _ p o 咿e r i n r u s h设备上电间需要大电流 图2 7 设备对象f l a g 可选项 c h a r a c t e r i s t i c s ( u l o n g ) 描述设备的可选特征,可选项如下图所示。 缈“ “一4 :4 * 、。+ 一;。 j。 v 知_ ,4,| 、。 一0 t 。j 甥 豪。一。标恚。 。, + j ? j j ,? t ? , ? f t 吡缸。统。i 已t 谶咖? 皿蛊,。稳。惫 f i l e j l 蕊o v a b l e _ h e d i a 可更换媒介设各 f i l e _ r e a d _ o n l y d e v i 理 只读设备 f 工l e j r l o p p y _ d is 珏t t e 软盘驱动器设备 f i l e m i t e o n c e _ e d i a只写一次设备 f i l er e i o t e d e v i c e 通过网络连接访问的设备 f 工i e _ d e v i c e i s 一瑚o u n t e d 物理媒介已在设备中 f i l e _ d e v i c e s e c u r e o p e h 在打开操作中检杳设备对象的安伞属悻 图2 8 设备对象c h a r a c t e r i s t i c s 可选项 d e v i c e t y p e 描述的是此设备的类型,是一个枚举常量。 i 0 请求包( i r p ) i 0 请求包是内核层中最重要的传递消息格式,从上层的系统调用由i 0 1 4 四川师范大学硕上学位论文 管理器转化为i r p 继续下发,驱动程序的分派例程就是对这些i r p 进行处理。 i r p 的结构分为两个部分,一个是i r p 头,另一个是i o 堆栈,如下图所 不o i r p 头部成员如下表所示。 图2 9i r p 结构图 豫p 头字段 字段说明 i o _ t a t u sl o i :ki o s t a t 啦包含i 0 请求的状态 p v o i da s s o c i a t e d i r p s r s t e a t k f f f e r 如果设备执行有缓冲的i 0 ,则指向系统空间 缓冲区 p 砸) li f l l a d d r e s s如果设备执行直接的i o ,则指向用户空间的 内存描述符列表( | e m o r yd e s c r l p o t rl i s t ) p v o i du s e r b u f f e r i o 缓冲区的用户空间地址 b 0 0 l 叫i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论