硬盘保护技术的原理和实践初探

摘要:硬盘保护技术在学校、企事业单位、网吧等具有同配置机群的机房广泛使用,它与硬盘的MBR协同工作,可以保护硬盘数据不被恶意修改,删除,方便管理员更高效的管理计算机。
关键字:硬盘保护技术  还原卡   破解
在计算机的日常管理中,最令管理员比较头痛的是系统的安装问题,特别是在计算机病毒猖獗的今天,稍不留意便可使系统崩溃。如用传统的安装方法来重装系统,管理员就会陷入强劳动、低效率的泥潭。硬盘保护技术从人性化设计角度高度关注计算机机房管理人员在部署维护机房时所能力及的问题,提供高效快捷的服务,硬盘保护技术的内涵涉及技术、人力、管理方面,包含了人、财、物等资源的统一结合与合理配置。
一、硬盘保护技术分析
    目前对具有同配置计算机群最有效的管理方法是使用“保护”技术,即在对系统完成安装后,禁止或限制用户对硬盘的写入操作,以达到防护目的。硬盘保护技术又可分为“软保护”和“硬保护”两种。
    早期采用的“软保护”技术,是采用软件安装的方法(如还原精灵)它工作原理是修改引导区,引导区又被称为MBR,它位于硬盘的0头0柱1扇区。基本BIOS Int 13H调用是 BIOS 提供的磁盘基本输入输出中断调用,它可以完成磁盘(包括硬盘和软盘)的复位、读写、校验、定位、诊断、格式化等功能.它使用的就是 CHS 寻址方式,因此最大识能访问8GB左右的硬盘。虽然现代硬盘都已经采用了线性寻址, 但是由于基本Int 13H的制约,使用 BIOS Int 13H接口的程序,如DOS等还只能访问8G以内的硬盘空间。为了打破这一限制, Microsoft 等几家公司制定了扩展 Int 13H标准 (Extended Int 13HH), 采用线性寻址方式存取硬盘,所以突破了8G的限制,而且还加入了对可拆卸介质 (如活动硬盘) 的支持.在扩展Int 13H中没有头、柱、扇区这个概念,它只有逻辑扇区,在扩展的Int 13H中MBR位于是0扇区,如果BIOS中设置的是硬盘启动的话,系统会首先载入这个扇区到内存,然后运行这个代码。还原精灵就是用的是自己的引导代码,这个方法与引导型病毒一样,病毒的目的是破坏,而它的目的是保护,这个代码接管了Int 13H中断,每当我们向硬盘写入数据时,其实还是写入到硬盘中,可是没有真正修改硬盘中的FAT。由于Int 13H被接管,当还原精灵发现是写操作,如果没有激活管理身份,便将原先数据目的地址重新指向它自己定义的一段连续的空磁盘空间,并将先前背份的第二份FAT中的被修改的相关数据指向这片空间。当我们读取数据时,和写操作相反。所以还原精灵需要被保护的磁盘上有较大的空闲空间,用于数据读写的缓冲。 另外,用户不可能格式化真正的硬盘,还是因为被接管的Int 13H,所有对硬盘的操作都要通过Int 13H。
