这些安全控制提供了一组客户机操作系统最佳做法的基准。它们的结构化方式解释了实施相应控制措施的好处和利弊权衡。要对这些控制进行更改,请使用提供的 PowerCLI 或 vSphere Client。
使用的变量
本节中的 PowerCLI 命令使用以下变量:
- $VM = "virtual_machine_name"
VMware Tools 路径
VMware Tools 的默认安装路径为 C:\Program Files\VMware\VMware Tools。
配置客户机操作系统安全引导
客户机操作系统必须启用安全引导。
受所有现代客户机操作系统支持的安全引导使用公钥加密来验证固件、引导加载程序、驱动程序和操作系统内核。通过防止引导链有效性不确定的系统引导,安全引导可以有效限制恶意软件。
- PowerCLI 命令修复示例
-
$VMobj = (Get-VM -Name $VM) $ConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec $bootOptions = New-Object VMware.Vim.VirtualMachineBootOptions $bootOptions.EfiSecureBootEnabled = $true $ConfigSpec.BootOptions = $bootOptions $task = $VMobj.ExtensionData.ReconfigVM_Task($ConfigSpec)
限制使用 MSI 转换
重新配置 VMware Tools 时,客户机操作系统必须限制使用 MSI 转换。
MSI 转换允许更改 Microsoft Windows 客户机操作系统上的安装数据库。这非常有用,但也提供了从 vSphere 更改客户机操作系统的安全配置文件的机会。
停用 Appinfo
除非需要,否则客户机操作系统必须停用 Appinfo 信息收集。
Appinfo 是通过 VMware Tools 执行应用程序发现的方法。如果未使用此工具,请停用模块以减小攻击面。
- 值
- 安装默认值:False
- 需要执行的操作
- 修改安装默认值。
- 默认值已更改时的潜在功能影响
- VMware 生态系统中的产品和服务可能需要此功能。
- PowerCLI 命令评估
-
VMwareToolboxCmd.exe config get appinfo disabled
停用 ContainerInfo
除非需要,否则客户机操作系统必须停用 ContainerInfo。
适用于 Linux 的 VMware Tools ContainerInfo 插件会收集 Linux 客户机操作系统中正在运行的容器的列表。
停用客户机操作
除非需要,否则停用客户机操作。
客户机操作是一组支持大多数主机与客户机交互的功能。停用它们可减小攻击面,但也会大幅降低功能性。确保您的环境不需要这些功能。请勿在模板虚拟机上停用客户机操作。
有关功能列表,请参见以下文档:
防止客户机操作系统重新自定义
必须防止已部署和自定义虚拟机上的客户机操作系统重新自定义。
虚拟机部署过程为 vSphere 管理员提供了许多选项,可以使用脚本和运行命令自定义虚拟机。这些自定义方法也可以成为攻击者通过克隆和重新自定义访问虚拟机内部数据的途径。部署虚拟机后,禁止再次自定义该虚拟机。始终可以恢复此更改。
- 值
- 安装默认值:True
- 需要执行的操作
- 修改安装默认值。
- 默认值已更改时的潜在功能影响
- 设置后,能够在克隆时自定义虚拟机。请勿在模板虚拟机上进行此更改。
- PowerCLI 命令评估
-
VMwareToolboxCmd.exe config get deployPkg enable-customization
- PowerCLI 命令修复示例
-
VMwareToolboxCmd.exe config set deployPkg enable-customization false
停用 GuestStore 升级操作
除非需要,否则客户机操作必须停用 GuestStore 升级操作。
GuestStore 功能提供了一种简单灵活的机制,可以将 GuestStore 存储库中的 VMware 特定内容或自定义内容同时分发给多个客户机。如果未使用此功能,请停用插件以减小攻击面。
停用 Service Discovery
除非需要,否则客户机操作系统必须停用 Service Discovery。
VMware Tools Service Discovery 插件连接到 Aria Operations 并向该产品提供有关客户机操作系统和工作负载的其他数据。如果未使用此功能,请停用插件以减小攻击面。
激活 VMware Tools 日志记录
客户机操作系统必须启用 VMware Tools 日志记录。
确保 VMware Tools 根据需要记录信息。有关示例,请参见 https://github.com/vmware/open-vm-tools/blob/master/open-vm-tools/tools.conf。
将 VMware Tools 日志发送到系统日志服务
客户机操作系统必须将 VMware Tools 日志发送到系统日志服务。
默认情况下,VMware Tools 将日志发送到磁盘上的文件。配置日志以发送到 Linux 客户机上的 syslog,以及发送到 Microsoft Windows 客户机上的 Windows 事件服务,以进行管理和集中存档。
- PowerCLI 命令评估
-
VMwareToolboxCmd.exe config get logging vmsvc.handler VMwareToolboxCmd.exe config get logging toolboxcmd.handler VMwareToolboxCmd.exe config get logging vgauthsvc.handler VMwareToolboxCmd.exe config get logging vmtoolsd.handler
确保 VMware Tools 版本为最新
客户机操作系统必须确保 VMware Tools 为最新。
VMware Tools 是 VMware 生态系统的重要组成部分。使用 VMware Tools,您可以执行客户机操作系统管理,如:
- 正常关机
- 生命周期管理
- 获取半虚拟化设备的驱动程序
- 自定义和部署虚拟机模板
与所有软件一样,您必须根据需要管理和更新 VMware Tools。确保运行的是受支持的客户机操作系统版本,无论是作为 Linux 分发包的一部分提供还是由您为 Microsoft Windows 安装。
- 值
- 安装默认值:不适用
- 需要执行的操作
- 审核安装默认值。
- 默认值已更改时的潜在功能影响
- 无
- PowerCLI 命令评估
-
Get-VM -Name $VM | Select-Object -Property Name,@{Name='ToolsVersion';Expression={$_.Guest.ToolsVersion}}
- PowerCLI 命令修复示例
- 特定于站点。可以通过多种方式更新 VMware Tools.VMXNET3 和 PVSCSI 的驱动程序也可通过 Windows Update 获取,因此请确保将其导入 WSUS 等工具。
- vSphere Client 中的设置位置
停用 GlobalConf
除非需要,否则客户机操作系统必须停用 GlobalConf。
VMware Tools 的 GlobalConf 功能提供了将 tools.conf
文件配置推送到虚拟机的功能。
限制自动续订 VMware Tools 功能
客户机操作系统必须限制自动移除 VMware Tools 功能。
VMware Tools 自动升级过程可以在 VMware Tools 安装中添加或移除功能,这非常有用,但也提供了从 vSphere 更改客户机操作系统安全配置文件的机会。
配置 VMware Tools 以进行自动升级
客户机操作系统必须根据环境情况配置自动 VMware Tools 升级。
VMware Tools 更新可以通过 vSphere 启动,这有助于维护当前的 VMware Tools 版本。如果您以其他方式管理和更新 VMware Tools,请停用此功能。通常,保持激活自动更新。
验证虚拟机硬件版本
客户机操作系统必须确保虚拟机硬件的版本为 19 或更高版本(如果受支持)。
虚拟机硬件 19 与 ESXi 7.0 Update 2 及更高版本兼容。较高版本的虚拟机硬件可启用新功能并提供更好的性能。如果已完全更新到 vSphere 8.0 或更高版本,请考虑升级到虚拟机硬件 20。与往常一样,升级时要谨慎,并且在系统范围内推出之前对升级过程进行全面测试。
考虑虚拟机可能运行的所有位置,或者可能需要还原虚拟机的所有位置。例如,VMware Cloud Disaster Recovery 服务的用户需要考虑潜在恢复 SDDC 的 vSphere 级别。当 VMware Cloud 在 vSphere 上运行时,它可能没有相同的受支持虚拟硬件版本。
不支持对 VMware 提供的虚拟设备的配置进行更改,这可能会导致服务中断。
- 值
- 安装默认值:特定于站点
- 需要执行的操作
- 修改安装默认值。
- 默认值已更改时的潜在功能影响
- 更改虚拟机硬件版本会更改客户机内的设备版本,这可能会产生影响。请始终测试升级虚拟硬件版本,并记住快照也会捕获虚拟机版本,以便在必要时恢复版本。
- PowerCLI 命令评估
-
(Get-VM -Name $VM | Get-View) | Select-Object -Property Name,@{Name='HW Version';Expression={$_.Config.Version}}
- PowerCLI 命令修复示例
-
Set-VM -VM $VM -HardwareVersion vmx-19