0x00 漏洞簡評
雖然計算機經過了這麼多年的發展,但至今仍構築在最初的馮氏體系上。因而很自然的,CPU 就成了提升速度的關鍵瓶頸,除了依賴早期摩爾定律那樣的積體電路技術外,效能優化也是其中重要的一環。
而談及計算機效能優化就不得不提 Cache 機制,此次的 CPU 漏洞簡言之就是沒處理好 Cache(廣義)未命中的情況,藉助側通道攻擊可導致資訊的洩露,從而使得原有核心態與使用者態隔離、程式間隔離的保護機制能被輕易繞過。
隨著 CPU 漏洞事件的不斷髮酵,更多技術細節也開始浮出水面,最新研究表明自 95 年後生產的現代 CPU 都可能存在這些問題。
對無打算更換 CPU 的普通使用者來說應該及時更新補丁,效能上必然會受影響,但還不至於太顯著。當然,這次事件也給出了一個漏洞挖掘的好思路,晶片安全應該引起我們更多的關注。
0x01 概述
Google Project Zero 公佈的 Meltdown(CVE-2017-5754)與 Specter(CVE-2017-5753、CVE-2017-5715)兩組漏洞幾乎影響所有的主流 CPU,其中就包括了 AMD、ARM 和 Intel。
同時,雲端裝置、PC、筆記本、平板和智慧手機都受到了波及,惡意者可利用這些漏洞來竊取計算機上的敏感資料。
兩組漏洞都源於 “推演執行(speculative execution)” 的特性。為了提高效能,CPU 會基於假設推演來預先選擇待執行的分支,之後在程式執行期間,如果推演是有效的,那麼照此繼續執行,如果無效則根據實際情況選擇正確的路徑執行。
對惡意者來說,可以藉助側通道攻擊使 CPU 在推演無效時仍繼續執行,從而導致資訊的洩露。
0x02 Meltdown 攻擊
Meltdown 漏洞利用到了無序執行指令(Out-of-Order)模式,可允許惡意者讀取目標裝置的整個實體記憶體空間,而不單是核心空間,從而洩露出作業系統及其上應用程式的所有資訊。
利用程式中藉助了處理器提權漏洞,使得指令可以繞過記憶體保護,從而由 “推演執行” 特性繞過使用者層到核心層的限制,這就使得應用程式也能訪問系統為核心分配的空間。
0x03 Spectre 攻擊
要完全解決 Spectre 漏洞需改變處理器的架構,因此該漏洞不容易修補且會困擾人們很長一段時間。
它打破了不同程式間的隔離機制,攻擊者會先讓程式訪問其內部的特定空間,而後通過側通道方式讀取相應資料,從而洩露出程式資訊。
Spectre 攻擊不僅可以用於核心層到使用者層的資訊洩露,還可用於虛擬化中 Hypervisor 層到 Client 層的資訊洩漏。此外,藉助 JS 程式碼還可實現瀏覽器沙箱逃逸:
需要注意的是,用於防護 Meltdown 攻擊的 KAISER 機制對其是不適用的。
0x04 漏洞的修復
Windows OS (7/8/10) 和 Microsoft Edge/IE
微軟已經發布了針對 Windows 10 的安全更新(KB4056892),用於解決 Meltdown 問題,並將於 1 月 9 日釋出針對 Windows 7 和 Windows 8 的修復程式。
Linux OS
Linux 也釋出了核心補丁,版本包括 4.14.11、4.9.74、4.4.109、3.16.52、3.18.91 和 3.2.97,使用者可以從 Kernel.org 上下載。
Apple macOS、iOS、tvOS 和 Safari Browser
Apple 在公告中指出,所有 Mac 系統和 iOS 裝置都受到了影響,但目前還沒有已知的攻擊事件發生。
為了預防 Meltdown 攻擊,Apple 已經在 iOS 11.2、macOS 10.13.2 和 tvOS 11.2 上釋出了緩解措施,針對 Spectre 攻擊的修復方案將在後續釋出。
Android OS
Google 表示,1 月 5 日釋出的安全更新已經釋出了最新版的 Android 作業系統。
Firefox Web Browser
Mozilla 已經發布了 Firefox 57.0.4 版本,其中包含針對 Meltdown 和 Spectre 攻擊的緩解措施,建議使用者儘快更新。
Google Chrome Web Browser
Google 計劃在 1 月 23 日釋出 Chrome 64 版本用於防禦針對 Meltdown 和 Spectre 的攻擊,在此期間,使用者可啟用 “Site Isolation” 功能。
VMware
雲端計算廠商 VMware 也釋出了受影響的產品清單以及針對 Meltdown 攻擊的修復措施。
更多詳情可參考看雪論壇專題帖:https://bbs.pediy.com/thread-223724.htm
本文由看雪翻譯小組 BDomne 編譯,來源hackernews
轉載請註明來自看雪社群