基于磁盘过滤驱动的硬盘保护技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本栏目责任编辑:贾薇薇
第 5 卷第 35 期 (2009 年 12 月)
Computer Knowledge and Technology 电脑知识与技术
理,并不会真正修改物理磁盘上的真实数据。 重启系统后,所有缓存的数据被丢弃,系统重新回到原来设置的初始状态。
系统加载文件系统后,按照正常运行,下一步是加载磁盘驱动。 如需要保护分区,就在这里进行挂接磁盘驱动。 在文件系统加载
2 具体实现
微软自带的系统还原系统主要是基于文件系统的过滤功能, 通过安装的文件系统 过 滤 驱 动 sr.sys,配 合 Srrstr.dll、Srsvc.dll、Srclient.dll,监 听 系 统 以 及 某 些 应 用 程 序 文 件 的 改变,并使用写时拷贝(copy on write)技术,自动创建易于识别的还原点。 这种系统还原 只要跳过文件系统的读写操作保护就会失效。
Key words: INT; filter driver; hard-disk protection; IRP
传统的硬盘保护软/硬件,主要是拦截和接管 INT13H 中断,比如现有常见的还原卡就是在引导系统前就预先修改中断表,用自己 的处理函数替换了正常的 INT13H,在上层系统对磁盘进行存取时,进行相应的偏移,这种保护技术几乎兼容所有的操作系统,并且对 硬盘上的数据能起到完整的保护作用,但它消耗大量的存储空间(和被保护空间为 1:1),不兼容特殊工作的硬盘(如 SCSI 硬盘),保护 空间大小有限制(如 DOS 兼容模式的 2.1G,LBA28 位寻址的 137G 限制),并且容易被破解(找到原始的 IHT13H 的地址,修改即可)。
本文介绍了一种基于磁盘过滤驱动的硬盘保护(还原)技术,利用微软本身的系统架构,对系统中读写磁盘的操作进行检测和 过滤,以达到对磁盘数据的保护。
1 磁盘过滤驱动的原理
微软的 Windows 在内核里对设备对象的管理是分层的,同时,用户对任何设备的访 问都最终会以 IRP(I/O 请求包)的形式发送到目标设备对象驱动中。
图 3 映射保护
除了备份保护,还有一种映射保护。
同样,假设需要保护的扇区是扇 区 10,那 么 这 个 扇 区 将 被 保 护 起 来 ,当 用 户 进 行 写 操 作 的
时 候 ,表 面 上 看 ,用 户 还 是 对 扇 区 10 进 行 操 作 ,其 实 数 据 已 经 被 写 到 别 的 扇 区 ,比 如 是 扇 区
本栏目责任编辑:贾薇薇
计算机工程应用技术 10107
斥进行,这时可以对 IRP 进行排队。 在创建驱动对象的时候指定 DriverStartIo 例程。 另外 IRP_MJ_WRITE 和 IRP_MJ_READ 都要进
行排队,两者的 IRP 类似,可以将两者的例程指定为同一个:
…… DriverObject->DriverStartIo DriverObject->MajorFunction[IRP_MJ_READ] DriverObject->MajorFunction[IRP_MJ_WRITE] ……
Tel:+86-551-5690963 5690964
基于磁盘过滤驱动的硬盘保护技术
魏希三 1,2,董巍 2
(1.武汉大学 计算机学院,湖北 武汉 430072;2.襄樊学院 计算机教学中心,湖北 襄樊 441053)
摘要:针对传统利用中断方式的磁盘保护有不少安全隐患,分析了一种基于磁盘过滤驱动的硬盘保护工作机制。 该机制的核心思想 是在对上层操作系统透明的情况下,重定向对磁盘操作的 I/O 请求包,在重启系统后自动清除缓存数据。 由于工作在操作系统内核 层增强了保护功能的安全性。
在 StartIo 例程里,处理完一个 IO 事件以后要用 IoStartNextPacket 函数申请下一个 IO 事件
void DFIoStart(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) {…… IoStartNextPacket(DeviceObject, TRUE); ……} 对 IRP 排 完 序 ,接 下 来 就 要 对 IRP 包 的 数 据 进 行 移 位 和 存 写 ,这 里 有 两 种 实 现 方 式 :备 份
ISSN 1009-3044
CCoommppuutteerr KKnnoowwlleeddggee aanndd TTeecchhnnoollooggyy 电电脑脑知知识识与与技技术术
Vol.5,No.35, December 2009, pp. 10106-10107
E-mail: kfyj@cccc.net.cn 第 5 卷第 35h期ttp://(w2w0w09.dn年zs1.n2et月.cn)
(1.Computer School of Wuhan University, Wuhan 430072, China; 2.Computer Teaching Center, Xiangfan University, Xiangfan 441053, China )
Abstract: The traditional method of disk protection using interrupted many security risks, analysis of a filter driver for hard disk -based protection mechanism. The core idea of the mechanism is operating in the upper transparent circumstances, the redirection operation of the disk I/O request packet, in the reboot the system automatically clear the cache data. As a result of the operating system kernel layer of enhanced security protection.
100,那么用户再对扇区 10 进行操作的时候,就会被转移到扇区 100。 如果用来自百度文库想恢复数据,直
接就是恢复的扇区 10 的数据。 图 4 是用户进行读操作的过程,当数据进入后,首先要读取保护位图,查看模块是否被保
图 4 读操作
护,如果被保护,进入映射表查找数据存储的模块。
同时,为了防止应用程序直接存 取 物 理 磁 盘 设 备 ,即 \Device\HarddiskX\DRX,绕 过 磁 盘 卷 的 过 滤 驱 动 ,通 常 还 会 再 创 建 一 个 磁
= DFIoStart; = DFReadWrite; = DFReadWrite;
在 IRP_MJ_WRITE 和 IRP_MJ_READ 例程里把接收到的 IRP 投递到 StartIO 队列
NTSTATUS DFReadWrite(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { IoMarkIrpPending(Irp); IoStartPacket(DeviceObject, Irp, 0, NULL); return STATUS_PENDING; }
用户按一定的规范编写并安全驱动,由系统在特定时候加载,使用户层在对某些设 备进行的操作请求按一定的次序,一层又一层地经过这些驱动,每一层的驱动可以选择 对这些请求进行修改、下传或者是抛弃。
通常使用一个磁盘过滤驱动,建立一个磁盘过滤设备,Attach 到磁盘卷设备,即 Device\HarddiskVolumeX(X 为数字)上,这样可以监控系统对磁盘数据的读写、重定向等。
保护和映射保护。
备份保护是最常用的保护方法。 如图 2 所示,假设用户想要对扇区 10 的数据进行保护,数
据将被备份到另一个区域,这里假设这个区域是扇区 100,那么当用户再进行操作时,实际还是
对扇区 10 进行操作,如果扇区 10 遭到破坏,那么恢复的时候将会把扇区 100 的数据重新拷贝
到一个暂存区扇区 10。 备份保护要做两方面的事情:
关键词:中断;过滤驱动;硬盘保护;I/ O 请求包
中图分类号:TP334 文献标识码:A 文章编号:1009-3044(2009)35-10106-02
The Technology of Hard-disk Protection Method Based on Disk Filter Driver
WEI Xi-san1,2, DONG Wei2
图 2 备份保护
1) 判断是否需要保护;
2) 记录备份到的扇区信息。
如:建立一个索引表格记录扇区 10->扇区 100 这个关系。
优点:简单,安全。
缺点:占用空间太多。 因为一个扇区只能存储 512 字节,但是每次记录索引表格备份关 系
的时候都要用到 8 个字节,这样磁盘空间被大量占用。 解决方法:建立有效数据位图,这样可以把索引表格缩小。
盘过滤设备,并 Attach 到物理磁盘设备上,来过滤对真实物理磁盘设备的读写 。
3 结束语
目前的硬盘保护卡(还原卡)多使用磁盘过滤驱动来做数据还原和保护。 由于它工作在内核层,所以破解的难度系数高,工作稳 定。 但随着机器狗等更多能穿透保护的病毒出现,使得这种保护不是一劳永逸。 今后在更底层比如直接端口 IO 监控上还有完善的 空间。
参考文献:
[1] MJ0011,还原系统保护攻防[EB/OL].http://hi.baidu.com/mj0011/blog. [2] 张帆,史彩成.Windows 驱动开发技术详解[M].北京:电子工业出版社,2008. [3] 刘蓬.用 DDK 开发 WDM 驱动程序[J].计算机应用,2003(S2). [4] 彭海云,胡洪安.磁盘免疫系统设计与实现[J].河南大学学报:自然科学版,2009,39(3). [5] Cant C.Windows WDM 设备驱动程序开发指南[M].孙义,马莉波,译.北京:机械工业出版社,2000.
而基于磁盘过滤驱动的保护系统要对所包含的分区或磁盘的读写都经过过滤处
图 1 磁盘请求路径及重定向
收 稿 日 期 :2009-09-10 作 者 简 介 :魏 希 三 (1976-),男 ,实 验 师 ,工 程 硕 士 ,主 要 研 究 方 向 为 计 算 机 专 业 实 验 及 网 络 工 程 。
10106 计算机工程应用技术
这种硬盘保护技术的优点在于:因为过滤驱动介于磁盘驱动和用户层之间,所以它是 设备无关的, 不用考虑当前机器上安装的是多大的磁盘, 也不用考虑磁盘是 IDE 的还是 SCSI 的,因为这些工作都由更底层的磁盘驱动来完成了。系统会把用户级对文件的读写操 作转化成 IRP,交由内核的磁盘对象,内核再根据设备栈上挂着的驱动顺序,一个个地把 IRP 发给它们。 因为由驱动完成,可以在驱动中做稍微复杂的计算,实现以下功能:使用比 被保护区要小的存储区,存储区可以不连续,还可以指定存储区的有效期等功能。
后磁盘驱动加载前,截断操作,加入自己的过滤驱动,这样再挂接磁盘驱动继续进行系统启动。
一个完整的磁盘过滤驱动的例子可以参考微软 DDK 里的一个例子:\src\storage\filters\diskperf。
首先要考虑多线程和多 CPU,有时候可能会有多个对磁盘的读写 IRP 同 时 到 达 了 驱 动 内 部 ,要 考 虑 到 对 存 储 区 的 转 存 应 该 互
相关文档
最新文档