AMD Zen CPU皆中招,新型Inception攻擊能從中泄露敏感數據
蘇黎世聯邦理工學院的研究人員發現了一種新型瞬態執行攻擊,能在所有型號的 AMD Zen CPU上執行特定命令并泄露敏感數據。
瞬態執行攻擊利用了CPU上的推測執行機制,該機制旨在讓CPU處理比較費時的任務時預先設置下一步操作或結果,以此提高CPU性能。但問題在于這可能會留下可供攻擊者觀察或分析的痕跡,以檢索本應受到保護的有價值數據。
研究人員將一種名為“幻影推測”的舊漏洞(CVE-2022-23825)與一種名為“瞬態執行訓練”(TTE) 的新瞬態執行攻擊相結合,創建了一種更強大的“初始” 攻擊。“幻影推測”允許攻擊者觸發錯誤預測,在任意 XOR 指令處創建推測執行周期(瞬態窗口);TTE 則是通過向分支預測器注入新的預測來操縱未來的錯誤預測,以此來創建可利用的推測執行。
該攻擊所能利用的漏洞已被追蹤為CVE-2023-20569,允許攻擊者使CPU相信XOR指令(簡單的二進制運算)是遞歸調用指令,進而導致攻擊者控制的目標地址溢出返回堆棧緩沖區,從而允許攻擊者從任何 AMD Zen CPU 上運行的非特權進程中泄露任意數據。
Inception邏輯圖
通過此種 Inception攻擊實現的數據泄露速率為每秒39 字節,竊取 16 個字符的密碼大約需要半秒,竊取 RSA 密鑰需要 6.5 秒。
如何防止 Inception 攻擊?
研究人員表示,所有基于 AMD Zen 的 Ryzen 和 EPYC CPU都容易受到 Phantom 和 Inception 的攻擊。
盡管研究人員創建的概念驗證旨在 Linux 上執行,但這些攻擊可能適用于任何使用AMD CPU 的操作系統,因為這是一個硬件缺陷,而不是軟件缺陷。
緩解這一問題的策略是在不信任上下文之間切換時,完全刷新分支預測器狀態,但在較老的 Zen 1(+) 和 Zen 2 CPU 上會帶來 93.1% 到 216.9% 的性能開銷。對于 Zen 3 和 Zen 4 CPU,雖然最初缺乏對此緩解策略的足夠硬件支持,但 AMD 此后發布了微代碼更新以啟用此功能,建議基于 Zen 的 AMD 處理器的用戶安裝最新的微代碼更新。
此外,AMD最新表示,Inception只能在本地被利用,例如通過下載惡意軟件,并建議客戶采用安全最佳實踐,包括運行最新的軟件和惡意軟件檢測工具。目前AMD 尚未發現研究環境之外對Inception有任何利用。