2024.10.22 09:00

Spectre 攻擊六年後仍未解決,研究人員成功破解 Intel 和 AMD 晶片

ADVERTISEMENT

瑞士蘇黎世聯邦理工學院的約翰內斯·威克納(Johannes Wikner)和卡維·拉扎維(Kaveh Razavi)周五發表了一份報告,詳細介紹了一種跨進程的 Spectre 攻擊方法,該攻擊可以解除地址空間佈局隨機化(Address Space Layout Randomization, ASLR), 並從Set User ID(suid)進程中洩露 root 密碼的雜湊值。研究人員宣稱他們已成功實施此類攻擊。

Spectre 攻擊是指由於處理器執行推測執行的方式而導致的一系列攻擊,推測執行是一種預先進行運算的性能最佳化技術。運算結果可以在需要時使用,否則將被丟棄。

分支預測(branch prediction)是推測性執行的一種形式,現代處理器利用它來猜測程式將採取的路徑。它與分支目標預測(branch target prediction)相關,後者試圖預測特定分支中將執行的下一條指令的目標位址。

ADVERTISEMENT

Spectre 攻擊試圖使分支預測器作出錯誤的預測,這樣當處理器執行相關指令時,它會存取包含密碼或加密密鑰等機密資料的越界記憶體。隨後對儲存這些機密的記憶體區域進行操作,攻擊者可藉由觀察側通道(如 CPU 快取存取和功率波動)來推斷出這些機密。

間接分支預測器屏障 (IBPB) 的目的是防禦針對 x86 Intel 和 AMD 晶片的 Spectre v2 (CVE-2017-5715) 攻擊。IBPB 的目的則防止轉發先前學習的用於推測執行的間接分支目標預測。

顯然,這道屏障沒有被正確的運作。

ADVERTISEMENT

「我們在最近的 Intel 微架構(例如 Golden Cove 和 Raptor Cove,存在於第 12、13 和 14 代 Intel Core 處理器以及第 5 和第 6 代 Xeon 處理器中)中發現了一個微碼錯誤,該錯誤保留了分支預測,以便它們仍然可以在 IBPB 使它們失效後使用,」Wikner 解釋說。「這種屏障後推測允許攻擊者繞過進程上下文和虛擬機器施加的安全邊界。」

威克納和拉扎維還設法從使用 Zen 2 架構構建的 AMD 晶片上的非特權進程中洩漏任意核心記憶體。

Intel 和 AMD 攻擊相的的影片已經發表,展示了預期中來自命令列互動的技術細節。

ADVERTISEMENT

Intel 晶片(包括 Intel Core 第 12、13 和 14 代以及 Xeon 第 5 和第 6 代)可能很容易受到攻擊。在 AMD Zen 1(+) 和 Zen 2 硬體上,該問題可能會影響 Linux 使用者。

相關細節已於 2024 年 6 月披露,但 Intel 和 AMD 獨立發現了這個問題。

Intel 在 2024 年 3 月發表的微碼修補程式 (INTEL-SA-00982) 中修復了該問題。儘管如此,某些 Intel 硬體可能尚未收到該微碼更新。

ADVERTISEMENT

威克納和拉扎維在他們的技術摘要中觀察到:「然而,在撰寫本文時,此微碼更新在 Ubuntu 儲存庫中不可用。」

看來 Ubuntu 隨後已經處理了這個問題。

AMD 在 2022 年 11 月的安全公告 AMD-SB-1040 中發表了自己的公告。該公司指出,虛擬機器管理程式和/或作業系統供應商需要自行進行改善工作。

「由於 AMD 的問題已知並被追蹤於 AMD-SB-1040,AMD 將此問題視為軟體錯誤,」研究人員解釋說。「我們目前正在與 Linux 核心維護人員合作,以合併我們提出的軟體修補程式。」 

ADVERTISEMENT