本文討論最新的CPU漏洞,Meltdown和Spectre,以及當下的解決方案。
Google Project Zero以及一些研究人員發現了兩個硬件漏洞并提供了詳細信息,這兩個漏洞會對大部分的桌面和移動設備造成安全影響。這兩個漏洞被稱為Meltdown和Spectre,它們會利用CPU的“預測執行(speculative execution)”使得非相關進程也能訪問虛擬內存,從而導致數據可能被并無訪問權限的進程讀取。這是一個影響Intel、AMD和ARM眾多CPU型號的底層硬件問題。Google于去年6月向各處理器制造商報告了這個問題。
Meltdown使得一個進程可以訪問操作系統的部分內核內存,從而暴露敏感數據。Spectre使得一個進程能夠訪問另一個進程的內存空間,造成數據泄露。Meltdown會影響支持亂序執行(out-of-order execution)的Intel處理器,這可能包括自1995年以來的各種CPU型號。研究人員在2011年以來的幾種Intel處理器上運行了測試。ARM的一些處理器會受到這種漏洞的變體的影響,使得一些CPU注冊表能被其他非相關進程訪問。AMD處理器似乎并不受Meltdown影響。但是Spectre影響所有的主流CPU,包括AMD、ARM和Intel。如果想了解更多關于這些漏洞的詳細信息以及如何利用這些漏洞,我們建議你去閱讀Google Project Zero的這篇文章,以及Meltdown(PDF)和Spectre(PDF)研究論文。
這些漏洞相當嚴重。大多數市面上的操作系統都受到了影響,包括Linux、MacOS和Windows。Android以及Apple的iOS系統和tvOS(但是沒有watchOS)也受到了影響。CERT提到,真正的解決方案是將系統的CPU替換為沒有漏洞的CPU。鑒于這個方案不具備實際可操作性,軟件解決方案已經就位甚至已經生效。不過問題是,這種修復似乎有性能問題,有的造成的性能下降甚至高達30%。Intel聲稱性能下降“取決于工作負載”,“對于普通的電腦用戶,應該沒有什么大影響并且會隨著時間改善。”
Intel還提到,它已經向操作系統制造商提供了軟件和固件修復。AMD則發布了安全公告,概述了這些漏洞,哪些漏洞會對使用它們處理器的系統造成什么樣的影響,會向操作系統供應商提供哪些修復,以及性能會受到一些影響。ARM也發布了自己的公告,介紹了哪些處理器會被影響以及如何處理。
Microsoft將在下周通過標準更新機制發布更新。Linux已經發布了可用的內核補丁(32-bit),針對64-bit/ARM的補丁仍在開發中。Apple則在聲明中表示,已經為iOS 11.2、macOS 10.13.2以及tvOS 11.2發布了針對Meltdown的更新,以及:
我們做了一些公開的基準測試,不管是GeekBench 4的基準測試還是像Speedometer、JetStream和ARES-6一類通用的Web瀏覽器基準測試都表明,2017年12月的更新并沒有給macOS和iOS帶來多少性能損失。
至于Spectre,Apple則表示:
關于這些技術的分析表明,即使是在Mac或iOS設備上本地運行的應用程序,這些漏洞也極難被利用,但是卻可能通過運行在Web瀏覽器上的JavaScript利用這些漏洞。Apple將在未來幾天發布針對macOS和iOS上Safari瀏覽器的更新,以應對這些漏洞利用技術。我們對即將發布的Safari優化做了一些測試,Speedometer和ARES-6測試結果顯示并沒有多少性能影響,而JetStream基準測試則顯示有2.5%的性能降低。我們將繼續在操作系統中針對Spectre技術開發和測試更多的優化,并在之后的iOS、macOS、tvOS和watchOS更新中發布。
再來說云供應商。Amazon宣稱運行在他們系統里的大多數實例都得到了保護,另一些則會很快得到處理。Microsoft也聲稱Azure上的大多數客戶都受到了保護,其中有一些還收到了通知,他們的實例會在1月10號重啟。Google則表示,他們已經對他們的云系統打了補丁,只有那些使用自己的鏡像的客戶才需要更新。Xen為它們的系統管理程序發布了補丁。在應用程序層面上,Google建議用戶使用Chrome里的網站隔離功能,Firefox也有這個功能。Microsoft則發布了一個補丁(KB4056890),幫助在Edge和IE 11上避開漏洞。2018年1月的Android安全公告則提供了Google準備如何在它們的移動操作系統上處理這個問題的細節。他們聲稱合作方已經在一個月之前就得到了通知,AOSP將會在近期打補丁。
Google還提到,他們還沒有發現任何相關的漏洞利用存在,但是未經驗證的代碼可能會利用這些漏洞。
查看英文原文:Meltdown and Spectre: What They Are and How to Deal with Them