

來自佐治亞理工學院和波鴻魯爾大學的研究人員演示了針對蘋果近期釋出的 M 和 A 系列 CPU 的兩種新型側通道攻擊,這些攻擊會導致使用者在使用 Chrome 和 Safari 瀏覽器訪問熱門網站時洩露敏感資訊。
這兩種攻擊分別被稱為 FLOP(透過錯誤的載入輸出預測破壞蘋果 M3 CPU)和 SLAP(透過蘋果晶片的載入地址預測進行資料推測攻擊),它們可以在 2021 年及以後釋出的 Mac、iPhone 和 iPad 上執行。具體來說,SLAP 影響使用 M2/A15 及更新型號 CPU 的裝置,這些 CPU 配備了載入地址預測器(LAP),而 FLOP 影響使用 M3/A17 及更新型號的裝置,這些裝置配備了載入值預測器(LVP)。
據研究人員稱,SLAP 和 FLOP 破壞了瀏覽器內建的隔離保護機制,允許一個網頁讀取另一個網頁的內容,其中可能包含敏感資料。由於這兩種攻擊都是基於微架構的,因此不會留下任何痕跡。
這兩種漏洞源自蘋果晶片 CPU 中使用的兩個預測子系統:載入地址預測器(LAP)和載入值預測器(LVP)。這些子系統透過微架構最佳化來緩解資料危害),並減少 Read-After-Write 依賴導致的減速。
載入地址預測器會根據之前的訪問模式猜測 CPU 下一次將訪問哪個記憶體地址:
如果預測的地址被快取,CPU 將從預測的地址而不是程式原本指定的地址進行推測性載入。一旦從預測地址獲取了值,CPU 將使用程式程式碼中下游的任意指令對該值進行計算。
載入值預測器會在實際值可用之前猜測下一次記憶體訪問將返回的資料值:
LVP 會觀察載入操作返回的資料值。如果這些值是固定的,這些 CPU 可以在下一次執行載入時開啟一個推測視窗,而不是等待 RAW 依賴解決後才有可用的結果。
研究人員發現,當 LAP 或 LVP 猜測錯誤時,CPU 可能在推測執行期間對超出範圍(SLAP)或錯誤(FLOP)的資料執行任意計算,從而導致資料洩露。
對於 SLAP,研究人員演示了針對 Safari 的端到端攻擊,攻擊者可以在未經授權的情況下恢復電子郵件內容和瀏覽歷史記錄:
LAP 會監控來自相同載入指令的地址,用以推測性地載入預測地址,該地址可能錯誤地指向固定的機密資訊(即從未被 CPU 讀取)。一旦獲取了機密資訊,LAP 就會獲得一個較大的推測視窗,足以讓攻擊者對機密資訊進行計算,例如透過隱蔽通道洩露它。
對於 FLOP,他們演示了攻擊者如何利用任意讀取原語恢復 Safari 和 Chrome 的位置歷史記錄、日曆事件和信用卡資訊。
研究人員已將這兩種漏洞告知蘋果公司,但蘋果公司尚未透露計劃何時解決這些問題。雖然這兩種漏洞都有可行的緩解措施,但需要蘋果公司在其作業系統中釋出相關補丁。
FLOP 影響 Chrome 和 Safari,而 SLAP 則是 Safari 獨有的。這是因為 Safari 沒有在”同一瀏覽器上下文組“內實現隔離,與 Firefox 和 Chrome 不同:
Firefox 和 Chrome 似乎確實實現了同一瀏覽器上下文組隔離,並透過 IPC 橋接所需的 API,因此希望 Safari 也能在未來實現這一功能。
正如 Hacker News 使用者 adrian_b 所指出的,載入值預測器的有效性 與 ARM 架構有固定長度指令密切相關,這使得無法將資料儲存在指令中,因此
作為一種變通方法,在為這類 ISA 程式設計時,常量被儲存在靠近函式程式碼的常量池中,載入指令使用基於程式計數器的相對定址來載入常量。
發現 FLOP 和 SLAP 的研究人員並不知道是否有其他 CPU 也可能受到影響,但他們不排除有這種可能性。
隨著摩爾定律逐漸失效,出現了更多獨特的微架構最佳化,我們相信 LAP 可能不是蘋果獨有的,現在或在未來也可能會在其他地方出現。
側通道漏洞是一類源於演算法實現方式的漏洞,利用時間資訊、功耗、電磁洩露和其他型別的資訊來洩露敏感資料。在過去的幾年中,許多影響 CPU 並利用推測執行的重大側通道漏洞引起了廣泛關注,包括 Spectre 和 Meltdown。
檢視英文原文:
https://www.infoq.com/news/2025/02/apple-cpu-side-channel-slap-flop/
本文由 InfoQ 獨家翻譯,未經授權不得轉載。
