一些 VMware Tools 設定可能會帶來安全性風險。例如,透過 VMware Tools,您可以將虛擬裝置 (如序列埠和平行埠) 連線到虛擬機器。已連線的裝置可能是一個潛在的攻擊通道。為盡可能地保護虛擬機器並降低安全性風險,請停用容易受到安全性威脅的 VMware Tools 功能。

如需在生產環境中安全部署 VMware vSphere 的完整資訊 (包括主機、虛擬機器、管理元件和網路基礎結構的安全性建議),請參閱《vSphere 強化指南》。VMware Tools 設定僅與部署的虛擬機器方面相關。

虛擬機器封裝在少數檔案中。其中一個重要的檔案是組態檔 (.vmx 檔案)。該檔案掌管虛擬硬體的效能和其他設定。可以使用多種方法查看和修改組態設定:

  • 在文字編輯器中直接開啟 .vmx 檔案。

  • 使用 vSphere Web Client 編輯虛擬機器設定。在 vSphere Web Client 中,編輯這些組態參數是虛擬機器編輯設定對話方塊中的進階選項。

  • 使用 vSphere Client 編輯虛擬機器設定。在 vSphere Client 中,編輯這些組態參數是虛擬機器編輯設定對話方塊中的進階選項。

  • 使用 vSphere API 式的工具 (如 Power CLI) 檢視和修改 .vmx 參數。

編輯設定之後,直到重新啟動虛擬機器變更才會生效。

請檢閱下列潛在安全性威脅清單,以及虛擬機器的 .vmx 檔案中要設定的對應 VMware Tools 參數。其中許多參數的預設值都已設定為保護虛擬機器不受這些威脅。

與無權限使用者帳戶相關聯的威脅

磁碟壓縮功能

壓縮虛擬磁碟將回收未使用的磁碟空間。不具有根或管理員權限的使用者和程序可以叫用此程序。由於磁碟壓縮程序需要花費大量的時間才能完成,因此,重複叫用磁碟壓縮程序可能會導致拒絕服務。在壓縮過程中虛擬磁碟無法使用。使用下列 .vmx 設定停用磁碟壓縮:

isolation.tools.diskWiper.disable = "TRUE"
isolation.tools.diskShrink.disable = "TRUE"

複製和貼上功能

依預設,停用複製和貼上文字、圖形和檔案的功能,同時停用拖放檔案的功能。啟用該功能後,可以從剪貼簿中複製 RTF 文字、圖形和檔案 (視 VMware 產品而定),並將其貼到虛擬機器中的客體作業系統。即只要虛擬機器的主控台視窗取得焦點,虛擬機器中執行的無權限使用者和程序都可以存取執行主控台視窗的電腦上的剪貼簿。若要避免與此功能相關聯的風險,請保留下列 .vmx 設定,這些設定可以停用複製和貼上功能:

isolation.tools.copy.disable = "TRUE"
isolation.tools.paste.disable = "TRUE"

與虛擬裝置相關聯的威脅

連線和修改裝置

依預設,停用連線和中斷連線裝置的功能。啟用該功能之後,不具有根或管理員權限的使用者和程序可以連線裝置 (如網路介面卡和 CD-ROM 光碟機),還可以修改裝置設定。即使用者可以連線已中斷連線的 CD-ROM 光碟機,並存取留在磁碟機中的媒體上的敏感資訊。使用者也可以中斷網路介面卡的連線,將虛擬機器與其網路隔離,這樣可以拒絕服務。若要避免與此功能相關聯的風險,請保留以下 .vmx 設定,這些設定可以停用連線和中斷連線裝置或修改裝置設定的能力:

isolation.device.connectable.disable = "TRUE"
isolation.device.edit.disable = "TRUE"

適用於 ESXi 5.0 及更早版本的虛擬機器通訊介面 (VMCI)

此設定適用於 ESXi 5.0 及更早版本的虛擬機器。它不適用於 ESXi 5.1 及更新版本的虛擬機器。

如果 VMCI 不受限制,則虛擬機器與同一主機內啟用了相同選項的其他所有虛擬機器可以互相偵測。使用此介面的自訂軟體可能具有會遭到入侵的未預期漏洞。此外,虛擬機器可以透過登錄虛擬機器,來偵測同一個 ESX/ESXi 系統內的其他虛擬機器數量。此資訊可用於惡意目的。只要有程式連線到 VMCI 通訊端介面,該虛擬機器就會公開在系統內的其他虛擬機器面前。使用下列 .vmx 設定限制 VMCI:

vmci0.unrestricted = "FALSE"

與虛擬機器資訊流量相關聯的威脅

設定虛擬機器記錄數目

視您的記錄設定而定,可能會在每次舊檔案大於 100 KB 時建立新的記錄檔。如果資料存放區的磁碟空間不足,則未控管的記錄會導致發生拒絕服務。VMware 建議儲存 10 個記錄檔。依預設,記錄檔的大小上限為 100 KB,您無法在虛擬機器層級變更該值。使用下列 .vmx 設定來設定記錄檔數目:

vmx.log.keepOld = "10"

您可以透過編輯 /etc/vmware/config 檔案,限制主機上所有虛擬機器的記錄檔數量。如果檔案中的 log.KeepOld 特性尚未定義,您可以自行增加。例如,若要為每個虛擬機器保留十個記錄檔,請將下列內容新增至 /etc/vmware/config

vmx.log.keepOld = "10"

您也可以使用 PowerCLI 指令,變更主機上所有虛擬機器的此項特性。

一個更極端的策略是完全停用虛擬機器的記錄。停用記錄會使疑難排解變得困難,也難以進行技術支援。請勿考量停用記錄,除非記錄檔輪替方法存在不足之處。使用下列 .vmx 設定完全停用記錄:

logging = "FALSE"

VMX 檔案大小

依預設,組態檔的大小限制為 1 MB,因為當資料存放區的磁碟空間不足時,未控管的檔案大小會導致發生拒絕服務。資訊訊息有時候會從虛擬機器傳送到 .vmx 檔案。這些 setinfo 訊息透過將名稱-值配對寫入檔案,來定義虛擬機器特性或識別碼。如果檔案中必須儲存大量的自訂資訊,則您可能需要增加檔案大小。內容名稱為 tools.setInfo.sizeLimit,可以指定其值 (以 KB 為單位)。保留下列 .vmx 設定:

tools.setInfo.sizeLimit = "1048576"

將效能計數器傳送到 PerfMon

可以將 CPU 和記憶體的虛擬機器效能計數器整合到 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"