升級 Windows 10 1809 的好理由!?對效能衝擊較低的 Spectre v2 修補方式 Retpoline 更新釋出

升級 Windows 10 1809 的好理由!?對效能衝擊較低的 Spectre v2 修補方式 Retpoline 更新釋出

ADVERTISEMENT

近代處理器均加入推測執行機制,若是推測正確則可加速完成工作,但去年開春爆發 Spectre 和 Meltdown 漏洞,即是針對處理器的推測執行機制進行攻擊。日前 Microsoft 針對 Windows 10 1809 推出 KB4482887 累積更新,導入對效能開銷更少的 Retpoline 修正方式。

Spectre 和 Meltdown 漏洞及其相關變種,於 2018 年開始就給全世界一記重拳,透過現代處理器加強性能的推測執行機制,讓該機制執行不合法的程式碼步驟,藉以暴露平時躲在層層安全高牆之後機密資訊。初步的解決方式相當簡單暴力,直接關閉推測執行就沒有安全性疑慮,但藉由推測執行獲得效能加成的工作,就會出現程度不一的衝擊。

Microsoft 於 Windows 10 Insider Preview Builds 18272 64 位元版及其之後的作業系統版本,導入由 Google Paul Turner 工程師開發,用來解決 Spectre Variant 2 安全性漏洞的「Retpoline」修正方式。Retpoline 由 return 和 trampoline 2 字結合而成,讓處理器的 indirect branch prediction 間接分支預測器猜錯或是進入無限循環,因而放棄並回歸至正常的執行步驟。Retpoline 相對於先前的修復方式,對於效能的影響較小,並已整合進入 Linux 核心修補程式當中,包含 4.14 與 4.9 版本。

Windows 10 1809 最近的 KB4482887 累積更新已加入 Retpoline 修正方式,相對於先前修正 Spectre Variant 2 漏洞的效能影響更少
▲Windows 10 1809 最近的 KB4482887 累積更新已加入 Retpoline 修正方式,相對於先前修正 Spectre Variant 2 漏洞的效能影響更少。需要獨立更新檔的使用者,請點我由 Microsoft Update Catalog 直接下載

Windows 10 1809 3 月 1 號推出的 KB4482887 累積更新當中,已經向後移植整合 Retpoline,但由於複雜度的關係,Retpoline 將不會推廣至先前 Windows 10 版本,僅針對 1809 版及其之後的 2019 年 4 月更新版本。根據 KB4482887 更新說明,Retpoline 修復方式預設為關閉,預計數月內透過雲端設定逐步開放,使用者也可透過下列手動方式啟用。

 

一般版本

  1. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0x400
  2. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 0x400
  3. 重新開機

 

伺服器版本

  1. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0x400
  2. reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 0x401
  3. 重新開機

 

增加登錄檔機碼之後,使用者可以透過 PowerShell 輸入 Get-SpeculationControlSettings,檢查是否正確開啟 (須先行安裝 SpeculationControl 模組) 。若是回傳結果 BTIKernelRetpolineEnabled、BTIKernelImportOptimizationEnabled 均為 True 真值,表示已正確開啟並使用 Retpoline 修正方式。(註:Intel Skylake 微架構及其繼任者於 RSB(Return Stack Buffer)清空時,對於 RET 指令有不同的行為表現,因此無法套用 Retpoline。)

 

資料來源

March 1, 2019—KB4482887 (OS Build 17763.348)

Mitigating Spectre variant 2 with Retpoline on Windows

 

你知道電腦王也有 Telegram 頻道嗎?

R.F.
作者

誤入叢林的小白兔,每天爬樓梯到七樓的白癡,幻想自己很瘦的豬,一放假就睡死的bed potato。

使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則