近日,已發現影響多代 Intel CPU 的新邊信道攻擊,允許數據通過 EFLAGS 寄存器泄漏。
新的攻擊是由清華大學、馬里蘭大學和中國教育部計算機實驗室 (BUPT) 的研究人員發現的,它與大多數其他側信道攻擊不同。
這種新型攻擊不像許多其他側信道攻擊那樣依賴緩存系統,而是利用瞬態執行中的一個缺陷,可以通過時序分析從用戶內存空間中提取秘密數據。
該攻擊是 Meltdown 的旁路,Meltdown 是 2018 年發現的一個嚴重安全漏洞, 影響了許多基于 x86 的微處理器。
Meltdown 利用稱為“推測執行”的性能優化功能,使攻擊者能夠繞過內存隔離機制來訪問存儲在內核內存中的秘密,例如密碼、加密密鑰和其他私有數據。
通過軟件補丁、微代碼更新和硬件重新設計,Meltdown 已 在很大程度上得到緩解;然而,沒有任何解決方案可以 100% 解決問題,最新的攻擊方法甚至可以在完全打補丁的系統中發揮作用,具體取決于硬件、軟件和補丁配置。
瞬態執行定時攻擊
在 Arxiv.org 上發表的一篇技術論文中提出的新的側信道攻擊 描述了瞬態執行中 EFLAGS 寄存器變化的缺陷,影響了 JCC(條件代碼跳轉)指令的時序。
EFLAGS 寄存器是一個 CPU 寄存器,它保存著與處理器狀態相關的各種標志,而 JCC 指令是一個 CPU 指令,它允許根據 EFLAGS 寄存器的內容進行條件分支。
攻擊分兩個階段進行,第一階段觸發瞬時執行并通過EFLAGS寄存器對秘密數據進行編碼,第二階段測量KCC指令解碼數據的執行時間。
攻擊概述 (arxiv.org)
實驗數據表明,該攻擊針對 Intel i7-6700 和 Intel i7-7700 實現了 100% 的數據檢索(泄漏),并且對更新的 Intel i9-10980XE CPU 取得了一定的成功。實驗在 Ubuntu 22.04 jammy 上進行,Linux 內核版本為 5.15.0。
用于計時瞬態執行攻擊的偽代碼 (arxiv.org)
然而,研究人員指出,這種定時攻擊不如緩存狀態側信道方法可靠,并且為了在最近的芯片中獲得更好的結果,這種攻擊必須重復數千次。
由實驗數據評估分析得出:“在實驗中,我們發現 EFLAGS 寄存器對 Jcc 指令執行時間的影響不像緩存狀態那樣持久。在瞬態執行后的大約 6-9 個周期內,Jcc 執行時間將不會構建邊信道。根據經驗,攻擊需要重復數千次才能獲得更高的準確性。”
研究人員承認,攻擊的根本原因仍然難以捉摸,并假設英特爾 CPU 的執行單元中有一個緩沖區,如果執行應該被撤回,則需要時間來恢復,如果隨后的指令依賴于該進程,則會導致停頓在緩沖區的目標上。
然而,研究人員仍然提出了一些重要的緩解措施,例如更改 JCC 指令的實現,使對抗性執行在任何情況下都無法測量,或者在瞬態執行后重寫 EFLAGS 以減少其對 JCC 指令的影響。
注:本文由E安全編譯報道,轉載請聯系授權并注明來源。
來源:E安全
版權所有:鄭州三中網安科技有限公司 豫ICP備2020036495號-1 ?? | 豫公網安備 41019702002241號 | 站點地圖 | 人才招聘 | 聯系我們 |