还原系统是靠数据保护和还原技术为基础的对计算机运行和数据进行安全防护的产品。它分为软件还原和硬件还原。它通过磁盘设备过滤驱动来实现,并建立一个磁盘卷设备,通过磁盘设备上的过滤驱动进行文件过滤。在计算机启动的过程中加载,从内核层保护文件不被修改。当Windows重新启动后硬盘数据被还原。如果我们断开附在物理设备对象上的过滤驱动程序,让系统的过滤驱动失效,就可以对物理磁盘设备发送磁盘读写请求,还原就被直接穿透了,这就是穿透还原。
1、文件系统过滤层穿透技术
文件系统过滤驱动是一种为文件系统提供具有附加值功能的驱动程序。它作为Windows NT执行体的一部分运行,是一种核心模式组件。文件系统过滤驱动按不同的种类可以分成日志记录、系统监测、数据修改或事件预防几类。可以过滤一个或多个文件系统,也可以过滤文件系统卷的I/O操作。文件系统过滤驱动程序能防止目标主机的物理磁盘不被木马程序写入。过滤驱动程序是应用层和下层文件系统之间中间层,它是透明的,可以不依赖于具体的应用程序和下层物理设备而实时监视文件访问或重定向。还原软件正是利用了这一点,用过滤驱动程序截获对需要备份的文件的所有写操作信息,并把这些信息传送到冗余设备的文件系统,使之采取相同的动作,从而保持原数据与备份数据状态的实时同步。
文件系统过滤层依附在文件系统驱动之上,因此断开文件系统过滤驱动的依附,就能穿透文件系统过滤驱动。只有穿透文件系统过滤层,才能实现写入木马程序,因此文件系统过滤层穿透技术是穿透还原系统实现的关键技术之一。如何穿透文件系统过滤驱动,大致可分为以下几种情况:
1)DR0设备过滤设备链摘链。该方法的核心思想是将附加于磁盘设备的文件系统过滤设备从设备对象栈断开,这种方法要摘除在DR0上的物理设备;一般的实现方式是,将磁盘设备对象中附加设备域赋为零,这样就能成功清除过滤设备。此后,所有请求就不会通过过滤设备,而是直接到达磁盘设备,这样文件系统过滤层就被成功攻破了。国内大部分还原系统都没有办法对抗这种技术。但是这种技术存在一些缺陷的,那就是只能摘除在硬盘DR0上的物理设备,而文件请求要先到达磁盘卷,如果在过滤设备被摘除前文件请求已经到达磁盘卷,并且该请求不能被正确响应,很可能对系统造成影响。
2)创建一个可作为磁盘卷挂载到文件系统上的虚拟磁盘设备,建立虚拟磁盘到真实磁盘的读写映射,进而保证读写请求能被发送到下层。与真实磁盘操作没有区别,操作结果可以成功的穿透还原。该方法具体实现还可采用通过向虚拟磁盘设备发送IRP文件I/O请求,再由独立的线程构造SCSI Request Bloc请求信息块,并将此请求信息块发送到下一层磁盘设备。
3)直接在用户模式穿透还原系统而不使用驱动程序。通过磁盘管理系统提供的Pass Through指令可以获取磁盘信息,甚至直接R/W磁盘扇区而不用向磁盘发送直接请求。IDE/SCSI/ATA 磁盘接口的Pass Through指令都能穿透还原,用户模式下通过Devicelocontrel函数对Pass Through指令的调用发送请求。在用户模式下之所以能够达成攻击是因为大多数还原系统对此过滤不严,甚至根本没有过滤而导致的。
除了上述方法之外,还有其他一些方法,如还可以直接操作端口驱动,比如USB,更底层的磁盘操作:端口驱动、直接I/O等等,缺点是实现难度大,通用较麻烦。还有一种方法是可以摘除其他一些过滤设备,Attach到还原系统上,样就可以先于磁盘管理系统获得对磁盘的请求,进而实现对文件系统过滤层的穿透。
2 通过定位系统文件在磁盘的位置直接读写物理磁盘
Windows 98中的系统文件检查(SFC)是微软引入Windows操作系统的系统文件保护功能。而在Windows 2000中这项功能则称为Windows文件保护(WFP)。正常情况下系统文件可以由Windows的服务包、补丁和操作系统升级程序替换。也可以由Windows更新程序或Windows设备管理器/类安装程序替换。WFP会监控系统文件夹,系统文件夹下包含了受到保护的系统文件。一旦发现系统文件夹内的文件发生改变,WFP就会进一步确认发生改变的文件是否是受保护的系统文件。如果是的话WFP就会确认新文件的版本,如果文件版本正确,WFP还会根据文件的数字签名来判断新文件是否正确。若确认保护文件是被非法替换或修改,WFP就会从dllcache文件夹中复制正确的源文件还原受损文件。由此要想修改系统保护文件必须逃脱WFP的监控,方法之一是定位系统文件在磁盘的位置,直接读写物理磁盘。为了定位系统文件在磁盘的位置,有必要对硬盘结构及文件系统结构作一介绍。
硬盘只有对它进行了分区、格式化后才可以使用,对于Win9x/Me操作系统来说一般要将硬盘分成五个部分:主引导扇区、操作系统引导扇区、FAT表、DIR目录区和Data数据区。
1)主引导扇区,它是硬盘的第一个扇区(0柱面0磁头1扇区),包括主引导记录MBR(Main Boot Record))和分区表DPT(Disk Partition Table),大小512字节。通过它完成系统BIOS向操作系统的交接。主引导记录MBR是物理第一硬盘的第0磁头0磁道1扇区,存放系统主引导程序,占用主引导扇区的前446个字节,其作用就是检查分区表是否正确以及确定哪个分区为引导分区,在程序结束时,把该分区操作系统引导扇区调入内存加以执行。MBR不夹带操作系统的性质,具有公共引导的特性。需要说明的是MBR是由分区程序产生的,不同的操作系统这个扇区的内容代码可能不尽相同,但功能都是使其中的一个活动分区获得控制区,正常启动系统。分区表DPT在主引导区中从地址BE开始到FD结束,占用64个字节。分区表以80H或00H为开始标志,以55AAH为结束标志,结束标志位于本扇区的最末端。每个分区占用16个字节。所以一个硬盘最多只能分成四个主分区,其中扩展分区也是一个主分区。随着硬盘容量的迅速扩大,引入的扩展分区可以不受四个主分区的限制,把硬盘分区数扩展到“Z”。主引导扇区的数据结构如图1:
2)操作系统引导扇区OBR(OS Boot Record),是操作系统可直接访问的第一个扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),它包括一个引导程序和一个本分区参数记录表,这个参数记录表被称为BPB(BIOS Parameter Block)。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件,是的话就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。每个逻辑分区都有一个OBR,OBR由高级格式化程序产生,其参数视分区的大小、操作系统的类别而有所不同。 3)文件分配表FAT(File Allocation Table),它是DOS/Win9x系统的文件寻址系统,FAT区紧接在OBR之后(对于FAT32格式,第一个FAT表的位置是从引导扇区开始的第32个扇区),记录的是磁盘中每个簇的使用情况,其大小由本分区的大小及文件分配单元的大小决定,可以追踪记录每一段程序或文件的位置,从而使OS能够根据它找到相应的文件。FAT对于文件管理非常重要,所以有两个FAT,其中一个是作为备份用的。当操作系统或应用程序,将数据写入磁盘时,必须在磁盘上找到相应的可以利用的扇区;文件分配表FAT就是记录扇区地址的。 (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)