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

適用於: Windows Server 2016 Version 1709Windows Server 2012 R2 StandardWindows Server 2012 Standard

摘要


Microsoft 已知稱為「理論式執行端通道攻擊」的新公開揭露等級弱點,這些弱點影響許多新型處理器,其中包括 Intel、AMD、VIA 和 ARM。

注意:這個問題也影響其他作業系統,例如 Android、Chrome、iOS 和 macOS, 因此,建議客戶向那些廠商尋找指引。

Microsoft 已經發行數個更新,可協助避免這些弱點。 我們也已採取行動,保護我們的雲端服務。 請參閱下列章節,了解詳細資訊。

Microsoft 尚未收到任何資訊,指出客戶已遭受這些弱點的攻擊。 Microsoft 正密切地與晶片製造商、硬體 OEM 和應用程式廠商等業界合作夥伴合作,一同保護客戶。 若要取得所有可用的保護,則必須安裝韌體 (微碼) 和軟體更新。 這包括來自裝置 OEM 的微碼,在某些情況下,還包括防毒軟體的更新。

本文解決下列弱點:

Windows Update 也將提供 Internet Explorer 和 Edge 緩和措施。 我們會持續改善這些緩和措施,以防範這個弱點等級。

若要深入了解這個弱點等級,請參閱

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

重要: 這些問題將會影響其他系統,例如 Android、Chrome、iOS 和 MacOS。 建議客戶向個別廠商尋找指引。

Microsoft 已經發行更新,可協助防範這些弱點。 若要取得所有可用的保護,則必須安裝韌體 (微碼) 和軟體更新。 這包括來自裝置 OEM 的微碼。 在某些情況下,安裝這些更新將會對效能造成影響。 我們也已採取行動,保護我們的雲端服務。 強烈建議您部署這些更新。

如需有關這個問題的詳細資訊,請參閱下列資訊安全諮詢,並運用案例指引,判斷防範威脅所需執行的動作:

注意:建議您在安裝任何微碼更新之前,先安裝 Windows Update 中所有的最新更新。

2019 年 8 月 6 日更新: Intel 已於 2019 年 8 月 6 日發行有關 Windows 核心資訊洩漏弱點的詳細資訊。 這個弱點是 Spectre Variant 1 理論式執行端通道弱點的變種,並且已指派為 CVE-2019-1125

2019 年 7 月 9 日,我們已為 Windows 作業系統發行安全性更新,以協助防範此問題。 請注意,我們直到 2019 年 8 月 6 日星期二業界協調的公佈時間,才公開記載這項緩和措施。

若客戶已啟用 Windows Update 並套用 2019 年 7 月 9 日發行的安全性更新,則會自動受到保護。 不需要進行進一步設定。

注意:此弱點不需要裝置製造商 (OEM) 的微碼更新。

如需有關此弱點和適用更新的詳細資訊,請參閱 Microsoft 安全性更新導覽: CVE-2019-1125 | Windows 核心資訊洩漏弱點

 

 

建議動作


客戶應採取下列動作,以協助防範弱點:

  1. 套用所有可用的 Windows 作業系統更新,其中包括每月 Windows 安全性更新。
  2. 套用裝置製造商所提供的適用韌體 (微碼) 更新。
  3. 根據 Microsoft 資訊安全諮詢: ADV180002ADV180012ADV190013 及這篇知識庫文章中的資訊,評估您環境的風險。
  4. 運用資訊安全諮詢和這篇知識庫文章提供的登錄機碼資訊,採取必要動作。

注意: Surface 客戶將會透過 Windows Update 取得微碼更新。 如需最新可用 Surface 裝置韌體 (微碼) 更新的清單,請參閱 KB 4073065

適用於 Windows 用戶端的緩和措施設定


資訊安全諮詢 ADV180002ADV180012ADV190013 提供有關這些弱點所造成風險的資訊,並可協助您識別適用於 Windows 用戶端系統的緩和措施預設狀態。 下列表格摘要說明 CPU 微碼的需求和 Windows 用戶端上的緩和措施預設狀態。

CVE

需要 CPU 微碼/韌體?

緩和措施預設狀態

CVE-2017-5753

預設為啟用 (無停用選項)

請參閱 ADV180002,以取得其他資訊。

CVE-2017-5715

預設為啟用。 使用者若使用配備 AMD 處理器的系統,請參閱<常見問題集>的問題 15,對於使用 ARM 處理器的使用者,則請參閱 ADV180002 上<常見問題集>的問題 20 以了解其他動作,並參閱這篇知識庫文章,以取得適用的登錄機碼設定。

注意: “Retpoline” 在執行 Windows 10 1809 或更新版本的裝置上預設為啟用 (若 Spectre Variant 2 (CVE-2017-5715) 已啟用)。 如需有關 “Retpoline” 的詳細資訊,請參閱在 Windows 使用 Retpoline 防範 Spectre Variant 2 (英文) 部落格文章中的指引。

CVE-2017-5754

預設為啟用

請參閱 ADV180002,以取得其他資訊。

CVE-2018-3639

