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

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

摘要


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

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

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

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

本文解決下列弱點:

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

Microsoft 提供協力廠商的連絡資訊,以協助您尋求技術支援。此連絡資訊若有變更,恕不另行通知。Microsoft 不保證此協力廠商連絡資訊的準確性。

建議動作


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

  1. 套用所有可用的 Windows 作業系統更新,其中包括每月 Windows 安全性更新。如需有關如何啟用這些更新的詳細資訊,請參閱 Microsoft 知識庫文章 4072699。 
  2. 套用裝置製造商 (OEM) 所提供的適用韌體 (微碼) 更新。
  3. 請根據 Microsoft 資訊安全諮詢 ADV180002ADV180012 以及本知識庫文章中的資訊,評估您環境的風險。
  4. 請利用諮詢以及本知識庫文章提供的登錄機碼資訊,採取必要行動。

在 Windows Server 上啟用保護


CVE-2017-5753 的緩和措施在 Windows Server 上預設為啟用,並且沒有系統管理員選項可停用這些措施。 本文說明的其他三個弱點的緩和措施預設為停用。欲獲得防範這些弱點的所有保護,客戶必須變更登錄機碼 才能啟用這些緩和措施。

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

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

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

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

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


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

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

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

登錄新增 "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) 的緩和措施

登錄新增 "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

重新啟動伺服器,使變更生效。

(您不必變更 MinVmVersionForCpuBasedMitigations)


注意事項

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


在 Intel 測試、更新和部署新微碼的同時,我們會為受影響裝置的進階使用者提供新選項,以便透過登錄設定變更,個別手動停用和啟用防範 Spectre Variant 2 (CVE-2017-5715 –「分支目標導入」) 的緩和措施。

如果您已安裝微碼,但因為未預期的重新啟動或系統不穩定問題而想要停用 CVE-2017-5715 緩和措施,請使用下列指示。

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

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


注意:
透過登錄設定變更停用和啟用 Variant 2 緩和措施,將會需要系統管理權限和重新啟動。 

在 AMD 處理器 (CPU) 上啟用 Indirect Branch Prediction Barrier (IBPB),以防範 Spectre Variant 2


有些 AMD 處理器 (CPU) 提供間接分支控制功能,可透過 Indirect Branch Prediction Barrier (IBPB) 機制防範間接分支目標導入 (如需詳細資訊,請參閱 ADV180002 中的<常見問題集>問題 15、 間接分支控制的基礎架構準則AMD 安全性更新)

請遵循這些指示,在從使用者內容切換至核心內容時控制 IBPB。

若要在從使用者內容切換至核心內容時啟用 Indirect Branch Prediction Barrier (IBPB):

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


注意:
透過登錄設定變更啟用 Indirect Branch Prediction Barrier (IBPB) 必須具備系統管理權限,並且需要重新啟動。

啟用 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) 的緩和措施:

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

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

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

若要停用 CVE-2018-3639 (理論式儲存略過)、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


注意:
進行這些登錄變更需要系統管理權限和重新啟動。

驗證已啟用保護


為協助客戶驗證已經啟用相應的 保護,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。 

常見問題集


參考