WindowsNT文件系统过滤驱动的原理及应用

合集下载

windowsfirewall authorization driver

windowsfirewall authorization driver

windowsfirewall authorization driverWindows Firewall 是一个内置在Windows 操作系统中的防火墙软件,用于保护计算机免受恶意软件和网络攻击的威胁。

Windows Firewall 可以通过配置来控制网络通信的入站和出站流量,以确保计算机的安全性。

Windows Firewall Authorization Driver 是一个与Windows Firewall 相关的驱动程序,它允许Windows Firewall 控制网络通信的入站和出站流量。

这个驱动程序通过过滤和拦截网络数据包来实现对网络通信的控制,以确保计算机的安全性。

Windows Firewall Authorization Driver 的工作原理是通过过滤网络数据包来实现对网络通信的控制。

当一个应用程序尝试进行网络通信时,Windows Firewall 会检查该应用程序的网络请求,并决定是否允许或拒绝该请求。

如果请求被拒绝,则Windows Firewall 会阻止该应用程序的网络通信。

Windows Firewall Authorization Driver 的优点是它能够提供强大的网络通信控制功能,并有助于保护计算机免受恶意软件和网络攻击的威胁。

此外,由于它是Windows 操作系统的一部分,因此它与Windows 系统集成良好,易于使用和管理。

然而,Windows Firewall Authorization Driver 也有一些局限性。

例如,它可能无法检测到某些类型的恶意软件或网络攻击,也可能无法控制某些应用程序的网络通信。

此外,由于它是操作系统的一部分,因此其配置和设置可能较为复杂,需要具备一定的计算机知识和管理技能。

总的来说,Windows Firewall Authorization Driver 是Windows 操作系统中的一个重要组件,它有助于保护计算机免受恶意软件和网络攻击的威胁。

实现一个具有还原功能的磁盘卷过滤驱动

实现一个具有还原功能的磁盘卷过滤驱动

实现⼀个具有还原功能的磁盘卷过滤驱动磁盘过滤驱动的概念1.设备过滤和类过滤在之前的⽂章⾥,我们已经介绍过滤的概念,所谓过滤技术就是在本来已有的设备栈中加⼊⾃⼰的⼀个设备。

由于Windows向任何⼀个设备发送IRP请求都会⾸先发送给这个设备所在设备栈的最上层设备,然后再依次传递下去,这就使得加⼊的设备在⽬标设备之前获取Irp请求称为可能,这时候就可以加⼊⾃⼰的处理流程。

在这⾥把插⼊设备栈的⽤户设备叫做过滤设备,建⽴这个设备并使其具有特殊功能的驱动叫做过滤驱动。

在前⾯已经展⽰了如何去建⽴⼀个过滤设备并将其绑定在⼀个有名字的设备上,这叫做设备过滤,这是对某个特定设备加以过滤的⽅法。

但是在实际应⽤中,这种⽅法还存在⼀些问题,例如,Windows中有很多即插即⽤设备,如何在这些设备加⼊系统的时候就⾃动对他们进⾏绑定呢?实际上,在Windows的过滤驱动框架中,还有⼀种叫做类过滤驱动的驱动程序,能够在某⼀类特定的设备建⽴时有Pnp Manager调⽤指定的过滤驱动代码,并且允许⽤户对此时这⼀类设备进⾏绑定。

根据⽤户设备在整个设备栈中的位置可以分为上层过滤和下层过滤。

2.磁盘设备和磁盘卷设备过滤驱动在Windows的存储系统中,最底层的是磁盘,⽽在磁盘上⾯⼜有卷,卷虽然只是逻辑上的⼀个概念,但是Windows仍然为其建⽴了设备,所以在Windows的存储系统⾥有磁盘设备和磁盘卷设备两种类型的设备。

如果⼀个磁盘卷位于某个磁盘上,那么对于磁盘卷的访问最终也会体现在相应的磁盘上。

但是这并不意味着他们在⼀个设备栈上,irp不会原封不动从磁盘卷设备栈上⼀直传到磁盘设备栈上,更何况Windows中还存在着跨磁盘的卷,软RAID卷等不能对应到唯⼀磁盘上的卷。