Intel: 是
AMD: 否
ARM: 是

Intel 和 AMD: 預設為停用。 請參閱 ADV180012,以了解詳細資訊,並參閱這篇知識庫文章,以取得適用的登錄機碼設定。

ARM: 預設為啟用且無停用選項。

CVE-2018-11091 Intel: 是

預設為啟用。

請參閱 ADV190013,以了解詳細資訊,並參閱這篇知識庫文章,以取得適用的登錄機碼設定。
CVE-2018-12126 Intel: 是

預設為啟用。

請參閱 ADV190013,以了解詳細資訊,並參閱這篇知識庫文章,以取得適用的登錄機碼設定。
CVE-2018-12127 Intel: 是

預設為啟用。

請參閱 ADV190013,以了解詳細資訊,並參閱這篇知識庫文章,以取得適用的登錄機碼設定。
CVE-2018-12130 Intel: 是

預設為啟用。

請參閱 ADV190013,以了解詳細資訊,並參閱這篇知識庫文章,以取得適用的登錄機碼設定。


注意: 啟用預設為停用的緩和措施可能會影響效能。 實際的效能影響取決於多個因素,例如裝置中的特定晶片組,以及執行的工作負載。

登錄設定


下列提供的登錄資訊可用來啟用如資訊安全諮詢 ADV180002ADV180012 所述,未預設為啟用的緩和措施。 此外,若使用者想要停用 Windows 用戶端中與 CVE-2017-5715 和 CVE-2017-5754 相關的緩和措施,我們提供的下列登錄機碼設定可供參考。

重要: 這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 為加強保護,請先備份登錄再進行修改。 如果發生問題,您就可以還原登錄。 如需有關如何備份和還原登錄的詳細資訊,請參閱 Microsoft 知識庫中的下列文章:

請參閱 KB 322756<如何在 Windows XP 中備份及還原登錄>

管理 CVE-2017-5715 (Spectre Variant 2) 和 CVE-2017-5754 (Meltdown) 的緩和措施


重要注意事項: Retpoline 在 Windows 10 1809 版裝置上預設為啟用 (若 Spectre Variant 2 (CVE-2017-5715) 已啟用)。 在最新 Windows 10 版本上啟用 Retpoline 以防範 Spectre Variant 2,可能會提升執行 Windows 10 1809 版的裝置效能,對於舊版處理器更是顯著。

若要啟用 CVE-2017-5715 (Spectre Variant 2) 和 CVE-2017-5754 (Meltdown) 的預設緩和措施

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重新啟動電腦,使變更生效。

若要停用 CVE-2017-5715 (Spectre Variant 2) 和 CVE-2017-5754 (Meltdown) 的緩和措施

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重新啟動電腦,使變更生效。

注意:FeatureSettingsOverrideMask 設定為 3 的值對於「啟用」和「停用」設定都是正確的 (請參閱<常見問題集>,取得有關登錄機碼的詳細資訊)。

管理 CVE-2017-5715 (Spectre Variant 2) 的緩和措施


若要停用 CVE-2017-5715 (Spectre Variant 2) 的緩和措施:

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 1 /f

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重新啟動電腦,使變更生效。

若要啟用 CVE-2017-5715 (Spectre Variant 2) 和 CVE-2017-5754 (Meltdown) 的預設緩和措施:

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重新啟動電腦,使變更生效。

僅適用於 AMD 和 ARM 處理器:啟用 CVE-2017-5715 (Spectre Variant 2) 的完整緩和措施


根據預設,AMD 和 ARM CPU 對 CVE-2017-5715 的使用者至核心保護是停用的。 客戶必須啟用緩和措施,才能收到對 CVE-2017-5715 的其他保護。如需詳細資訊,對於 AMD 處理器,請參閱 ADV180002 中<常見問題集>的問題 15,對於 ARM 處理器,則請參閱 ADV180002 中<常見問題集>的問題 20。

在 AMD 和 ARM 處理器上啟用使用者至核心保護,以及對 CVE 2017-5715 的其他保護:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 64 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重新啟動電腦,使變更生效。

管理 CVE-2018-3639 (理論式儲存略過)、CVE-2017-5715 (Spectre Variant 2) 和 CVE-2017-5754 (Meltdown) 的緩和措施


若要啟用 CVE-2018-3639 (理論式儲存略過) 的緩和措施、CVE-2017-5715 (Spectre Variant 2) 和 CVE-2017-5754 (Meltdown) 的預設緩和措施:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重新啟動電腦,使變更生效。

注意: AMD 處理器不易受 CVE-2017-5754 (Meltdown) 攻擊。 這個登錄機碼可以用於配備 AMD 處理器的系統,以啟用 AMD 處理器上 CVE-2017-5715 的預設緩和措施及 CVE-2018-3639 的緩和措施。

若要停用 CVE-2018-3639 (理論式儲存略過)、CVE-2017-5715 (Spectre Variant 2) 和 CVE-2017-5754 (Meltdown) 的緩和措施

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重新啟動電腦,使變更生效。

