KB4457951: 防範推測執行旁路弱點的 Windows 指引

套用到
Windows Server 2019, all editions Windows 10, version 1809, all editions Windows Server version 1803 Windows Server 2016, all editions Windows 10, version 1803, all editions Windows 10, version 1709, all editions Windows 10, version 1703, all editions Windows 10 Windows Server 2012 R2 Windows RT 8.1 Windows 8.1 Windows Server 2012 Windows Server 2008 R2 Service Pack 1 Windows Server 2008 Service Pack 2 Windows 10, version 1607, all editions Windows 7
變更日誌
日期 變化描述
2023 年 10 月 27 日 已新增 Mitigation B 的參照
2023 年 7 月 17 日 已新增 MMIO 資訊

摘要

Microsoft 已知已知推測執行側信道漏洞的新型攻擊變體 這些變體分別稱為 L1 終端故障 (L1TF) 微架構資料取樣 (MDS) 。 成功利用 L1TF 或 MDS 的攻擊者可能能夠讀取信任邊界間具有特殊權限的資料。

更新日期:2019年5月14日: 2019年5月14日,英特爾公布了關於一種新的推測執行側通道漏洞子類別,稱為 微架構資料取樣(Microarchitectural Data Sampling)的資訊。 這些弱點已指派為下列 CVE:

更新日期:2019年11月12日: 2019年11月12日,英特爾發布了關於® Intel TSX交易同步擴展) (® 交易非同步中止漏洞的技術諮詢,該漏洞被指定為CVE-2019-11135。 Microsoft 已經發行更新,可協助防範這一弱點。 請注意下列:

  • 預設情況下,某些 Windows Server 作業系統版本啟用了作業系統保護。 如需詳細資訊,請參閱 Microsoft 知識庫文章 4072698
  • 預設情況下,某些 Windows 用戶端作業系統版本啟用了作業系統保護。 更多資訊請參見Microsoft知識庫文章 4073119

弱點概觀

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

Windows Server 遠端桌面 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))
  • CVE-2019-11135 | Windows 核心資訊洩漏弱點
  • CVE-2022-21123 | 共用緩衝區資料讀取 (SBDR)
  • CVE-2022-21125 | 共用緩衝區資料取樣 (SBDS)
  • CVE-2022-21127 | 特殊登錄緩衝區資料取樣更新 (SRBDS 更新)
  • CVE-2022-21166 | 裝置註冊部分寫入 (DRPW)

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

L1TF:ADV180018 |Microsoft 緩解 L1TF 變異的指引

MDS:ADV190013 |Microsoft 緩解微架構資料取樣漏洞的指引

MMIO:ADV220002 |Microsoft Intel 處理器 MMIO 過時資料漏洞指引

Windows 核心資訊揭露漏洞:CVE-2019-11135 |Windows 核心資訊揭露漏洞

確定防範威脅的必需動作

下列章節可協助您識別受到 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 主機和每個受影響的虛擬機訪客,因為緩解措施可能同時適用於兩者。 尤其對於 Hyper-V 主機,流程圖步驟提供 VM 之間防護和內部主機防護。 但只對 Hyper-V 主機套用這些緩和措施不足以提供內部 VM 防護。 若要提供內部 VM 防護,您必須將流程圖套用至每個 Windows VM。 在大多數情況下,這意味著需要確保在 VM 中設定登錄機碼。

瀏覽流程圖時,您會遇到標有字母的藍色圓圈,這些圓圈會對應到防範您特定系統設定之 L1TF 攻擊媒介所需採取的一項動作或一系列動作。 您遇到的每一個動作都必須套用。 當您遇到綠線時,它會指出到尾端的直接路徑,而且沒有其他的風險降低措施步驟。

每個標有字母之風險降低措施的簡短說明都會包含在右側圖例中。 包含逐步安裝和設定指示之每個風險降低措施的詳細說明會在「風險降低措施」章節提供。

流程圖

緩和措施

重要事項:以下節描述應僅在前一節圖中流程圖所決定的特定條件下施行的緩解措施。 除非流程圖指示特定風險降低措施為必要,否則請勿套用這些風險降低措施。

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

緩和措施 A

取得並套用最新 Windows 更新

套用所有可用的 Windows 作業系統更新,其中包括每月 Windows 安全性更新。 您可以在 Microsoft 安全公告 |L1TF 的 ADV 180018安全諮詢 |MDS 的 ADV 190013安全諮詢 | MMIO ADV220002 以及安全漏洞 |Windows 核心資訊揭露漏洞的 CVE-2019-11135

緩和措施 B

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

除了安裝最新 Windows 安全性更新以外,可能還需要安裝處理器微碼或韌體更新。 我們建議您從 裝置原廠取得並套用最新的微碼更新。 如需微碼或韌體更新的詳細資訊,請參閱下列參照:

注意: 如果你使用巢狀虛擬化 (,包括在訪客虛擬機) 中運行 Hyper-V 容器,你必須將新的微碼啟發暴露給訪客虛擬機。 這可能需要將 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,請參閱下列文章:

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

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

注意: 關閉超執行緒會減少 CPU 核心。 這可能對需要最小 CPU 內核才能正常工作的功能產生影響。 例如,Windows Defender 應用程式防護 (WDAG)。

緩和措施 D

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

注意:這些緩解措施僅適用於 Windows Server 2016 及 1809 版本之前的 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 命令,其中 是虛擬機器的名稱。 為此,請輸入以下 PowerShell 指令,<其中 VMName> 是虛擬機器名稱:

Set-VMProcessor -VMName< VMName> -HwThreadCountPerCore 2

緩和措施 E

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

注意:這些緩解措施在 Windows Server 2019 及 Windows 用戶端作業系統中預設啟用。

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

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

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

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

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

參考

防範 Azure 中理論式執行端通道攻擊弱點的指導

第三方資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。

我們提供協力廠商的連絡資訊,協助您尋找技術支援。 此連絡資訊如有變更,恕不另行通知。 我們不保證此協力廠商連絡資訊的正確性。