从驱动的⾓度上来讲,这两种设备受到读/写请求都是针对与磁盘⼤⼩或者卷⼤⼩范围之内的请求,都是以扇区⼤⼩对齐,处理起来也没有什么太⼤的区别。

在此我们选⽤磁盘卷设备的上层类过滤驱动。

Windows 文件过滤驱动经验总结

Windows 文件过滤驱动经验总结

P 后什么都不做,直接调用 IoCompleteRequest() 来返回。 (2) 拿到这个 IRP 后什么都不做,直接传递到底层设备,
使用IoSkipCurrentIrpStackLocation() 后调用 IoCallDriver() 传递。 (3) 使用 IoBui
ldSynchronousFsdRequest() 或 IoBuildDeviceIoControlRequest()来建立 IRP 的。
Windows 文件过滤驱动经验总结 1、获得文件全路径以及判断时机 除在所有 IRP_MJ_XXX 之前自己从头创建 IRP
发送到下层设备查询全路径外,不要尝试在 IRP_MJ_CREATE 以外的地方获得全路径,因为只有在 IRP_MJ_CREATE 中才会使
用 ObCreateObject() 来建立一个有效的 FILE_OBJECT。而 在 IRP_READ IRP_WRITE 中它们是直接操作
TION 等 IRP 不要去管它,因为它只是一个过程。最终读 写还是如上所介绍。至于以上这些 IRP 哪个是由 CC MGR 发送的,哪些是由
I/O MGR 发送和在什么时候发送的,这个已经有很多讨论了,相 信可以找到。
7、举例说明关于 IRP 传递与完成注意事项 只
看 Walter Oney 的那本 《Programming the Microsoft Windows driver model》里介绍的
其是你要达到一些特殊目的,这时候更需要注意,如 IRP_MN_QUERY_DIRECTORY,不同的标志结果有很大的不同。 3、从
头建立 IRP 获取全路径注意点 自己从头建立一个 IRP_MJ_QUERY_INFORMATION 的 IRP 获取全路径时需要注意,不

隔离驱动的原理

隔离驱动的原理

隔离驱动的原理隔离驱动(Isolation Driver)是一种软件技术,在计算机系统中起到隔离和保护作用。

它通过对计算机硬件和软件资源的抽象和隔离,实现不同应用程序之间的资源隔离,确保它们能够独立运行,相互之间不会干扰或影响。

这篇文章将详细介绍隔离驱动的原理和实现方法。

隔离驱动的原理可以分为硬件隔离和软件隔离两部分。

硬件隔离是通过使用硬件资源,如CPU、内存、I/O设备等来实现不同应用程序之间的隔离。

现代计算机系统通常采用虚拟化技术来实现硬件隔离。

虚拟化是指将物理资源虚拟化为多个虚拟资源,在每个虚拟资源中运行一个独立的操作系统和应用程序。

虚拟化技术主要有三种形式:全虚拟化、半虚拟化和容器虚拟化。

全虚拟化是指在虚拟机中运行完整的操作系统,可以在虚拟机中加载任何操作系统和应用程序。

全虚拟化主要通过虚拟机监视器(VMM)来实现,VMM会对操作系统进行修改并拦截所有关键的指令,然后将它们翻译成底层计算机硬件能够理解和执行的指令。

全虚拟化可以实现完全隔离,不同的应用程序无法相互访问对方的数据或指令。

半虚拟化是指在虚拟机中运行修改过的操作系统,这些操作系统能够直接与VMM进行通信。

半虚拟化通常需要对操作系统进行修改,以便它能够使用一组特殊的超级指令集来与VMM进行通信。

半虚拟化比全虚拟化性能更好,但需要针对特定的操作系统进行修改,可移植性较差。

容器虚拟化是指在共享的操作系统内核上创建一个隔离的用户空间。

容器虚拟化可以在同一操作系统上运行多个相互隔离的应用程序,共享同一操作系统内核,但在用户空间中是彼此独立的。

容器虚拟化轻量且性能高效,但无法实现完全隔离。

软件隔离是通过软件技术来实现应用程序之间的隔离。

软件隔离主要通过可执行程序、进程和线程之间的隔离来实现。

