防範理論式執行端通道弱點的 Windows 指引

適用於: Windows Server 2019, all versionsWindows 10, version 1809Windows Server version 1803

摘要


Microsoft 已知名為理論式執行端通道弱點攻擊類別的新變種。 這些變種的名稱為「L1 終端機錯誤 (L1TF)」和「微結構資料取樣 (MDS)」。 成功利用 L1TF 或 MDS 的攻擊者可能能夠讀取信任邊界間具有特殊權限的資料。

2019 年 5 月 14 日更新: 2019 年 5 月 14 日,Intel 已發佈有關名為「微結構資料取樣」之理論式執行端通道弱點新子類別的資訊。 這些弱點已指派為下列 CVE:

弱點概觀


在資源共用環境中,例如虛擬主機,可在一台虛擬機器上執行任意程式碼的攻擊者可能會從另一台虛擬機器或從虛擬主機本身存取資訊。 

Windows Server Remote Desktop Services (RDS) 等伺服器工作負載和更為專用的角色 (例如 Active Directory 網域控制站),也會存在風險。 可執行任意程式碼 (無論其權限等級) 的攻擊者可能會存取作業系統或工作負載機密,例如,加密金鑰、密碼和其他敏感資料。

Windows 用戶端作業系統也會存在風險,特別是在執行未受信任的程式碼、運用「虛擬化型安全性」功能 (例如 Windows Defender Credential Guard) 或使用 Hyper-V 來執行虛擬機器的時候。

注意:這些弱點只會影響 Intel Core 處理器和 Intel Xeon 處理器。

緩和措施概觀

爲了解決這些問題,Microsoft 與 Intel 合作開發了軟體緩和措施與指導。軟體更新有助於防範已發行的弱點。若要取得所有可用防護,更新可能還需要包含 裝置 OEM 的微碼。   

本文將告訴您,如何防範以下弱點:

  • CVE-2018-3620 –「L1 終端機錯誤– OS,SMM」
  • CVE-2018-3646 –「L1 終端機錯誤 – VMM」
  • CVE-2018-11091 –「微結構資料取樣不可快取記憶體 (MDSUM)」
  • CVE-2018-12126 –「微結構儲存緩衝區資料取樣 (MSBDS)」
  • CVE-2018-12127 –「微結構負載連接埠資料取樣 (MLPDS)」
  • CVE-2018-12130 –「微結構填滿緩衝區資料取樣 (MFBDS)」

若要深入了解弱點,請參閱下列資訊安全諮詢:

L1TF: https://portal.msrc.microsoft.com/zh-tw/security-guidance/advisory/adv180018

MDS: https://portal.msrc.microsoft.com/zh-tw/security-guidance/advisory/adv190013

確定防範威脅的必需動作


下列章節可協助您識別受到 L1TF 及/或 MDS 弱點影響的系統,也能協助您了解和防範風險。

可能的效能影響

測試期間,根據系統的組態和所需的緩和措施,Microsoft 已經發現這些緩和措施造成的某些效能影響。

有些客戶可能必須停用超執行緒 (又稱為同步多執行緒或 SMT),才能完全消除 L1TF 和 MDS 造成的風險。 請注意,停用超執行可能會造成效能降低。 使用下列項目的客戶可能會遇到這個情形:

  • Windows Server 2016 或 Windows 10 1607 版 (年度更新版) 以前的 Hyper-V 版本
  • Credential Guard 和 Device Guard 等虛擬化型安全性功能 (VBS) (英文)
  • 允許執行未受信任程式碼的軟體 (例如建置自動化伺服器或共用的 IIS 裝載環境)

效能影響會依硬體和系統上執行的工作負載而有所不同。 由於最常見的伺服器組態是啟用超執行緒, 因此,對採取動作停用系統超執行緒的使用者或系統管理員不會產生效能影響。

注意:若要判斷您的系統是否使用受 VBS 保護的安全性功能,請依照下列步驟執行:

  1. [開始] 功能表上,輸入 MSINFO32。

    注意: 隨即會開啟 [系統資訊] 視窗。
  2. [尋找目標] 方塊中,輸入 security
  3. 在右窗格中,找出螢幕擷取畫面中選取的兩列,並核取 [值] 欄,以查看 [虛擬化型安全性] 是否啟用,以及系統正在執行哪些虛擬化型安全性服務。
     

    系統資訊] 視窗


