WinHex进行取证调查
用WinHex 进行取证调查
本文介绍如何使用 WinHex这个数据恢复和检测工具来提取和保护数字证据。由于人们都经常需要恢复丢失的数据;或者也许会怀疑员工有违法行为发生,因此硬盘的检测非常重要。
不论是你希望将恢复或检测过的数据作为法庭证据来惩罚违法职员还是仅供自己使用,应该选择一个优秀的取证工具和技术来恢复数据并保证其能成为证据使用。我推荐用户使用WinHex,这是由德国的X-Ways Software Technology AG公司推出的产品。
WinHex是什么?
WinHex是一款高级的十六进制编辑工具,它包含了强大的数据恢复和分析能力。价格为139美,与专业的数据取证软件的价格(美元)相比,确实非常便宜,但是WinHex的功能却一点也不输给后者。比如具有简单的用户界面,可以检测Raid磁盘阵列,并且是在法律中指定的可以被法庭用于数字证据检测的工具。当然,对于我们大家来说,基本不需要这么昂贵的解决方案。
数字证据 不论是为了有效地恢复数据还是为了保证调查的有效性,你都应该遵循以下由计算机取证顾问给出的几点原则:
注意以下原则所针对的证据都是不会因电脑断电而丢失的。
尽可能快的获取包含可疑数据的设备。冻结证据越快,你越有可能从中检索到有用的证据。
不要超越你的法律权限取证。你也许有权利封锁员工工作用的电脑,但是当你有任何怀疑时,最好先向律师咨询。
当你获取了可疑的硬盘后,要防止任何操作系统对其上的数据进行任何修改或覆盖。尤其是存储在自由空间、交换文件空间或者空余空间的数据。
不要用可疑硬盘启动,也不要运行其上的任何软件或将任何数据保存在可疑硬盘上。你应该在其它硬盘上启动程序,将可疑磁盘的数据进行备份,并将分析数据保存在其它磁盘或媒介上。
生成原始磁盘的hash 码,如果有可能,还可以使用专业的时间戳服务。
对于包含可疑数据的磁盘进行精确的,逐扇区的拷贝(克隆)。
使用hash 码校验克隆后的数据,确保克隆的准确性。
分析和收集数据。记录所作的分析工作。当然,这一切都是针对克隆的磁盘所作的。在分析数据时,你应该使用某些程序(比如WinHex)来分析磁盘并在不改变文件创建日期和其他文件信息的前提下进行拷贝工作。
你也可以针对文件生成hash 码,校验这个hash 码可以保证源文件与拷贝出的文件是相同的。
按需求打印相应的数据。
可移动磁盘:庭审的一大挑战
目前电脑都可以快速连接外部硬盘驱动器,各种接口的连接设备都有,从便宜的 USB2.0到比较昂贵的IEEE
1394(火线)外置硬盘盒,都是很容易买到的产品。
从取证的角度来说,最大的问题是基于Windows的操作系统在接入外部存储设备后,会自动在其上写入数 据,而不是完全以只读形式加载外部设备。举个例子,当一个外置硬盘加载到系统中,Windows 会首先对 其进行检测,如果外置硬盘上没有回收站文件夹,系统就会自动建立一个。然后根据操作系统的不同,不论是FAT或NTFS文件系统都会写入不同的信息。如果没有特殊的磁盘拷贝硬件(比如Guidance Software公司的 USB Write-PROtect 等产品) 来支持只读形式的加载方式,
那么外置硬盘中的可疑数据就没有足够的可靠性了。
假设你对数据的分析不需要那么专业,那么也许你可以接受上面提到的数据写入的问题。下面几个建议可以帮助你最小化由于加载硬盘带来的数据改变:
在加载外置硬盘前,先关掉所有向硬盘写入数据的程序,比如Norton Protected Recycle Bin。
通过Windows 2000 的计算机管理工具删除驱动器盘符来卸载硬盘(之后也许你需要重新启动一次)。这样做之后,外置硬盘将不会显示在 Windows Explorer 中,但是WinHex 还可以访问这个磁盘(因为WinHex 是通过BIOS访问硬件的)。
创建Hash
Hash 码可以说是数据文件的指纹。它可以用来表明两份或者多份数据是否是完全一致的。这种判断是完全 有根据的,因为两个不同的数据文件具有相同的Hash 码的概率相当相当低,这就好像是两个完全不同的人 拥有相同的DNA 一样,几乎不可能出现。
法庭上所认可的Hash 码一般是采用MD5 (128位), 以及SHA (160 位)演算出来的。WinHex 可以计算这两种形式的 hash 码,并可以采用其它文件验证形式,比如校验和(8,16, 32, 64位), 循环冗余校验(16 和32 位),256位的 SHA,以及 PSCHF (256 位)等校验形式。
Hash 码要比校验和更具有安全性,这是因为理论上讲,犯罪份子可以修改可执行文件,并通过修改其中的 无用数据生成与原可执行文件完全相同的校验和。不过据研究计算机安全的人士,如编写 Computer Forensics 一书的Warren G. Kruse II 以及Jay G. Heiser 表示要想仿冒MD5 或SHA 这样强壮的hash 码,以目前的计算机性能来说,是不可能实现的。
文件的hash 码
作为计算机检查人员,你肯定会经常对单个文件进行 hash 码生成工作,以及生成整个硬盘的 hash 码。要了解生成 hash 码的方法,最简单的途径就是拿一个简单的文本文档来实践一下。你可以打开 WinHex 然后通过文件|打开(File | Open)菜单打开一个 Word文档。
点击工具|计算 Hash(Tools | Calculate Hash)菜单,然后在弹出窗口中选择 MD5并点击 OK 按钮。注意生成的字符串就是该文档的 hash 码了。比如我这个文档的 hash 码是:
62661D6194B818DD67B1A48
下面在Windows Explorer 中将这个文档复制一份,然后按照上面的方法在 WinHex 中生成文档副本的 hash码,你会发现,由于这两个文档内容是完全一样的,因此生成的 hash 码也是完全相同的。
下面我们来做一个小小的试验。在 WinHex 中关闭文档副本,然后用 Word 打开文档副本,并在文档结尾处添加一个空格。保存后关闭 Word,然后再用 WinHex打开这个文档并生成 hash 码。通过对比 hash 码,你可以发现,就算仅仅添加了一个空格,新的 hash 码也与原文件的 hash 码有了很大的差异。由此就可以判断出这个文本文件的内容是经过修改的。
接下来,我们在 WinHex 中关闭该文本文档,然后再次用 Word打开它,并除掉文档结尾添加的那个空格,保存并关闭文档。之后用 WinHex 生成 hash 码。也许你会认为经过这次修改,文档副本和原文档内容是完全一致的,因此这次生成的 hash 码会和原文档一致,但是实际上,这次生成的 hash 码依然与原文档的 hash 码不同。我们列出了这个简单的试验所得出的几个 hash 码:
原始文档:62661D6194B818DD67B1A48A7803A2AB
原始文档的副本:62661D6194B818DD67B1A48A7803A2AB
在副本结尾添加空格:A37857059E82908CA7B6B18DFEEF68D4
删掉结尾的空格:3172284159CA1CD109BCA45D8C298EED
这个结果也许会令你感到奇怪,为什么内容一样的文档会有不同的hash 码。实际上,很多时候是Word 本身在作怪,它会在用户保存文档时添加或修改一些隐含的数据项,比如文档版本以及最后修改日期时间等。因此就算你在修改完文档后执行Undo 命令取消修改,最终计算出的hash 码也与原文档完全不同了。
需要注意的是,如果你用WinHex 编辑文档,再用它恢复,那么最终生成的hash 码将和原文档的hash 码相同。我这么说的意义在于,有时候,黑客会将他的机密数据存放在数据文档的无用字段中。如果你有该文档的原始版本,那么就可以和被怀疑存有可疑信息的文档进行比较,就算犯罪分子可以篡改文档的创建和修改日期等信息,在比较hash 码时也能轻易显示出二者到底是否完全一致。
上文所得出的另一个结论是,尽量用一些专业的查看器来查看文件,比如Quick View Plus这要比使用创建该文件的程序进行查看更可靠,它可以防止标准的应用程序将任何隐含信息写入被怀疑的文件,从而破坏证据的可信性。
磁盘的hash 码
生成磁盘的hash 码和生成文件的 hash 码基本是一样的,最大的差别可能就是二者耗时不同。在我 500 MHz的笔记本上,通过USB2.0 接口连接一个外置硬盘,生成 MD5 hash 码需要大约1.5小时
生成磁盘hash 码的方法是这样的:首先卸载磁盘;进入开始|控制面板(Start | Control Panel),双击管 理工具(Administrative Tools),在管理工具窗口中双击计算机管理(Computer Management)。然后点击磁盘管理(Disk Management)文件夹。之后,你会看到连接在系统上的所有磁盘,如图 A 所示。
图 A:Windows 2000 计算机管理可以显示所有硬盘的状态。
右键点击你所希望卸载的磁盘驱动器,然后选择更改盘符和路径(Change Drive Letter And Path)。在更改盘符(Change Drive Letter)对话框中,点击卸载(Remove)。之后会弹出一个警告信息,我们点 Yes 关闭它。此时,这个磁盘就不会显示在 Windows Explorer 窗口中了。
下面,开启WinHex,并在工具|磁盘编辑(Tools | Disk Editor)菜单中选择这个磁盘。在 Edit Disk 窗口中双击要调查的磁盘,如图 B 所示。WinHex 对磁盘的访问是物理性的,它会绕过 Windows 2000 直接通过BIOS 对磁盘进行访问。
图 B:Hard disk 1 是我们此次调查的目标
点击工具|计算 Hash(Tools | Calculate Hash)菜单,并在下拉菜单中选择 MD5。之后会弹出一个进度条 现实生成 hash 码的进度。当 hash 码计算完毕后,你可以将其保存在一个日志文件中,比如纯文本文件,Excel 表单或者Word 文档中,再将其存储在其它磁盘上,千万不要将其保存在你正在处理的这个磁盘上。
创建磁盘克隆 克隆磁盘要求目的磁盘应该具有与原磁盘同样大小的空间。也就是说另一个磁盘应该和原磁盘具有相同的容量,或者其中一个分区与原磁盘具有相同的容量。
克隆不同于Windows 系统的备份,它是逐扇区进行的完全一致的拷贝。它将原硬盘中的所有内容,包括临时文件、内存交换文件以及空白的磁盘区域完全的复制到目的磁盘上。
要保证目标磁盘上的任何扇区都和原磁盘一致,你还应该实现对其进行初始化工作。要实现初始化,你应该首先正常访问这个磁盘(磁盘的文件表只有在通过操作系统访问时才生效),然后再选择工具磁盘工具|初始化可用空间(Tools | Disk Tools | InitializeFreeSpace)菜单。如果这个磁盘是采用NTFS 文件系统的,你也可以采用 Initialize MFT Records 进行初始化。
要确保目标磁盘具有足够的空间,你可以在 WinHex 中打开这两个磁盘,然后在详细信息(Details)窗口中进行比较。如图C 所示:
图 C:D 窗口中的总容量值可以显示出这两个磁盘是否具有相同的容量。
如果你还没有生成原磁盘的hash 码,那么现在就该做这个工作了。之后,选择 WinHex 的工具|磁盘工具| 克隆磁盘(Tools | Disk Tools | Clone Disk)菜单。在克隆磁盘对话框中设定克隆所需的原磁盘和目的磁盘,如图 D所示。在这个例子中,我将 Physical Disk 2 (3.8-GB)克隆到 Physical Disk 1 (3.8 GB)上,这两个都是我通过 USB2.0接口接入笔记本电脑的外置硬盘。将克隆起始扇区设置为0以便与原磁盘的起始扇区保持一致。
图 D:目标磁盘的起始扇区应该和原磁盘保持一致
此时系统会弹出一个警告信息说 Hard Disk 1 的原有数据会遭到破坏,我们点击 OK 继续。此时系统还会继续给出警告,说克隆操作是无法撤销的,我们同样点击 OK。此时 WinHex 会开始克隆任务,并弹出任务进度条。
克隆完成后,我们按照前面提到的方法对目标磁盘进行hash 码生成工作,然后将其记录下来。如果克隆是正确的,那么生成的hash 码和原磁盘的hash 码应该是一致的。
原磁盘:78989F3DB1F03285376C59163603C355
克隆磁盘:78989F3DB1F03285376C59163603C355
由此可以确定克隆磁盘和原磁盘是完全一致的。此时你可以将原磁盘取下并妥善保存,然后在克隆磁盘上对各种可疑文件进行分析。
使用WinHex 的备份功能克隆磁盘
克隆磁盘的另一个方法是使用WinHex Backup,这同样是一个逐扇区复制数据的工具。如果你没有多余的硬盘,或者在某一个硬盘上还有足够的空间可以存放可疑磁盘的所有数据,那么可以使用 WinHex Backup 工具,另外,如果你打算把磁盘克隆到只读媒体上,比如 DVD-R或 CD-R 上,也可以使用这个工具。
Backup 功能可以将磁盘上的内容进行打包。它具有文件分割能力,你可以用WinHex Backup 将被调查的磁盘内容按650MB 大小分成数个文件,然后再利用你自己的刻录机和刻录软件将它们刻在CD-R 碟片上。 之后,你可以将这些文件还原在一个磁盘上,形成源磁盘的克隆,或者利用WinHex直接对其进行分析。这么做的好处也是显而易见的,由于将内容复制在了只读介质上,可以较好的保证数据不会因为误操作或恶意篡改而失去作为证据的能力。
要使用WinHex Backup功能,你需要通过工具|磁盘编辑(Tools| Disk Editor)菜单进入源磁盘。记住,由于不能让 Windows 系统对源磁盘产生影响,你需要按照我上面提到的方法,首先卸载磁盘,然后再利用WinHex 进行物理访问。在分卷备份前,首先要确保目标磁盘有足够的空间来存放源磁盘的备份卷,一般来说,如果你打算刻盘保存,应该让目标磁盘至少具有 650MB 剩余空间。
在 WinHex 菜单中选择文件|磁盘备份(File | Make Disk Backup)。如图 E 所示,在磁盘备份对话框中,你需要选择备份索要存储的位置,并为第一个备份卷起一个名字,当然,也可以使用 WinHex 默认的文件 名。如果采用默认的文件名,备份文件会从 000.whx 开始,依次增加。你可以在描述的位置写上有关这个备份的介绍,而要备份的扇区会自动被检测出来并列在相应的位置,一般来说都不需要我们再作改动。
图 E:在磁盘备份对话框中进行设定
此外需要注意的是 Split Backup Into Archives区域。它的默认值为 650MB,对于要将分卷刻录到 CD 光盘中来说,这个容量比较合适。
下面的两个复选框可能会降低备份的速度,但是这是值得的。你应该选择计算 MD5项,如果这个复选框没有出现,可以点击右边的按钮,然后在弹出的下拉菜单中选中即可。这个选项会让 WinHex 比较备份卷和源磁盘的 MD5码是否一致。另外,我建议用户选择压缩备份(Compress backup)项,它会将备份文件进行压缩。WinHex 的压缩率一般为 51%。在我的测试中,只用了三张 CD-R 碟片就备份了3.8GB的磁盘。不过需要注意的是,当你接下去要分析这些压缩数据时,一定要保证有足够的空间用来让 WinHex存放解压缩的数据。如果你所备份的数据属于机密内容,还可以选择加密备份(Encrypt backup)项对其进行加密。
点击 OK 确定,再在弹出的对话框中点击OK。此时一个备份进度条会显示出来。在每个备份卷完成时,WinHex 都会停止并等待用户进行确认,才会开始下一个备份卷的生成工作。因此,用户可以在每个分卷完 成时就将其刻录到 CD 碟片上,然后删掉磁盘上的这个分卷文件,以腾出足够的空间存储下一个备份卷。
在全部数据备份完成并核对了hash 码后,你应该立即将源磁盘卸载并妥善保存,然后所有调查取证工作都 应该针对备份数据进行。记住要保存好hash 码,因为这是证明备份数据和源数据一致的最可靠的证据。
将备份数据恢复成磁盘克隆
将备份数据刻录到CD 碟片后,你基本可以保证所要调查的数据是安全的了。当然,你还要保护好源磁盘 以及刻录好的 CD 碟片不会受到物理损坏。此外,hash 码是证明你的备份与原磁盘完全一致的唯一证据。因此也要妥善保存。
在对可疑数据进行调查前,首先要将备份还原成源磁盘的克隆,因此你需要有一个足够大的磁盘空间来存放这个克隆。在我这个例子中,我又准备了一个3.8GB的磁盘并通过USB 接口与电脑相连。首先按照我们前面提到的,对这个磁盘进行初始化,以确保该磁盘上的任何山区都是“干净的”。
将载有第一个备份文件的 CD-R 光盘放入电脑,并开启WinHex。选择文件|装载备份(File | Load Backup)菜单,然后打开第一个备份卷(默认为000.whx)。
如图所示,在Restoration对话框中,一般情况下使用其默认设置就可以了。当然,在恢复克隆数据前,还要确保目的磁盘的设置是正确的,否则恢复出来的数据可能会覆盖掉你电脑里其它有用的数据。
图F:检查目的磁盘是否设置正确,因为写入数据的工作是无法撤销的
如果你的磁盘空间足够大,并希望恢复工作能够更安全,可以点击 Write To Disk Only On Save Request
单选框,然后点击OK。这时会弹出一个确认框,告诉你有多少扇区会被覆盖,如果你确定没有问题,就点击OK 继续。
之后会弹出另一个警告信息,点击OK跳过它,就开始真正恢复数据了。当光盘中的备份恢复完成后,WinHex 会提示你插入第二张光盘。在所有数据恢复完成后,你应该对其进行MD5 hash码检验,以确保恢复的数据和源磁盘的数据是一致的。
使用WinHex锁定罪证
通过WinHex和关键数据保护技术,你可以复制出完全和源磁盘一致的克隆磁盘,因此,在这个克隆数据上获得的任何犯罪证据,都可以作为证据在法庭上出示。不过,如果你对当地的相关法律程序还有疑惑,应该联系相关人员进行咨询,很多时候法院或相关部门都有专门的电子罪证检验机构,他们可以向你提供更详细的建议和意见。