操作系统会为每个应用程序分配独立的进程和线程,这样每个进程和线程都可以独立运行,相互之间不会干扰或影响。

此外,操作系统还通过进程间通信(IPC)机制来实现进程之间的通信和资源共享。

浅析WindowsNT内核下的病毒防火墙原理

浅析WindowsNT内核下的病毒防火墙原理

并支持兼容 ; 在线程操作方面也很有特色 , 具备多线程多任务 器 设备之间设置一道安全措施 ,能有效 的拦截 病毒 , 防止 网络 的特 点外,还具有抢先式的功能 , 为用户提供 了多种 多样 地选 恶意攻击 。 择 ;采用 S MP 技术 ,并支持多处理器系 统;支持 C S ( IC 如 当病 毒防火墙运行的时候 , 内存 中会 自动存储着 一些用 以 Itl 统)和 R S 如 P we P 、R 4 0 )多种硬件平 台; 病毒特 征监控的程序 , ne 系 IC( o r C 4 0 等 对系统进行实 时的监控 ,随时观 察并发 如 提 供安全存取控制及容错 能力 , 可与各种 网络操 作系统协调合 现 系统运 行过程 中是否存在有病毒 的迹象 ; 果监控 病毒程序 作 ,如 :UN X I 、No e。W n o vl i d ws NT内核 的意义在于将用 户 的检 测结果表 明文件 中携带有病 毒或者 是具有携 带病毒 的痕 模式和 内核模式分离 ,这可使得系统更 安全 ,稳 定。 迹, 病毒 防火墙就会 自动启动激活, 对相 关文件进行对应处理 。 实际上 , 所有 的 W n o i d ws NT内核 的组件来 说其 本身都是 防火墙在 激活之后首要步骤就是 阻止病毒 的进 入过程 , 并且阻 DLP L 、 E格式的.X E E文件 以及 导入 导出函数 。 因此 , no s 止 携毒文件 的开启 或运行 ,紧 接着对 带毒的文件 进行二 次查 i W dw N T内核的主要组件可 以分 为以下一种: 杀 , 终将病 毒消灭 。 最 病毒防火的工作方式大致上就 是如上述 第 一种就是* ok . e Ntsm1 x ,其 作为系统的核心 ,因而系统 文字所描述 的那样 , 计算机系统进行保护 以此避 免其遭 受到 e 对 中所有 涉及到的执行 函数全部集 中在这里 , 与此 同时这些函数 病毒 的侵 袭而造成损失 。因此,从这个 角度来分析 , 毒防火 病 又 能够起 到调用 其它组件 的作用 。 对于这一部分 的核心组 件主 墙 的实 际作用 并不再是对网络环境 中的病毒进 行简单的监控 , 要包括有进 线程 创建、L C P 、对象管理器 、安全管理、文件 系 它会 对计算机 系统运行 过程 中的所 有涉及 到 的应用 软件进 行 统 、进 线程控制 、异 常处理、 内存 管理器 、V DM、输入输 出 湿湿 的监控 ,全方位、系统化的监控将从真正意义上保 障用 户 和L. 且这些组件 一般情况 下均位于大于 8 10 0 h的地址上 。 0 000 系统 的安全 ,使得用户系统能够长期处于 “ 毒”环境之 中。 无 第 二 种 就 是 作 为 硬 件 抽 象 层 ( ad ae A s at n H rw r b  ̄ ci o 就 当前 计算机 技术的 日益发展 , 病毒 的多样性 也是 其发 展 L yr ae )也就是处于硬件相 关的模块的 1 l Ha. l 隔离层主要 进程 中的一项衍 生产物 。 d 。该 并且有 许多的病毒 的主要传播途径 就 的任务就是将操 作系统中与硬件相关的部分进行 隔离 出来 , 以 是通过 网络 , 这也 就在 一定程度 上为涉及范畴不 同的两种 防火 此提高系统 的可移植性 。 主要的模块 的任务就是负责 实现程序 墙产 品( 毒防火墙和网络防火墙) 病 提供 了交叉使 用的可能性 。 控制 中断 以及硬件输入 输出等等非常底层的 函数 。 一般情况 下 除此之外 , 目前 而言有许多的网络防火墙也增加 了病 毒防火 就 同样是位于大 于 8 1 0 0 h的地址之上 的。 0000 墙所具有 的病 毒检 测和防御的功能 。 与此 同时, 对于一些 网络 第三种就是 * d . ,其作为某些 W n 2 AP NtUd U i 3 I的实现 函 入侵所特 有的后 门软件 ( 诸如木 马之类 的) ,也 同样被 是作为 数, 主要 负责提供核心 模式与用户模式之 间的接 口。 其一般情 “ 病毒 ”范畴,这也就导致其能够轻易地被 “ 毒防火墙 ”监 病 况下 是位 于用户 空间 ,即系统 函数 调用 的过 程就是 从这里 导 控到并实 时进行清 除。 目前的趋势而言 , 就 病毒 防火墙在 网络 出。 安全保护 中 占据着 不可或缺的地位 。 第 四种就是* en l2ml K re . ,其作为类似于 W n x的核心 的 3 i 9 3 w o sN dw T内核 下 的病毒 防 火墙 原理 i n 项组件主要是 负责 实现 一些 函数 , 并且其 中有很多 的函数封

#Windows文件系统过滤器之微过滤器驱动开发指南

#Windows文件系统过滤器之微过滤器驱动开发指南

微过滤器驱动开发指南0.译者序对我来说,中文永远是最美,最简洁,最精确和最高雅的文字。

本文翻译仅仅用做交流学习。

我不打算保留任何版权或者承担任何责任。

不要引用到赢利出版物中给您带来版权官司。

本文的翻译者是楚狂人,如果有任何问题,,或者是QQ16191935,或者是MSN 。

我翻译此文出于对文件系统技术的兴趣。

这就是新的文件系统过滤接口。

其实也不算什么新的东西,微软开发了另一个“旧模型的”过滤驱动,称之为过滤管理器<Filter Manager)。