“硬保护”硬盘保护卡的原理也和“软保护”的方法类似,硬盘保护卡也称还原卡,它是一个快捷、灵活、方便的机房环境搭建、部署、维护工具。它是在操作系统启动之前获得机器的控制权。用户对硬盘的操作,实际上不是对原来数据的修改,而是对硬盘保护卡虚拟的空间进行操作,从而达到对系统数据保护的功能。单纯功能的硬盘硬盘保护卡占用的系统资源多,要求硬盘有很大的剩余空间才行,已经逐渐被淘汰。现在出现了网络硬盘保护卡,采用网卡实现硬盘保护卡,将网络和还原技术结合,实现远程的开机关机、重起、还原、对拷、监视、控制等功能。其对拷功能支持一台和数百台机器的数据对拷,每秒可以达到数MB,比传统的维护方法省时省力,可以为大规模机群的管理提供支持。
使用硬盘保护卡,可以将计算机的系统分区或其他需要保护的分区保护起来,可以将硬盘保护卡设定为下次启动或过一定的时间后对系统进行自动还原,这样,在此期间内对系统所作的修改将不复存在,免去了系统每使用一段时间后就由于种种原因造成系统紊乱、经常出现蓝屏而不得不再次重装系统之苦。这对于熟练用户来说也有一定的意义,对那些新手就更不用说了。当然,硬盘保护卡一般也提供了安装模式以安装新的需要正常使用的软件。其实,就笔者的使用经验来看,使用硬盘保护卡甚至比使用GHOST软件来恢复系统还要方便。即使您需要经常安装/卸载一些软件,也可以很方便地用硬盘保护卡来恢复系统。您可以将硬盘保护卡设定为每一星期还原一次,如果需要还原时,将系统时间改一下,那么下次启动时系统就会自动还原了。
二、硬盘保护技术破解与防护
 通过分析原理,我们发现硬盘保护程序是通过修改中断向量来达到保护硬盘不被真正写入的,其中Int 13H是关键,它拦截了Int 13H的处理程序,将自己的程序挂到上面,这也是无法写进数据的原因所在,有的卡同时还修改了时钟中断来达到反跟踪,它会利用早以被它修改过的时钟中断定时检查中断向量表,它一旦发现修改为别的值.就会一一还原。  所以我们从编程的角度来看,就有了下面这样一些解决方法:
 1、既然它拦截了Int 13H的处理程序,将自己的程序挂到上面,那么我们只要把BIOS的Int 13H的程序地址在DOS下填入中断向量表便可大功告成了,不过对于硬保护卡不方便用,而且需要对汇编有一定的基础,最重要的是这个方法用编程的方法来破解很有难度。调用此功能将从磁盘上把一个或更多的扇区内容读进存贮器。因为这是一个低级功能,在一个操作中读取的全部扇区必须在同一条磁道上(磁头号和磁道号 相同)。BIOS不能自动地从一条磁道末尾切换到另一条磁道开始,因此用户必须把跨多条磁道的读操作分为若干条单磁道读操作。
 下面是找Int 13H入口的方法:     
      Debug             运行Debug,最好在纯DOS下
  -   a100    
  -   xor   ax,ax        注意: 前面要加上功能号以选择Int 13H内部的流程,避免进入              其他不经过原始入口的流程    
  -   int 13    
  -   int 3    
  然后输入t回车,不断的重复,直到显示的地址形如 F000:xxxx。记下这一地址,按q 回车退出。这里假设了第一个F000:xxxx就是要找的入口,实际上可以在第2,3,4,。。。。出现,要自己判断一下,通常认为就是第一个。    
  在(0:13H*4)=0:4cH   处填入这个地址。例如得到的地址是F000:1234    
     再次运行Debug   
  -e   0:4c   34   12   00   F0   把得到的原始入口填入Int 13H的中断向量表    
  -q    
 填的时候要仔细,否则会造成死机。有些经过针对性处理的机器,要进一步鉴别。如在Int 13H内部调用Int 1CH。如果在trace过程中发现如下代码 CMP  DL,80(功能是判断是否针对硬盘操作),可以尝试修改成不存在的硬盘号,比如改成CMP  DL,FF(其他的都不要修改),如果测试硬盘已经可写,证明操作已经成功了。
 2、破解密码,这个方法比上一个要简单,还原精灵把自己的密码放在0头0柱8扇区的位置,对于硬盘的0头0柱的63个扇区只有1扇区被使用,我们可以写个代码来分析这些扇区是否被改动,在安装还原精灵前,先保存这63个扇区,然后安装,再读取这些扇区与保存的比较,就可以找到存放真正MBR的扇区与存放密码的扇区,然后我们改动一下密码,再比较存放密码的扇区有什么不同,这样通过分析来找出密钥,很多硬盘保护卡也是把密码保存在前63个扇区里,不过扇区的位置和密钥不一定都一样。凡是密码进行判断肯定有一段代码会把真假密码进行比较,可以使用一些调试工具来破解,如果加密技术不强也可以用什么能查看内存的软件来搜索,这种方法不大适合编程,只适合手动破解。
