一些 VMware Tools 设置可能会带来安全风险。例如,通过 VMware Tools,您可以将虚拟设备(如串行端口和并行端口)连接到虚拟机。已连接的设备可能是一个潜在的攻击通道。为尽可能地保护虚拟机并降低安全风险,请禁用容易受到安全威胁的 VMware Tools 功能。
有关在生产环境中安全部署 VMware vSphere 的完整信息(包括主机、虚拟机、管理组件和网络连接基础架构的安全建议),请参见《vSphere 强化指南》。VMware Tools 设置仅与部署的虚拟机方面相关。
虚拟机封装在少数文件中。其中,配置文件(.vmx 文件)控制虚拟硬件的性能及其他设置。可以使用多种方法查看和修改配置设置:
- 使用 vSphere Web Client 编辑虚拟机设置。在 vSphere Web Client 中,编辑这些配置参数是虚拟机编辑设置对话框中的高级选项。
- 使用 vSphere Host Client 编辑虚拟机设置。在 vSphere Host Client 中,编辑这些配置参数是虚拟机编辑设置对话框中的高级选项。
- 使用基于 vSphere API 的工具(如 Power CLI)查看和修改 .vmx 参数。
编辑设置后,需要重新启动虚拟机,更改才能生效。
通过对要在虚拟机的 .vmx 文件中设置的相应 VMware Tools 参数进行适当的参数设置,可以消除多种潜在威胁。其中许多参数的默认值都已设置为保护虚拟机免受这些威胁。
与非特权用户帐户关联的威胁
与虚拟设备关联的威胁
- 连接和修改设备
-
默认情况下,禁用连接和断开连接设备的功能。启用该功能后,不具有 root 或管理员权限的用户和进程可以连接设备(如网络适配器和 CD-ROM 驱动器),还可以修改设备设置。也就是说,用户可以连接已断开连接的 CD-ROM 驱动器并访问该驱动器中的介质上的敏感信息。用户也可以断开网络适配器连接,将虚拟机与其网络隔离,这样可以拒绝服务。要避免与此功能关联的风险,请保留以下
.vmx 设置,这些设置可以禁用连接和断开连接设备或修改设备设置的功能:
isolation.device.connectable.disable = "TRUE" isolation.device.edit.disable = "TRUE"
与虚拟机信息流关联的威胁
- VMX 文件大小
-
默认情况下,配置文件的大小限制为 1 MB,因为当数据存储磁盘空间不足时,不受控制的文件大小会导致拒绝服务故障。有时将信息性消息从虚拟机发送到
.vmx 文件。这些 setinfo 消息通过将名称-值对写入文件来定义虚拟机特性或标识符。如果文件中必须存储大量的自定义信息,则您可能需要增加文件大小。属性名称为
tools.setInfo.sizeLimit,可以指定其值(以千字节为单位)。保留以下
.vmx 设置:
tools.setInfo.sizeLimit = "1048576"
- 将性能计数器发送到 PerfMon
-
可以将 CPU 和内存的虚拟机性能计数器集成到 Linux 和 Microsoft Windows 客户机操作系统的 PerfMon 中。通过此功能,可以向客户机操作系统提供有关物理主机的详细信息。恶意用户可能会利用此信息对主机发起进一步的攻击。默认情况下禁用此功能。保留以下
.vmx 设置以阻止将主机信息发送到虚拟机:
tools.guestlib.enableHostInfo = "FALSE"
此设置阻止部分衡量指标,但非全部。如果将此属性设置为
FALSE
,则会阻止以下衡量指标:- GUESTLIB_HOST_CPU_NUM_CORES
- GUESTLIB_HOST_CPU_USED_MS
- GUESTLIB_HOST_MEM_SWAPPED_MB
- GUESTLIB_HOST_MEM_SHARED_MB
- GUESTLIB_HOST_MEM_USED_MB
- GUESTLIB_HOST_MEM_PHYS_MB
- GUESTLIB_HOST_MEM_PHYS_FREE_MB
- GUESTLIB_HOST_MEM_KERN_OVHD_MB
- GUESTLIB_HOST_MEM_MAPPED_MB
- GUESTLIB_HOST_MEM_UNMAPPED_MB
- vSphere 中未公开的可导致漏洞的功能
-
除 vSphere 以外,VMware 虚拟机还在多个 VMware 产品中运行,因此一些虚拟机参数不应用于 vSphere 环境中。虽然这些功能不显示在 vSphere 用户界面上,但禁用它们可减少客户机操作系统访问主机的途径。使用以下
.vmx 设置禁用这些功能:
isolation.tools.unity.push.update.disable = "TRUE" isolation.tools.ghi.launchmenu.change = "TRUE" isolation.tools.ghi.autologon.disable = "TRUE" isolation.tools.hgfsServerSet.disable = "TRUE" isolation.tools.memSchedFakeSampleStats.disable = "TRUE" isolation.tools.getCreds.disable = "TRUE"