从而提供了一系列新的接口来让你开发新的过滤器。

确实这套接口变简单清晰了。

你至少避免了包含无数个信息的IRP,避免了请求在各个部件中循环的发来发去,一个分发例程中处理无数中情况,一不小心系统崩溃。

我不知道花了多少时间才弄明白一个简单的缓冲读请求从用户到过滤到文件系统和缓冲管理器,虚拟内存管理器之间的关系!现在你也许不需要再管他们了,仅仅做好自己的过滤工作就可以。

这套接口强大吗?能实现你想要的功能吗?你很快就发现你没有研究过sfilter就看不懂Minifilter,或者是还得从sfilter开始做起更灵活一点。

微软就是这样,拿僵硬而且也不简单的东西来“简化”强大灵活但是设计上一团糟的东西,对于你来说是两者都必须学习,最后你的脑子被微软塞得满满的,不过没关系,我们已经习惯了.此文的原文是《Filter Driver Development Guide》,出自微软的网站。

我在以下这个地址下载得到此文:我尽量在翻译中使文章保持原貌。

如果您认为此文无法理解,建议您首先阅读旧的文件过滤驱动的相关资料。

我认为必须有文件系统和windows驱动的相关知识,才能阅读此文。

我未必总是使用规范的名词,但我总是使用最容易理解的名词。

一些常用的可能不翻译,比如IRP,MDL,有驱动开发经验的人应该可以理解。

另一些可能采用中文<英文)的方式。

一些解释如下:例程<Routine):我不懂得例程和函数有什么不同。

隔离驱动方案

隔离驱动方案

隔离驱动方案1. 引言随着计算机技术的发展,驱动程序在操作系统中扮演着非常重要的角色。

驱动程序作为软件的一部分,负责与硬件设备进行交互,使得操作系统能够正确地识别、管理和控制各种硬件设备。

然而,驱动程序的错误或者恶意代码可能会导致系统的崩溃、性能下降或者安全漏洞。

因此,为了保证系统的稳定性和安全性,提出了一种隔离驱动方案。

2. 概述隔离驱动方案是一种通过软硬件相结合的方法,将驱动程序与操作系统进行隔离,从而保护系统的稳定性和安全性。

通过隔离驱动,可以实现以下目标:•防止驱动程序的错误或者恶意代码影响操作系统的正常运行;•提高系统的容错能力,保证系统的稳定性;•减小驱动程序对系统性能的影响;•防止恶意驱动程序对系统进行攻击。

