是否可以從虛擬機內部找到有關主機的資訊?
是否可以從虛擬機內部找到有關主機的資訊?
例如它的IP。
編輯:到目前為止我發現的一件事是:
HKLM\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters 包含
- 主機名
- 物理主機名
- PhysicalHostNameFullyQualified
等等。
對此的理想答案(從 VM 管理的角度來看)是,除非已明確向您提供該資訊,否則您不應該知道有關物理主機的任何資訊。在實踐中,VM 安裝往往會洩露有關主機的一些資訊,主要是因為安裝了提供更好 VM 性能的定制(通常是半虛擬化)驅動程序。VM 環境的預設設置通常會在各個位置提供一些基本資訊(例如您列出的 Hyper-V 數據)。
雖然在某些情況下我可以看到想要這樣做的正當理由(例如,集群中的虛擬機檢查它執行的主機是否實際上在提供虛擬機認為它在啟動高負載之前擁有的所有物理資源但低優先級任務)幾乎所有虛擬機“想要”了解其主機的情況都是惡意的。如果在 VM 中執行的程序有正當理由知道此類資訊,那麼建立一個合法機制來向它提供該資訊是一項微不足道的任務 - 大多數情況下,作為 VM 管理員,我不想要虛擬機能夠說出這一切。
Sourcefire VRT 的這篇文章概述了惡意軟體用來檢測它們是否在 VM 中執行的一些機制,以及可以採取的緩解措施來應對它們——在大多數情況下,VM 幾乎總是可以告訴它它在虛擬機中執行,通常可以告訴 Hypervisor 供應商,可能辨識 Hypervisor 類型,並可能對特定版本做出很好的猜測。通常可以從網路收集一些額外的資訊,但這幾乎肯定是應該歸類為惡意的那種活動。如果您閱讀該文章,您將看到可以配置 VM,以便在 VM 中執行的任何東西都很難弄清楚除了它是 VM 的基本事實之外的任何東西,因此依賴這些機制是不好的主意。
關於您關於 Hypervisor 的“IP 地址”的具體問題,一般答案是 Hypervisor 可以有許多 IP 地址 - 管理控制台、iSCSI 埠、Live Motion\Fault Tolerance 埠和許多沒有明確的埠IP 地址(VM 埠)和其他變體。查找管理控制台 ip-address(es) 可能很簡單 - 根據您的 Hyper-V 範例 - 但是用它做任何事情都應該很困難,在設計良好的 VM 基礎架構中,VM 不應該能夠路由到管理控制台地址。