来宾可以使用有关vmware主机的哪些信息?


9

在中vmware Workstation,来宾OS可使用有关主机软件和硬件的哪些信息。

就我的应用程序而言,我担心来宾OS上的进程获取有关主机运行所在的物理硬件的信息。这可能包括详细信息,例如序列号,MAC地址或任何可以实际识别正在运行的计算机的信息。

主机和来宾都将运行Ubuntu Linux。

编辑:vmware-tools将安装在来宾上

编辑2:添加赏金

我对此问题进行了大量研究,大多数答案中都带有“不应”之类的词。我需要一定程度的了解,一个vmware guest虚拟机无法看到以下任何一项(因为,如果这些东西可供guest虚拟机使用,则将被视为大规模的安全漏洞)

  • 任何硬件序列号
  • 主机网络接口的mac地址
  • vmware软件的注册序列号
  • 主机操作系统上的任何文件

提出这个问题的动机是,我需要运行一些高度不受信任的软件,并且希望将其沙漏于任何可能泄露我身份的信息中。例如,我假设该软件将尝试读取处理器的序列号并将其报告给其创建者,并且我认为这可能导致追溯到我的真实世界身份。如果您愿意,可以将此称为偏执狂。我的部分情况要求安装vmware-tools。

Answers:


5

有关主机的信息可能以多种不同方式泄漏给来宾。VMware(通常是虚拟化产品)可提供多种保护措施。尽管不可能提供完整的隔离环境,但它可能做得很好。例如,一些病毒研究人员使用VMware提供安全的环境来研究恶意软件的行为

主机信息可能会泄露给访客:

  • 如果来宾直接执行虚拟化层不拦截的指令。
  • 来宾是否可以直接在与主机相同的网段上观察网络流量。
  • 来宾是否可以与外界交流并探究主持人。

您主要关心的是第一种泄漏方法,尽管您也应确保也免受其他机制的影响。

VMware(和其他虚拟机管理程序)通过拦截被认为是敏感指令的内容来提供虚拟化。敏感的指令将向来宾显示有关主机的信息,或允许来宾逃脱虚拟化层的控制。例如,修改页表库的指令(控制内存访问)必须由虚拟化层检测,拦截并替换为该指令的“安全”版本,以保留虚拟化的幻觉。

为了提供与主机不同的机器的幻觉,还对显示主机标识信息(例如序列号,MAC地址等)的指令进行了虚拟化。在VMware中,可以在vmx文件中设置这些内容。这些东西是众所周知的并且大概是安全的。

有时,需要权衡公开的内容,例如CPUID指令,VMware的最新版本对此提供了一些“保护”。(有关CPUID虚拟化的许多详细信息,请参见VMotion和CPU兼容性。)当作为特权指令执行时,可以对其进行捕获和仿真,但也可以作为本机指令执行,从而可能向来宾显示一些(可能是无趣的)信息。 。

但是,访客也可以被动地学习有关主机的其他信息。例如,通过探测内存时序,来宾可以获取各种高速缓存大小的信息。通过定时和其他向量(“副频道”)了解其他来宾(或主机)的能力是积极研究的领域。在2012年10月,研究人员发现实际上有可能从其他VM中提取加密密钥。这可能非常可怕,并且尚不完全清楚所发现的内容以及如何防止这种情况的限制。

完全安全的最佳方法是通过气隙将您的机器与世界其他地方隔离。然后,恶意软件学习到什么都没有关系,因为它无法将该信息传达给任何人。完成后,擦拭机器。使用VMware之类的工具可以使擦除和状态恢复更加容易,因为计算机状态封装在一组文件中。


1

来宾不应该知道有关主机设置(例如其网络)的任何信息,因为它被交给虚拟硬件,其行为(几乎)应与物理硬件完全一样。但是,来宾必须知道一些诸如cpu之类的知识,但是这些知识不应损害任何安全性。

因此,如果有任何设置信息从主机泄漏到来宾,这将是一个安全漏洞。

但是,如果启用hgfs(主机-来宾文件系统),则主机文件系统中的至少一部分将在来宾中可见,并且可以派生有关主机的某些信息。如果您担心的话,应该禁用它。

这通常可能并不重要,因为在大多数情况下,工作站都是个人使用的,也就是说,无论如何您都可以访问主机。否则,您应该研究服务器虚拟化(vsphere,xen,kvm)。


1

文章如何从VM内提取主机信息?描述了ESX(i)/ vSphere下的实用程序,可供来宾使用以获取一些主机信息。由于安全原因,这必然在范围上受到限制。

第一个实用程序是VMware Toolbox命令。它提供了有关ESX(i)和guestOS配置的一些信息,包括基本资源统计信息。

UNIX/Linux - /usr/bin/vmware-toolbox-cmd
Windows - C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe

第二个是vmtoolsd(VMware Tools Daemon)实用程序,其中“ info-get”参数可以在虚拟机运行时在虚拟机的.vmx配置文件中或VMX内存中获取guestinfo设置。

UNIX/Linux - /usr/bin/vmtoolsd
Windows - C:\Program Files\VMware\VMware Tools\vmtoolsd.exe
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.