Share via


虛擬化型安全性系統資源保護

虛擬化型安全性或 VBS 會使用硬體虛擬化和 Windows Hypervisor 來建立隔離的虛擬環境,以成為假設核心可能會遭到入侵之作業系統的根信任。 Windows 會使用此隔離環境來裝載一些安全性解決方案,為它們提供大幅提升的作業系統弱點防護,並防止使用嘗試破壞保護的惡意探索。 VBS 會強制執行保護重要系統和作業系統資源的限制,或保護安全性資產,例如已驗證的使用者認證。

如需 VBS 的詳細資訊,請參閱 虛擬化型安全性 (VBS)

VBS 變更信任模型

雖然 VBS 大幅改善平臺安全性,但 VBS 也會變更 Windows 電腦上的信任界限。 使用 VBS 時,Windows Hypervisor 會控制基礎硬體的許多層面,以提供 VBS 安全環境的基礎。 Hypervisor 必須假設 Windows 核心可能會遭到惡意程式碼入侵,因此必須保護金鑰系統資源免于在核心模式中執行的程式碼,以可能危害安全性資產的方式操作。

瞭解處理器 MSR

Hypervisor 必須保護免于惡意使用的重要系統資源之一,就是處理器模型特定的暫存器或 MSR。 新式處理器支援大量的 MSR,其中許多都控制處理器行為的重要層面。 MSR 只能讀取或寫入核心模式程式碼, (也就是 CPL0) 。 改變 MSR 所控制的設定,可能會允許惡意核心模式程式碼變更系統的行為,並允許攻擊者取得控制權、危害安全性。 此外,許多 MSR 包含系統作業的相關資料,例如追蹤或診斷資料,也可用來顯示或計算安全性資產。 因此,Hypervisor 必須識別並防止任何可能會危害 VBS 安全性狀態的 MSR 誤用。

MSR 是透過索引來存取,這是每個 MSR 識別碼的唯一識別碼。 在過去,許多 MSR 已建立為架構;也就是說,其存在和函式在多個處理器層代之間維持架構一致。 在此情況下,具有已記載 MSR 索引和定義的已知 MSR 可依賴來控制已知已發佈的功能集。 不過,處理器之間也有不同的 MSR,而且在某些情況下,MSR 索引經過一段時間的重新用途,重新定義以參考新的控制項集。 這些對於系統層級軟體而言非常有問題,因為很難在廣泛可用的商務軟體中編碼和維護這些控制項的知識。

保護 MSR 的存取權

為了提供健全的安全性平臺,MSR 必須受到保護,以防止惡意核心模式程式碼誤用。 若要強制執行此動作,Hypervisor 會監視和控制所有 MSR 的存取權。 Hypervisor 會維護已知的 MSR 索引清單,而且只會允許核心模式程式碼存取 MSR,或 MSR 內已知為合理且視為安全的特定位。 Hypervisor 會封鎖對 Hypervisor 未知之任何 MSR 的存取,或透過其已發佈的定義所知道的任何 MSR 來代表安全性風險。 在某些情況下,可能會允許部分存取。

當 Hypervisor 已封鎖 MSR 的存取權時,它會將事件記錄至 windows 系統記錄事件檢視器,並指定嘗試存取的詳細資料。

由於 MSR 所控制的函式數量龐大,因此無法預測防止 MSR 存取起始之軟體的副作用。 撰寫良好的軟體應該正常處理錯誤和失敗案例,不過,這不一定是這種情況。

檢閱 MSR 存取事件

只有在啟用並執行 VBS 時,Hypervisor 才會封鎖對特定 MSR 的存取。 若要判斷 Hypervisor 是否已封鎖對 MSR 的存取,請從 Microsoft-Windows-Hyper-V-Hypervisor 查看 Windows 系統記錄檔中是否有事件識別碼 12550。 事件記錄檔專案詳細資料將包含下列資訊:

識別碼:12550
描述:Hyper-V 偵測到對受限制 MSR 的存取
詳細資料:

  • Msr
  • IsWrite
  • MsrValue
  • AccessStatus
  • Pc
  • ImageBase
  • ImageChecksum
  • ImageTimestamp
  • ImageName

支援的 Windows 版本

從Windows 10和Windows Server 2016開始,所有 Windows 版本都支援 VBS。