每日最新頭條.有趣資訊

谷歌:光靠軟體無法堵住 Spectre 芯片漏洞!

雖然瀏覽器已采取行動、加強安全,但解釋用戶提供的代碼的其他任何應用程序都需要意識到這一點。

谷歌的安全研究人員分析了數據洩露的Spectre漏洞造成的影響――這個漏洞困擾著今天的處理器核心,得出了光靠軟體無法防止漏洞被利用的結論。

谷歌的幾名研究人員:Ross Mcilroy、Jaroslav Sevcik、Tobias Tebbi、Ben L. Titzer和Toon Verwaest表示,他們可以構建一個所謂的通用小工具,利用各種CPU系列中存在的Spectre系列的推測執行漏洞,讓攻擊者提供的代碼可以在線程中運行,從而讀取同一個地址空間中的所有記憶體。

比如說,這意味著在Web瀏覽器線程中執行的惡意網頁的JavaScript代碼有可能窺視在另一個線程中運行的另一個網頁的JavaScript,並從這另一個網頁竊取秘密數據。瀏覽器中已落實了緩解措施,比如Chrome的網站隔離機制可以讓網頁處於單獨的進程中,因而限制任何惡意JavaScript所能窺視的內容。至少Firefox、Internet Explorer和Edge阻止使用JavaScript對象SharedArrayBuffer,攻擊者可以利用它執行Spectre窺視。

然而,對於任何解釋攻擊者提供的代碼的應用程序來說,潛在的威脅依然存在。進程內部基於語言的防禦和類似的防範措施無法阻止Spectre;你必須使用不同的進程(它們有著各自的不同虛擬地址空間和硬體執行的頁表),採用基於硬體的隔離機制。

威脅還是炒作?

由於攻擊者提供的代碼與用戶提供的其他代碼在同一個地址空間中解釋的其他場景並不多,谷歌研究人員的研究主要是學術層面的,用不著立即為之恐慌。然而,如果你正在開發解釋外部代碼的軟體,了解這一點非常有必要。

研究人員在通過預印本服務ArXiv發表的一篇論文中表示:“我們現在認為,今天硬體上的推測執行漏洞破壞所有語言執行的機密性,目前沒有已知的綜合軟體緩解機制,因為我們發現不受信任的代碼可以構建一個通用的讀取小工具,通過側通道讀取同一個地址空間中的所有記憶體。”這篇論文的標題是《Spectre已站穩腳根:分析側通道和推測執行》(https://arxiv.org/abs/1902.05178)。

就在2018年1月IT外媒The Register首次報導Spectre和Meltdown漏洞後不久,密歇根大學的計算機科學助理教授Daniel Genkin告訴The Register:“我們目前還沒有意識到除了重新設計硬體外可消除Spectre根源的有效的應對措施。”他與人共同撰寫了最初的那篇Spectre研究論文,當時他還是博士後學生。

顧名思義,Spectre利用了推測執行的漏洞。推測執行是現代處理器的一項功能,它在處理器忙於處理其他任務時,猜測程序的未來路徑,並做出預期的計算。

如果猜中了正確的路徑,這些計算就保留下來,因而節省了時間,並加快了代碼執行。但正如Spectre漏洞所表明的那樣,窺視未來的功能可能被濫用。

Spectre有幾個變種,但基本問題是,芯片設計人員拿安全換取速度。研究人員聲稱:“我們的模型、我們的心理模型是錯誤的;我們一直拿安全換取性能和複雜性,之前不知道這一點。”

谷歌的研究人員發現,變種4:Speculative Aliasing Confusion沒有相應的軟體解決方案。 研究人員們表示:“變種4擊敗了我們能想到的一切方案。”

最初,軟硬體製造商推出了微碼更新之類的修複程序和Retpoline之類的技巧。Retpoline是一種二進製修改技巧,可以防範“分支目標注入”攻擊。瀏覽器開發商谷歌和Mozilla使得計時數據不易於訪問,因而加大了推測執行攻擊的難度。

但這似乎是徒勞的。研究人員表示:“我們認為,通過對計時器進行調整以減少計時通道是不可能的,荒謬的,無論如何最終會弄巧成拙的。”

谷歌的研究人員為該公司開發的Chrome瀏覽器中的V8 JavaScript虛擬機增加了防禦Specter的機制,結果令人鬱悶的是發現性能下降,因為它們沒有真正解決問題,反而減慢了運行速度。他們說:“這些緩解措施沒有一個提供針對Spectre的全面保護,因此緩解領域是在性能與保護作取捨,這讓人沮喪。”

這就是為什麽谷歌將其瀏覽器安全的重心轉移到了前面提到的網站隔離。但是這種幫助還必須來自硬體,即採用更好的進程隔離這種形式。

英特爾於2018年3月公布了部分Spectre漏洞的硬體修複程序,但它聲稱Spectre變種1“將繼續通過軟體緩解措施來予以解決”,現在看起來這種說法相當可疑。

獲得更多的PTT最新消息
按讚加入粉絲團