3. 隔离驱动方案的实现隔离驱动方案的实现主要包括以下几个方面的工作:3.1 虚拟化技术虚拟化技术是隔离驱动方案的基础。

通过将驱动程序运行在虚拟机等隔离环境中,可以实现驱动程序与操作系统的隔离。

常见的虚拟化技术包括:•完全虚拟化:在虚拟机中运行完整的操作系统,使得驱动程序运行在虚拟机的环境中,与主机操作系统进行隔离。

•半虚拟化:在主机操作系统中运行一个修改过的驱动程序,使得驱动程序与操作系统进行隔离,但是性能较完全虚拟化有所下降。

•容器化技术:将不同的驱动程序运行在独立的容器中,每个容器都拥有独立的文件系统、网络等资源,实现驱动程序的隔离。

3.2 异步通信机制为了保证驱动程序与操作系统的正常交互,需要设计一种高效的异步通信机制。

该通信机制应当能够实时地获取驱动程序的状态,并将结果传递给操作系统进行处理。

常见的异步通信机制包括消息队列、事件通知等。

3.3 安全监控机制为了保证驱动程序的安全性,需要设计一种安全监控机制,对驱动程序进行实时监控和分析。

该监控机制可以检测到驱动程序的异常行为,并及时采取相应的措施,防止驱动程序对系统造成危害。

4. 隔离驱动方案的优势与挑战4.1 优势•提高系统的稳定性和安全性,减少由于驱动程序错误引起的系统崩溃和性能下降;•增加系统的容错能力,即使驱动程序出现错误也不会对系统造成严重影响;•减小驱动程序对系统性能的影响,提升系统的性能和响应能力;•增加系统的安全性,防止恶意驱动程序对系统进行攻击。

minifilter 通信的原理

minifilter 通信的原理

Minifilter 是Windows 操作系统中的一种过滤驱动程序,用于在文件系统层面对文件和文件操作进行监控和控制。

它的通信原理主要涉及以下几个方面:1. 注册和加载:Minifilter 首先需要在系统中注册并加载,以便在文件系统层面进行拦截和处理。

注册时,Minifilter 需要提供一个唯一的名称,并指定它要监控的文件系统类型。

2. 过滤器函数:Minifilter 通过实现一系列的过滤器函数来拦截和处理文件操作。

这些过滤器函数包括预创建、创建、打开、关闭、读取、写入等等。

当文件系统执行这些操作时,Minifilter 可以在相应的过滤器函数中进行处理。

3. 通信接口:Minifilter 可以通过与用户模式的应用程序进行通信来实现更复杂的功能。

它提供了一些通信接口,如FltSendMessage、FltSendMessageAsync 等,用于在内核模式和用户模式之间传递数据和命令。

4. 通信方式:Minifilter 的通信方式可以是同步的或异步的。

同步通信是指应用程序发送请求后,等待Minifilter 处理完成并返回结果。

异步通信是指应用程序发送请求后,继续执行其他操作,而不需要等待Minifilter 处理完成。

5. 数据传递:Minifilter 通过数据结构来传递信息。

例如,当应用程序发送请求时,可以通过一个结构体来传递请求的类型和参数。

而当Minifilter 返回结果时,也可以通过一个结构体来传递处理结果。

总的来说,Minifilter 的通信原理是通过注册和加载、过滤器函数、通信接口和数据传递来实现的。