Hyper-V 核心排程器能防範 Hyper-V 虛擬機器的 L1TF 和 MDS 攻擊媒介,同時允許超執行緒維持啟用狀態。 核心排程器是從 Windows Server 2016 和 Windows 10 1607 版開始提供使用。 這對虛擬機器造成的效能影響最小。

核心排程器無法防範受 VBS 保護之安全性功能的 L1TF 或 MDS 攻擊媒介。如需詳細資訊,請參閱緩和措施 C 和下列虛擬化部落格文章:

https://aka.ms/hyperclear

若要從 Intel 瞭解有關效能影響的詳細資訊,請移至下列 Intel 網站:

www.intel.com/securityfirst

確定受影響的系統和必要緩和措施

圖 1 中的流程圖可協助您確定受影響的系統並確定正確的操作。 

重要:如果您使用虛擬機器,則必須考慮個別將流程圖套用到 Hyper-V 主機和每個受影響的 VM 客體,因為緩和措施可能會套用到這兩者上。 尤其對於 Hyper-V 主機,流程圖步驟提供 VM 之間防護和內部主機防護。   但只對 Hyper-V 主機套用這些緩和措施不足以提供內部 VM 防護。 若要提供內部 VM 防護,您必須將流程圖套用至每個 Windows VM。 在大多數情況下,這意味著需要確保在 VM 中設定登錄機碼。

瀏覽流程圖時,您將遇到標有字母的藍色圓圈,這些圓圈會對應到防範您特定系統組態之 L1TF 攻擊媒介所需的一個動作或一系列動作。您遇到的每個動作都必須加以套用。當您遇到綠色線條時,它代表通往終點的直線路徑,並且沒有其他緩和步驟。

每個標有字母的緩和措施的簡短解釋包含在右側圖例中。包含逐步安裝和設定指示的每個緩和措施的詳細解釋在「緩和措施」章節提供。    

流程圖

 

緩和措施


重要: 下列章節說明只應在特定情況下套用的緩和措施,而那些特定情況是根據先前章節的「圖 1」流程圖所判定。除非流程圖指示特定緩和措施為必要,否則請勿套用這些緩和措施。

除了軟體和微碼更新,還需要手動變更設定以啟用特定防護。我們進一步建議 Enterprise 客戶註冊安全通知郵件程式以接收內容變更相關提醒。     (請參閱 Microsoft 技術安全性通知。)

緩和措施 A

取得並套用最新 Windows 更新

套用所有可用的 Windows 作業系統更新,包括每月 Windows 安全性更新。您可以在 L1TF 的 Microsoft 資訊安全諮詢 | ADV 180018 和 MDS 的資訊安全諮詢 | ADV 190013 中查看受影響產品表格。

緩和措施 B

取得並套用最新微碼或韌體更新

除了安裝最新 Windows 安全性更新以外,還必須安裝處理器微碼更新。 這些更新安裝由裝置 OEM 提供。

注意: 如果您使用的是巢狀虛擬化 (包括在客體 VM 中執行 Hyper-V 容器),您必須將新的微碼強化套件安裝到客體 VM。這可能需要將 VM 組態升級為第 8 版。 第 8 版預設包含微碼強化套件。 如需詳細資訊和所需步驟,請參閱下列文章 Microsoft Docs 文章:

在巢狀虛擬化虛擬機器中執行 Hyper-V

緩和措施 C

是否應停用超執行緒 (HT)?

L1TF 和 MDS 弱點引入風險,Hyper-V 虛擬機器的機密性和 Microsoft 虛擬式安全性 (VBS) 所維護的密碼可能會透過使用旁路攻擊而遭到入侵。 啟用超執行緒 (HT) 時,Hyper-V 和 VBS 提供的安全性界限都會減弱。

Hyper-V 核心排程器 (從 Windows Server 2016 和 Windows 10 1607 版開始提供使用) 能防範 Hyper-V 虛擬機器的 L1TF 和 MDS 攻擊媒介,同時允許超執行緒維持啟用狀態。 這可使效能影響減到最小。

Hyper-V 核心排程器無法防範受 VBS 保護之安全性功能的 L1TF 或 MDS 攻擊媒介。 由於 L1TF 和 MDS 弱點引入風險,當啟用「超執行緒」(HT) 時,VBS 密碼的機密性可能會因執行端通道攻擊而遭到洩漏,進而減弱 VBS 提供的安全性邊界。 即使風險提高,VBS 仍可在啟用 HT 的情況下提供寶貴的安全性優點,並防範各種攻擊。 因此,我們建議繼續將 VBS 運用在啟用 HT 的系統。 對於希望消除 VBS 機密性上 L1TF 和 MDS 弱點潛在風險的客戶,建議考慮停用 HT,以防範這個額外風險。

