Re: [情報] 果然削弱性能!Intel i7+Win10打漏洞補丁

作者: YuQilin (神獸)   2018-01-08 09:37:47
※※※工具※※※
Alex Ionescu根據intel新發佈的白皮書
更新了他寫的SpecuCheck錯誤的地方
白皮書
https://newsroom.intel.com/wp-content/uploads/sites/11/2018/01/Intel-Analysis-of-Speculative-Execution-Side-Channels.pdf
https://t.co/eHcsnNxf8D
SpecuCheck
https://github.com/ionescu007/SpecuCheck
SpecuCheck是一個程式讓使用者不用安裝SpeculationControl模組
就可以檢查自己系統對應Meltdown&Spectre修補的情況。
如圖
https://github.com/ionescu007/SpecuCheck/raw/master/SpecuCheck.png
顯示比較簡明,可以看到CPU微碼是否有更新IBRS/IBPB。
不過作者還是建議使用官方的SpeculationControl模組來檢查,
因為他寫的程式可能會有自己推測錯誤的地方。
(WIN7系統要更新PowerShell到新版才能安裝SpeculationControl)
https://docs.microsoft.com/zh-tw/powershell/scripting/setup/installing-windows-powershell?view=powershell-5.1
https://goo.gl/F9JuUm
※※※重點※※※
目前各作業系統對應Meltdown&Spectre和CPU微碼更新的情況總整理
https://gist.github.com/woachk/2f86755260f2fee1baf71c90cd6533e9
建議閱讀原文,整理非常詳盡。
1. Meltdown (Variant 3) : CVE-2017-5754
Linux已經透過KPTI修補,Windows也已經發佈KVAS補丁。
效能下降看使用情況,一般桌面使用者可能不會有太大的效能損失。
Haswell之前的CPU因為缺少INVPCID,在Windows上打這個補丁後效能下降會比較多。
不過在Linux上,即使沒有INVPCID,只要有PCID的CPU,
例如Ivy Bridge,還是可以快速切換頁表。
KPTI只支援64bit的作業系統,所以32bit的版本無法修補,
不過有一些32bit OS的例如MacOS,本身免疫Meltdown。
AMD的CPU免疫Meltdown。
2. Spectre (Variant 2) : CVE-2017-5715
在Windows上,Haswell以後的CPU已可以透過更新IBRS/IBPB微碼
(例如透過BIOS更新)來修補這個漏洞。
如果沒有微碼可以更新,可以改用作業系統內核層級的LFENCE作為緩解,
如果CPU不支援SMEP,會改用Google提供的Retpoline取代LFENCE。
在Linux上,這個漏洞目前還沒有修補。
未來將會使用Retpoline來修補,預測對伺服器的效能大約會有5-10%的損失,
但對一般使用者的影響應該會很輕微,
不過應用程式也需要重新編譯才能提供完全的保護,
如果使用者希望沒有設置IBRS=2的程式也能獲得保護,
還是需要更新CPU微碼,
目前Intel已經提供Haswell以後的IBRS微碼更新。
AMD的CPU不需要使用Retpoline,只要LFENCE就可以修補內核對抗這個漏洞,
和Intel一樣,也提供IBPB微碼更新,讓沒有重新編譯的程式也能獲得保護。
(但目前微碼還沒完全釋出,同時內核修補還沒有合併進官方分支)
3. Spectre (Variant 1) : CVE-2017-5753
詳情請參閱原文
※※※八卦※※※
Longhorn提到前述的BIOS更新(更新IBRS微碼)會造成非常巨大的效能下降,
Intel自己在Linux Kernel Mailing List承認效能下降是"horribly slow"
https://twitter.com/never_released/status/949231568509267968
所以Asus的 -21% 可能已經是盡最大努力的最好情況。
一夜回到革命前......

Links booklink

Contact Us: admin [ a t ] ucptt.com