它可以在文件系统层面对文件和文件操作进行监控和控制,并与用户模式的应用程序进行通信,实现更复杂的功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(下转第 118 页)
信息安全与通信保密·2007.9 115
学术研究
Academi c Research
操作并将响应信息发给代理行。 (7) 代理行主机接收到信息后将是否允许交易的指令发
给 A T M 机。 (8) ATM 接收到指令信息,作出相应响应。 (9) 交易结束,用户取款后拔卡离去。
4 结语
此,商业银行在建立 HHS安全信息体系中需充分考虑各种可 能导致安全泄密的细节。
参考文献 [1] 约翰森. 信息技术风险管理的目标[N]. 英国:金融时报, 2006,11,29. [2] Glaessner T,Kellermann T. Valerie McNevin Electronic
Security:Risk Mitigation In Financial Transactions[R] The World Bank working paper,2002,(6):43~49. [3] Glaessner T,Kellermann T. Valerie McNevin Electronic Safety and Soundness:A Four Pillar Approach[R]. The World Bank working The World Bank working paper,2003,(10):12~15. [4] 中国银行业监督管理委员会. 银行业金融机构信息系统 风险管理指[EB]. http://www.cbrc.gov.cn,2006 11. [5] The World Bank Global Dialogue Electronic Safety and Soundness[R]. The World Bank working paper, 2003,(10):5~13. [6] 孙玉冰,林作铨. 层次安全体系及其在银行 ATM 网络 中的应用[J]. 计算机应用研究,1999,(6):34~40.
但是,HSS解决商业银行信息系统安全问题要付出较高的 成本,并且由于交易的随时性,对HSS的执行效率也提出了较 高要求。另外,在 LSS 中,LLS-CA 一般需由 LSS 中处于上级 的机构担任或由信任度较高的第三方担任。这一点尤显关键, 因为一旦 LLS-CA 出现问题,银行可能会蒙受巨大损失。因
solving the security problem of files. This paper focuses on the operating principle and exploitation process of file system
filter driver which is based on Windows NT core, and discusses the applications of file system filter driver in such fields
1 Windows NT文件系统过滤驱动工作原理
1.1 Windows NT文件系统驱动 Windows NT 文件系统驱动是存储管理子系统的一个重
收稿日期:2 0 0 7 - 0 3 - 1 2 作者简介:张静,1982 年生,女,硕士研究生,主要研究方 向:信息安全。
要组成部分,它向用户提供在磁盘或光盘等非易失性媒介信息 的存储、转发,同时和存管理器、高速缓冲管理器紧密结合, 不但保证了应用程序可以准确地提取数据文件的内容,而且提 高了访问效率[1]。用户进程对磁盘上文件的创建、打开、读、写 等操作由WIN 32子系统调用相应的服务来代表该进程发出请 求操作。I/O管理器接收到上层传来的I/O请求,通过构造输 入输出请求包IRP(I/O Request Package)来描述这个请求[2], 然后向下传递给文件系统驱动、存储设备驱动做后续处理,低 层驱动处理完毕后把结果依次向上返回,最后经过I/O管理 器,由WIN 32子系统把结果返回给发出请求的应用进程,整 个对文件的操作请求执行完毕,如图1所示。
【关键词】Windows NT 文件系统;文件系统过滤驱动;IRP;安全 【中图分类号】TP391 【文献标识码】A 【文章编号】1009-8054(2007) 09-0114-02
Principle and Application of Windows NT File System Filter Driver
Windows NT 的 I/O 管理器是可扩展结构,支持分层 驱动模型,这样按照我们的需求开发具有某种功能的驱动程 序插入到这个层次结构当中,截获所需处理的IRP进行处理, 然后再继续向下传递或直接向上返回结果。
1.2 Windows NT文件系统过滤驱动 文件系统过滤驱动是针对文件系统而言,它既可以位于 文件系统驱动之上,也可以被插在文件系统驱动和存储设备 驱动之间。I/O管理器在发送文件操作请求到目标设备对象
0 引言
文件安全性问题已成为当今信息科学领域最重要的课题 之一。目前,解决这个问题的主要技术手段有两种:一是利用 应用层 HOOK(钩子)技术,对 Windows 提供的文件操作函数 (API)及由文件操作所触发的 Windows 消息进行 HOOK,经过 适当的处理达到预期目的,缺点是效率低、稳定性和一致性 差,不适合于大型系统的开发;另一种是开发文件过滤驱动程 序,文件过滤驱动作为一种内核态中间层驱动,不需要改变下 层驱动或用户程序而增加新的功能,具有效率高、可靠性强、 可扩充等特点,成为现阶段信息安全技术研究的热点。
在DriverEntry中首先调用系统函数IoCreateDevice生成 一个控制设备对象 CDO,作用是修改整个驱动的内部配置。 接着对所要监控的目标设备对象进行绑定,过程如下:调用 ZwCreateFile函数获得设备对象句柄ntFileHandle,再通过
3 Windows NT文件过滤驱动在信息安全领 域的应用
上边的绑定是对系统本地卷的绑定,称为静态绑定。当一 个 U 盘插入 USB 端口,一个名为“J”的卷动态产生时,要求 能够生成一个设备来绑定它,称这种绑定为动态绑定。一个新 的存储媒质被系统发现并在文件系统中生成一个Volume的过程 称为 Mounting。过程开始时,文件系统 CDO 收到一个 Major Function Code 为 IRP_MJ_FILE_SYSTEM_CONTROL,Mi- nor Function Code 为 IRP_MN_MOUNT 的 IRP。如果已绑定 了文件系统CDO,则可以得到这样的 IRP,在其中知道一个新 的 Volume 正在 Mounting,这时再按照上边的静态绑定方法来 绑定这个新生成的卷设备对象。微软为我们提供了一个有用的 系统调用IoRegisterFsRegistrationChange,用它来注册一个回 调函数,当系统中有任何文件系统被激活或撤消时,注册过的 回调函数就会被调用,在回调函数中绑定刚激活的文件系统的 控制设备对象,在的分发例程中绑定这个新卷设备对象。
图 2 文件系统过滤驱动工作原理
ObReferenceObjectByHandle函数生成该ntFileHandle描述 的文件设备对象指针FileObject(Windows NT把每个设备当 作一个文件来看待,并用一个 FILE_OBJECT 结构描述其属 性);调用IoGetRelatedDeviceObject得到该文件对象对应的设 备对象fileSysDevice,即我们最后要绑定到目标设备对象上的 附加设备对象;最后我们调用AttachTOTargegDeviceObject 把刚生成的附加设备对象fileSysDevice绑定到目标设备对象 上。成功绑定后,在过滤驱动中截获所关注的 IRP,设置分 发例程,对于不关注的 IRP 调用默认例程直接向下传递。以 上所有工作完成后,清除DeviceObject初始化标记,整个过 滤驱动构造完毕,可以加载使用。
学术研究
Academi c Research
Windows NT 文件系统 过滤驱动的原理及应用
张 静 (北京交通大学计算机与信息技术学院,北京 100044)
【摘 要】文件系统过滤驱动技术是解决文件安全性问题的一种稳定、高效、可靠的技术实现手段。文章重点介绍了 基于Windows NT分层驱动程序模型的文件系统过滤驱动的工作原理及开发过程,并分析了文件系统过滤驱动在文 件加解密、病毒防护、进程控制、文件访问事后审计信息安全方面的应用。
2 Windows NT文件系统过滤驱动开发过程
和其他应用程序一样,驱动函数也有一个主函数,称为 入口函数 DriverEntry,格式为:NTSTATUS DriverEntry ( I N P D R I V E R _ O B J E C T D r i v e r O b j e c t ,I N PUNICODE_STRING RegistryPath)。DriverObject 是驱动 对应的驱动对象,是系统在加载驱动时分配的。 RegistryPath是专用于记录驱动相关参数的注册表路径,也 是由系统所分配。DriverObject驱动对象拥有一组函数指针, 称为dispatch functions,在IRP发送给目标设备之前,编 写这组函数,在dispatch functions中按照功能需求处理这 些 IRP,可以让 IRP 失败掉,或使其成功返回,或对其进行 修改,甚至可以自己构造 IRP 向下层驱动程序发送。
本文在界定信息系统安全及信息系统风险基础之上,引 入 HSS 体系并以 ATM 机交易流程说明 HSS 体系在商业银行 信息系统安全管理中的具体运用。HSS体系作为一种综合数 据加密、信息鉴证、密钥管理、SET 安全地址及交易等技术 的新型层次安全体系,在商业银行信息系统中的广泛运用, 能极大地提高银行内部数据的安全性、信息系统的可靠性, 并具有很强的防抵赖性及预防假冒能力,可以充分满足商业 银行信息系统安全管理之需。
ZHANG Jing
(School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044, China) 【Abstract】Nowadays, file system filter driver is one kind of technology means, which is stable, high-effect, reliable for
相关文档
最新文档