如何进行虚拟机磁盘取证?

日期: 2015-11-03 作者:Paul Henry翻译:谈翔 来源:TechTarget中国 英文

在处理一个运行中的可能危及安全的虚拟机时,无论创建一个镜像是作为电子证据发现请求的一部分还是事件响应,都应该采用取证的方式对虚拟机磁盘(*flat.vmdk)创建镜像。 尽管虚拟环境比物理环境更复杂,但VMware让取证和事件响应的工作变得相当轻松。简单的说,一切同一个运行虚拟机相关的东西都已经包含在对应的VMDK容器中,并且所有获取镜像的必要工具都已经内嵌在VMware ESX和ESXi中。 VMDK容器定位 为了使用VMware更强大的功能,如vMotion,HA和DRS,VMDK容器一般需要存放在共享存储上。

在主机硬盘上不大可能会找到VMDK容器。要找到相应的VMDK的位置,可以使用v……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

在处理一个运行中的可能危及安全的虚拟机时,无论创建一个镜像是作为电子证据发现请求的一部分还是事件响应,都应该采用取证的方式对虚拟机磁盘(*flat.vmdk)创建镜像。

尽管虚拟环境比物理环境更复杂,但VMware让取证和事件响应的工作变得相当轻松。简单的说,一切同一个运行虚拟机相关的东西都已经包含在对应的VMDK容器中,并且所有获取镜像的必要工具都已经内嵌在VMware ESX和ESXi中。

VMDK容器定位

为了使用VMware更强大的功能,如vMotion,HA和DRS,VMDK容器一般需要存放在共享存储上。在主机硬盘上不大可能会找到VMDK容器。

要找到相应的VMDK的位置,可以使用vSphere内嵌的“Maps”标签页,如图1所示。

图1
图1

该Maps视图显示了虚拟机和对应的包含该虚拟机VMDK容器的存储介质之间的关系。在图2中,很容易看出虚拟机SRV02正在esx01主机上运行,而它的文件就存储在共享存储设备LABVMFS01上。

图2


现在我们既然已经知道了VMDK容器的位置,我们需要创建一个运行虚拟机的快照。创建一个快照从字面上理解就是将虚拟机的父磁盘冻结。当创建一个快照时,一个新的子磁盘会被创建同时所有的写操作都会转到该子磁盘中,这样父磁盘就处于一个静止的状态。另外,父磁盘(*flat.vmdk)本质上是一个物理磁盘的抽象,因此,他相当于(以dd或者原始格式)进行逐位复制。简而概之,在取证的时候我们总是想要逐位复制,因为这可以提供已分配和未分配的磁盘空间。如果是传统的对物理硬盘的文件拷贝,那只会提供已分配的磁盘空间,如此一来你就不能恢复那些已经删除的文件。

创建好快照后,下一步就是创建原始父磁盘*flat.vmdk的哈希。我们在Maps视图中看到,虚拟机是在esx01上。通过SSH登录到esx01然后进入/vmfs/volumnes。这里你应该会看到目标虚拟机SRV02的VMDK容器,以及其他驻留在esx01上的虚拟机。进入SRV02目录,你会看到和对应的虚拟机有关的所有文件。现在只需要简单的使用主机上内置的md5sum命令来创建*flat.vmdk文件的哈希值然后重定向到一个文件,如md5sum *flat.vmdk>srv02.md5。

接下来:拷贝*flat.vmdk文件

之前提到过,*flat.vmdk代表一个dd或者原始格式的物理磁盘的抽象,意味着你的磁盘镜像已经是一个可接受的格式并且现在可以毫无顾虑的进行复制了。

在vSphere中, 进入Home>Inventory>Storage视图,然后选择相应的数据存储。右键打开Datastore Browser,如图3所示。导航到相应的虚拟机磁盘容器然后简单的上传*flat.vmdk文件以及包含哈希值的那个文件。

图3
图3

因为在运行vSphere的Window操作系统里没有自带原生的哈希工具,你需要一个第三方工具来创建*flat.vmdk拷贝的哈希值。HashTab工具可以很轻松的完成文件的哈希,右键点击文件,然后在弹出的属性对话框里选择“File Hashes”标签页。现在只要原始文件的哈希值与你复制的文件的哈希值一致,你就完成了一个虚拟机磁盘镜像的取证(图4)。

图4

图4

将磁盘正确做成镜像后,现在可以整合你的运行虚拟机快照,然后开始对虚拟机磁盘的取证镜像进行分析。