僅適用於 AMD 處理器:啟用 CVE-2017-5715 (Spectre Variant 2) 和 CVE 2018-3639 (理論式儲存略過) 的完整緩和措施


根據預設,AMD 處理器對 CVE-2017-5715 的使用者至核心保護是停用的。 客戶必須啟用緩和措施,才能收到對 CVE-2017-5715 的其他保護。 如需詳細資訊,請參閱 ADV180002 中<常見問題集>的問題 15。

在 AMD 處理器上啟用使用者至核心保護,以及對 CVE 2017-5715 的其他保護和對 CVE 2018-3639 (理論式儲存略過) 的保護:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 72 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重新啟動電腦,使變更生效。

管理微結構資料取樣 (CVE-2018-11091、CVE-2018-12126、CVE-2018-12127、CVE-2018-12130) 以及 Spectre (CVE-2017-5753 與 CVE-2017-5715) 和 Meltdown (CVE-2017-5754) 變種,包括理論式儲存略過停用 (SSBD) (CVE-2018-3639) 以及 L1 終端機錯誤 (L1TF) (CVE-2018-3615、CVE-2018-3620 和 CVE-2018-3646)


若要啟用微結構資料取樣 (CVE-2018-11091CVE-2018-12126CVE-2018-12127CVE-2018-12130) 以及 Spectre (CVE-2017-5753 與 CVE-2017-5715) 和 Meltdown (CVE-2017-5754) 變種,包括理論式儲存略過停用 (SSBD) (CVE-2018-3639) 以及 L1 終端機錯誤 (L1TF) (CVE-2018-3615、CVE-2018-3620 和 CVE-2018-3646) 的緩和措施,而不停用超執行緒:

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 72 /f

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

如果已安裝 Hyper-V 功能,請新增下列登錄設定:

登錄新增 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

如果這是 Hyper-V 主機且已經套用韌體更新: 完全關閉所有虛擬機器。 這樣可以在 VM 啟動前在主機上套用韌體相關緩和措施。 因此,重新啟動時 VM 也會更新。

重新啟動電腦,使變更生效。

若要啟用微結構資料取樣 (CVE-2018-11091CVE-2018-12126CVE-2018-12127CVE-2018-12130) 以及 Spectre (CVE-2017-5753 與 CVE-2017-5715) 和 Meltdown (CVE-2017-5754) 變種,包括理論式儲存略過停用 (SSBD) (CVE-2018-3639) 以及 L1 終端機錯誤 (L1TF) (CVE-2018-3615、CVE-2018-3620 和 CVE-2018-3646) 的緩和措施,並且停用超執行緒:

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8264 /f

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

如果已安裝 Hyper-V 功能,請新增下列登錄設定:

登錄新增 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

如果這是 Hyper-V 主機且已經套用韌體更新: 完全關閉所有虛擬機器。 這樣可以在 VM 啟動前在主機上套用韌體相關緩和措施。 因此,重新啟動時 VM 也會更新。

重新啟動電腦,使變更生效。

若要停用微結構資料取樣 (CVE-2018-11091CVE-2018-12126CVE-2018-12127CVE-2018-12130) 以及 Spectre (CVE-2017-5753 與 CVE-2017-5715) 和 Meltdown (CVE-2017-5754) 變種,包括理論式儲存略過停用 (SSBD) (CVE-2018-3639) 以及 L1 終端機錯誤 (L1TF) (CVE-2018-3615、CVE-2018-3620 和 CVE-2018-3646) 的緩和措施:

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

登錄新增 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重新啟動電腦,使變更生效。

驗證已啟用保護


為協助客戶驗證已啟用保護,Microsoft 已經發行 PowerShell 指令碼,可讓客戶在他們的系統上執行。 請執行下列命令,以安裝並執行指令碼。

使用 PowerShell 資源庫的 PowerShell 驗證 (Windows Server 2016 或 WMF 5.0/5.1)

安裝 PowerShell 模組:

PS> Install-Module SpeculationControl

執行 PowerShell 模組,以驗證已啟用保護:

PS> # Save the current execution policy so it can be reset

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> Import-Module SpeculationControl

PS> Get-SpeculationControlSettings

PS> # Reset the execution policy to the original state

PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

使用 Technet 下載的 PowerShell 驗證 (舊版作業系統和舊版 WMF)

安裝 Technet 指令碼中心的 PowerShell 模組:

前往 https://aka.ms/SpeculationControlPS

將 SpeculationControl.zip 下載到本機資料夾。

將內容解壓縮到本機資料夾,例如 C:\ADV180002

執行 PowerShell 模組,以驗證已啟用保護:

啟動 PowerShell,然後 (使用先前的範例) 複製並執行下列命令:

PS> # Save the current execution policy so it can be reset

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> CD C:\ADV180002\SpeculationControl

PS> Import-Module .\SpeculationControl.psd1

PS> Get-SpeculationControlSettings

PS> # Reset the execution policy to the original state

PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser


如需有關 PowerShell 指令碼輸出的詳細說明,請參閱知識庫文章 4074629

常見問題集