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

適用於: 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 Server 的緩和措施設定


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

CVE需要 CPU 微碼/韌體?緩和措施預設狀態

CVE-2017-5753

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

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

CVE-2017-5715

預設為停用。

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

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

CVE-2017-5754

Windows Server 2019: 預設為啟用。
Windows Server 2016 以前版本: 預設為停用。

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

CVE-2018-3639

Intel: 是

AMD: 否

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

CVE-2018-11091Intel: 是

Windows Server 2019: 預設為啟用。
Windows Server 2016 以前版本: 預設為停用。

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

Windows Server 2019: 預設為啟用。
Windows Server 2016 以前版本: 預設為停用。

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

Windows Server 2019: 預設為啟用。
Windows Server 2016 以前版本: 預設為停用。

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

Windows Server 2019: 預設為啟用。
Windows Server 2016 以前版本: 預設為停用。

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

若客戶希望取得可防範這些弱點的所有可用保護,則必須進行登錄機碼變更,以啟用這些預設為停用的緩和措施。

啟用這些緩和措施可能會影響效能。 效能影響範圍取決於多個因素,例如實體主機中的特定晶片組,以及執行的工作負載。 我們建議客戶評估對其環境的效能影響,並進行任何必要的調整。

如果您的伺服器屬於下列其中一個類別,則會增加風險:

  • Hyper-V 主機 – 需要 VM 對 VM 和 VM 對主機攻擊的保護。
  • 遠端桌面服務主機 (RDSH) – 需要一個工作階段到另一個工作階段或工作階段到主機攻擊的保護。
  • 執行「未受信任程式碼」的實體主機或虛擬機器,例如資料庫的容器或未受信任的延伸模組、未受信任的 Web 內容,或是執行外部來源所提供之程式碼的工作負載。 這些都需要未受信任的處理程序到另一個處理程序或未受信任的處理程序到核心攻擊的保護。

請使用下列登錄機碼設定,在伺服器上啟用緩和措施,然後重新啟動系統,使變更生效。

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

登錄設定


下列提供的登錄資訊可用來啟用如資訊安全諮詢 ADV180002ADV180012ADV190013 所述,未預設為啟用的緩和措施。

此外,若使用者想要停用 Windows 用戶端中與 CVE-2017-5715 和 CVE-2017-5754 相關的緩和措施,我們提供的下列登錄機碼設定可供參考。

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

322756 如何在 Windows 中備份及還原登錄

 
 

管理 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) 的緩和措施

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

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

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

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

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

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

若要停用 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

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


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

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


停用 Variant 2: (CVE-2017-5715「分支目標導入」) 緩和措施

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

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

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

啟用 Variant 2: (CVE-2017-5715「分支目標導入」) 緩和措施:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /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) 的完整緩和措施


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

在 AMD 處理器上啟用使用者至核心保護,以及對 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

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

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

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

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

管理 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

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

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

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

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

若要停用 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

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

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

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

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

管理微結構資料取樣 (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 模組:

  1. 前往 https://aka.ms/SpeculationControlPS
  2. 將 SpeculationControl.zip 下載到本機資料夾。
  3. 將內容解壓縮到本機資料夾中。 例如: 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

常見問題集


參考