系统文件的完全清除方法详解( 二 )



专用的硬件设备能够精确地检测出信号强度的实际值 , 将这个值减去当前数据位的标准强度 , 就得到了被覆盖数据的副本 。理论上 , 这个过程可以向前递推七次 , 所以如果要彻底清除文件 , 必须反复覆盖数据七次以上 , 每次都用随机生成的数据覆盖 。

第二种数据恢复技术的依据是 , 磁头每次读/写数据时 , 不可能绝对精确地定位在同一个点上 , 写入率莸奈恢貌换岣蘸酶哺窃谠吹氖萆稀T惺葑苁腔崃粝乱恍┖奂#米ㄓ玫纳璞缚梢苑治龀鲈惺莸母北??称为影子数据 。当然 , 如果我们反复执行覆盖操作 , 原有数据的痕迹也会越来越弱 。

● 影子数据:被覆盖的数据总是与新写入的不离左右 , 就象人的影子总是紧跟着人 , 因此被覆盖的数据就称为影子数据 。英文功力好的读者可以参见这篇专著:http://www.forensics-intl.com/art15.HTML 。

通常而言 , 能够恢复已删除、覆盖的数据应该算是一件好事 , 当然 , 某些必须彻底清除数据的场合除外 。这方面最为著名的标准是美国国防部订立的磁盘清洗规范 , 它要求数据必须覆盖三次:第一次用一个8位的字符覆盖 , 第二次用该字符的补码(0和1全反转的字符)覆盖 , 最后用一个随机字符覆盖 。不过这个清洗方法不适用于包含高度机密信息的媒介 , 这类媒介必须进行消磁处理 , 或者销毁其物理载体 。当然 , 对于大多数场合来说 , 简单的覆盖处理已经足够 。
四、被遗忘的角落

删除和覆盖文件还不能清除硬盘上的所有敏感数据 , 因为数据可能隐藏在某些意料之外的地方 , 所以文件占用的每一个扇区都必须彻底清洗??所谓扇区 , 就是大小为512字节的数据片断 , 每个簇包含多个扇区 。

向磁盘写入文件时 , 文件的最后一部分通常不会恰好填满最后一个扇区 , 这时操作系统就会随机地提取一些内存数据来填充空余区域 。从内存获取的数据称为RAM Slack(内存渣滓) , 它可能是计算机启动之后创建、访问、修改的任何数据 。另外 , 最后一个簇中没有用到的扇区就原封不动 , 即保留原来的数据 , 称为Drive Slack(磁盘渣滓) 。问题在于许多号称安全删除文件的工具不会正确清除内存渣滓和磁盘渣滓 , 而这些被称为渣滓的地方却可能包含大量的敏感信息 。

在NTFS文件系统中 , 每个文件包含多个流 , 其中一个流用来保存访问权限之类的信息 , 另一个流用来保存真正的文件数据 。除此之外 , NTFS还允许额外的数据流 , 即ADS(Alternative Data Stream) , ADS可以用来保存任何信息 , 最常见的用途是保存图形文件的缩略图 。由于许多安全删除文件的工具不能清除ADS , 所以即使存放文件实际数据的流已经清除 , 但缩略图仍可能泄露机密 。微软知识库文章319300(http://support.microsoft.com)介绍了如何防止系统创建缩略图使用的流 , 即删除注册键HKEY_LOCAL_MacHINESystemCurrentcontrolsetControlContentindexFilterTrackers 。

●ADS:ADS这个缩写词经常用来表示活动目录服务(Active Directory Services) , 不过本文中ADS是指“可选数字流” , 是文件主体数据之外的附属信息存储区域 。就象你的公文包 , 包里面是正式存放物品的主空间 , 但包的外面还会有一二个附属小口袋便于快速取用物品 , 这些小口袋就相当于ADS 。

ADS已是人们熟知的隐藏数据和病毒之地 , 经常被计算机犯罪分子利用 。但除此之外 , 硬盘上还有其他可以隐藏数据的区域 。

扇区是在低级格式化期间创建的 , 通常由硬盘制造厂完成 。低级格式化工具会标记出损坏的扇区 , 从而避免磁盘控制器向损坏的区域写入数据 。簇包含多个扇区 , 由高级格式化工具创建 , 如Windows或DOS的format命令 。如果高级格式化期间发现坏扇区 , 整个簇被标记为坏簇 , 但是 , 坏簇里面还有好的扇区 , 有些人就利用这些扇区来隐藏数据 。

推荐阅读