若客戶希望消除 L1TF 和 MDS 弱點對 Windows Server 2016 以前 Hyper-V 版本機密性或 VBS 安全性功能所造成的風險,必須權衡決定並考慮停用 HT,以防範風險。 一般而言,客戶可以根據下列方針來做這個決定:

  • 若 Windows 10 1607 版、Windows Server 2016 和更新版本的系統未執行 Hyper-V 且未使用受 VBS 保護的安全性功能,客戶不應停用 HT。
  • 若 Windows 10 1607 版、Windows Server 2016 和更新版本的系統執行 Hyper-V 與核心排程器,但未使用受 VBS 保護的安全性功能,客戶不應停用 HT。
  • 若 Windows 10 1511 版、Windows Server 2012 R2 以前版本的系統執行 Hyper-V,客戶必須考慮停用 HT,以防範風險。

停用 HT 所需的步驟視 OEM 而定。 但是,這些通常是 BIOS 或韌體安裝和設定工具的一部分。

如果無法在您的 BIOS 或韌體安裝和設定工具中停用超執行緒,Microsoft 也已引進停用 HT 技術的能力。 停用 HT 的軟體設定是您的 BIOS 或韌體設定的輔助設定,並且預設為停用 (表示 HT 將遵循您的 BIOS 或韌體設定)。 若要深入了解這個設定,以及如何用來停用 HT,請參閱下列文章:

防範理論式執行端通道弱點的 Windows Server 指引

可以的話,建議您在 BIOS 或韌體中停用 HT,以確保 HT 是停用的。

注意:停用超執行緒將會減少 CPU 核心。這會對需要最少 CPU 核心才能運作的功能受到影響。 例如,Windows Defender 應用程式防護 (WDAG)。

緩和措施 D

啟用 Hyper-V 核心排程器並將每個核心的 VM 硬體執行緒計數設定為 2 

注意: 這些緩和措施步驟只會套用到 1809 版以前的 Windows Server 2016 和 Windows 10。 Windows Server 2019 和 Windows 10 1809 版預設啟用核心排程器。

使用核心排程器有兩個步驟,首先在 Hyper-V 主機上啟用排程器,然後透過將每個核心的硬體執行緒計數設定為二 (2) 來設定每個 VM 以進行使用。

Windows Server 2016 和 Windows 10 1607 版引進的 Hyper-V 核心排程器是傳統排程器邏輯的新替代工具。 在啟用 HT 的 Hyper-V 主機上執行的 VM 內,核心排程器可為工作負載提供的效能變化性減少。

如需有關 Hyper-V 核心排程器和啟用步驟的詳細說明,請參閱下列 Windows IT 專業人員中心文章:

瞭解和使用 Hyper-V Hypervisor 排程器類型

若要在 Windows Server 2016 或 Windows 10 上啟用 Hyper-V 核心排程器,請輸入下列命令:

bcdedit /set HypervisorSchedulerType core

接著,決定是否將指定 VM 的每個核心的硬體執行緒計數設定為二 (2)。如果您確定虛擬處理器已超執行緒至客體虛擬機器,請在 VM 作業系統中啟用排程器和 VM 工作負載,以便在其自身的工作排程中使用 HT。若要執行這項操作,請輸入下列 PowerShell 命令,其中 <VMName> 是虛擬機器的名稱:

Set-VMProcessor -VMName <VMName> -HwThreadCountPerCore 2

緩和措施 E

啟用諮詢 CVE-2017-5715 和 CVE-2017-5754 的緩和措施

注意: 這些緩和措施在 Windows Server 2019 和 Windows 作業系統中預設為啟用。

若要啟用資訊安全諮詢 CVE-2017-5715 和 CVE-2017-5754 的緩和措施,請使用下列文章中的指引:

KB 4072698 | 防範理論式執行端通道弱點的 Windows Server 指引

KB 4073119 | IT 專業人員防範理論式執行端通道弱點的 Windows 用戶端指引

 

注意: 這些緩和措施會包含且自動啟用適用於 Windows 核心的「安全頁面框架位元」緩和措施,以及 CVE-2018-3620 所述的緩和措施。 如需有關安全頁面框架位元緩和措施的詳細說明,請參閱下列安全性研究和防禦部落格文章:

L1 終端機錯誤 (L1TF) 的分析及緩和措施 (英文)