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