VDMK(virtual machine disk)是VMare虚拟机存储虚拟磁盘镜像的一种格式,虚拟机磁盘文件代表了虚拟机的存储卷,它以vmdk后缀命名。
VMare虚拟磁盘有两个关键的特征:
1)虚拟磁盘可能使用包含在同一个文件中的后备存储器,也可能使用包含许多更小文件集成的存储。
2)所有询磁盘所需的磁盘空间可能在虚拟磁盘创建的时候被分配,也可能从小开始、逐步增大来容纳更多的数据(恢复)。
在处理一个运行中的可能危及安全的虚拟机时,无论创建一个镜像是作为电子证据发现请求的一部分还是事件响应,都应该采用取证的方式对虚拟机磁盘(*flat.vmdk)创建镜像。
尽管虚拟环境比物理环境更复杂,但VMware让取证和事件响应的工作变得相当轻松。简单的说,一切同一个运行虚拟机相关的东西都已经包含在对应的VMDK容器中,并且所有获取镜像的必要工具都已经内嵌在VMware ESX和ESXi中。
1.VMDK容器定位
为了使用VMware更强大的功能,如vMotion,HA和DRS,VMDK容器一般需要存放在共享存储上。在主机硬盘上不大可能会找到VMDK容器。
要找到相应的VMDK的位置,可以使用vSphere内嵌的“Maps”标签页,如图1所示。
图1
该Maps视图显示了虚拟机和对应的包含该虚拟机VMDK容器的存储介质之间的关系。在图2中,很容易看出虚拟机SRV02正在esx01主机上运行,而它的文件就存储在共享存储设备LABVMFS01上。
现在我们既然已经知道了VMDK容器的位置,我们需要创建一个运行虚拟机的快照。创建一个快照从字面上理解就是将虚拟机的父磁盘冻结。当创建一个快照时,一个新的子磁盘会被创建同时所有的写操作都会转到该子磁盘中,这样父磁盘就处于一个静止的状态。另外,父磁盘(*flat.vmdk)本质上是一个物理磁盘的抽象,因此,他相当于(以dd或者原始格式)进行逐位复制。简而概之,在取证的时候我们总是想要逐位复制,因为这可以提供已分配和未分配的磁盘空间。如果是传统的对物理硬盘的文件拷贝,那只会提供已分配的磁盘空间,如此一来你就不能恢复那些已经删除的文件,需计算机网络维护外包。
创建好快照后,下一步就是创建原始父磁盘*flat.vmdk的哈希。我们在Maps视图中看到,虚拟机是在esx01上。通过SSH登录到esx01然后进入/vmfs/volumnes。这里你应该会看到目标虚拟机SRV02的VMDK容器,以及其他驻留在esx01上的虚拟机。进入SRV02目录,你会看到和对应的虚拟机有关的所有文件。现在只需要简单的使用主机上内置的md5sum命令来创建*flat.vmdk文件的哈希值然后重定向到一个文件,如md5sum *flat.vmdk>srv02.md5。
2.拷贝*flat.vmdk文件
之前提到过,*flat.vmdk代表一个dd或者原始格式的物理磁盘的抽象,意味着你的磁盘镜像已经是一个可接受的格式并且现在可以毫无顾虑的进行复制了。
在vSphere中, 进入Home>Inventory>Storage视图,然后选择相应的数据存储。右键打开Datastore Browser,如图3所示。导航到相应的虚拟机磁盘容器然后简单的上传*flat.vmdk文件以及包含哈希值的那个文件。
图3
因为在运行vSphere的Window操作系统里没有自带原生的哈希工具,你需要一个第三方工具来创建*flat.vmdk拷贝的哈希值。HashTab工具可以很轻松的完成文件的哈希,右键点击文件,然后在弹出的属性对话框里选择“File Hashes”标签页。现在只要原始文件的哈希值与你复制的文件的哈希值一致,你就完成了一个虚拟机磁盘镜像的取证(图4)。
图4
将磁盘正确做成镜像后,现在可以整合你的运行虚拟机快照,然后开始对虚拟机磁盘的取证镜像进行分析,北京it外包公司艾锑无限可以做到。
相关文章