這些安全性控制提供了一組基本的客體作業系統最佳做法。它們的結構化方式說明了實作控制的優勢和權衡。若要對這些控制進行變更,請使用提供的 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 功能提供簡單且彈性的機制,可將 VMware 專屬或自訂內容從 GuestStore 存放庫同時散佈給多個客體。如果未使用此功能,請停用外掛程式以減少攻擊面。
停用服務探索
除非需要,否則客體作業系統必須停用服務探索。
VMware Tools 服務探索外掛程式連線到 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