为摆脱硬盘保护的这个致命的弱点,考虑到如果BIOS里启动第一项锁定为LAN启动,那么即使清除了BIOS设置,硬盘保护卡仍然可以起作用,就可以避免系统被破坏。而主板中BIOS中启动第一项的默认项一般并非为“LAN”启动,这样一旦BIOS设置被清除,BIOS中的设置值被恢复到默认值,硬盘保护卡就不能起作用。虽然大多数硬盘保护卡还具有还原BIOS设置的功能,但硬盘保护卡不起作用,它的还原BIOS设置的功能也就成了一句空话。所以现在很多硬盘保护卡(如联想、长城计算机自带的保护卡)把BIOS中启动第一项锁定为LAN启动,实际上在BIOS中根本没有提供BIOS第一启动项的设置,在BIOS中所显示的第一启动项设置实际上是第二启动项的设置。BIOS中启动第一项设置为任何值硬盘保护卡均可起作用。
应该说这样已经达到了硬盘防护的预期目的,一般情况下如果用户仅是清除BIOS设置,重新启动电脑后,硬盘保护卡仍可起作用。但是经过试验,如果用户在清除BIOS设置后,随即设置新的BIOS口令,并在BIOS中将系统口令的检测状态(“PASSWORD CHECK”)由“SETUP”改为“SYSTEM”,也就是把原来只是在进入BIOS设置时才需输入口令改为每次开机均需输入口令,这时电脑开机后即停留在等待输入开机口令的状态,只有在输入正确的口令后,硬盘保护卡的还原BIOS设置功能才会起作用,并全部自动恢复到原来管理员所设置BIOS,当然也包括管理员所设置的口令。但由于此时管理员并不知道用户所设的口令,只能采取打开机箱清除原BIOS的方法,这样有可能会给日常管理带来麻烦(实际上,该问题在联想电脑中也存在)。 为解决该问题,并参考保护卡在BIOS里启动第一项锁定为LAN启动时采用的办法,厂商提供了以下几种解决方法: 一是为该类型主板设定一通用密码,这样一旦密码被用户更改,管理员可用通用密码开机,并使硬盘还原功能生效;二是再次重写BIOS,采用类似于锁定BIOS中的启动第一项的方法,将BIOS中的超级用户口令的设置功能锁定,并使其保持为刷新BIOS前所设定的值,这样管理员就拥有了一个用户无法更改的超级用户口令。当然也可以在BIOS中干脆将设置用户口令的功能去除或是在BIOS中将系统口令的检测状态(“PASSWORD CHECK”)锁定为“SETUP”,这样,硬盘保护卡可以工作得更安全可靠,避免了拆卸机箱重装系统的麻烦。
无疑,硬盘保护技术给计算机的管理带来了极大的便利。但是,也不能说硬盘保护技术就无懈可击,由于硬盘保护技术过于依赖底层,攻击者很容易就可以通过修改底层设置进行破解,比如上文提到的通过填入Int 13H中断向量值来达到屏蔽掉还原卡的效果。此外还原卡密码的安全性也令人担忧,很多网站提供了针对还原卡的破解工具。部分品牌带有的还原卡通用密码也无形中降低了防护的安全性。再有当隐藏扇区中保护卡保存的数据受到损坏时或硬盘本身受到了物理损坏时,硬盘其它被保护的资料就很容易出现问题,如发生硬盘死锁、无法读取数据等现象。而由于用户对还原卡功能不熟悉造成的数据丢失现象更是屡见不鲜。所以,只有在日常工作中注意重要文件的备份,加强保护意识,不断学习,这才是最有效的防护手段。

文章如转载,请注明转载自【网管小王的独立博客】:http://www.5iadmin.com/

你可能感兴趣的:(能力,硬盘,管理员,的,还原卡)