AMD處理器中快取通道預測機制的兩次攻擊

來自格拉茨科技大學(奧地利)的一組研究人員,此前以開發攻擊方法而聞名 MDS, 網絡幽靈, 飛錘 и ZombieLoad,對特定於 AMD 處理器的硬體優化進行了研究, 已開發 兩種新的側通道攻擊方法,可在 AMD 處理器的 LXNUMX 快取通道預測機制運作期間操縱資料外洩。 這些技術可用於降低 ASLR 保護的有效性、恢復易受攻擊的 AES 實作中的金鑰以及提高 Spectre 攻擊的有效性。

在CPU的一級資料快取(L1D)中的通道預測機制(路預測器)的實作中發現了問題,該機制用於預測哪個快取通道包含某個記憶體位址。 AMD 處理器中使用的最佳化是基於檢查 μ 標籤 (μTag)。 μTag 是透過對虛擬位址應用特定的雜湊函數來計算的。 在操作期間,通道預測引擎使用μTag從表中確定快取通道。 因此,μTag 允許處理器將自身限制為僅存取特定通道,而無需搜尋所有選項,從而顯著降低了 CPU 能耗。

AMD處理器中快取通道預測機制的兩次攻擊

在對 2011 年至 2019 年發布的各代 AMD 處理器中的通道預測系統實施進行逆向工程時,發現了兩種新的側通道攻擊技術:

  • Collide+Probe - 允許攻擊者追蹤在同一邏輯 CPU 核心上運行的進程的記憶體存取。 該方法的本質是利用在計算μTag的雜湊函數中引起衝突的虛擬位址來追蹤記憶體存取。 與英特爾處理器上使用的 Flush+Reload 和 Prime+Probe 攻擊不同,Collide+Probe 不使用共享內存,並且無需了解物理地址即可工作。
  • 載入+重新載入 - 讓您非常準確地確定相同實體 CPU 核心上的記憶體存取追蹤。 此方法基於這樣的事實:實體儲存單元只能在L1D高速緩存中存在一次。 那些。 在不同的虛擬位址存取相同記憶體單元將導致該單元從 L1D 快取中逐出,從而允許追蹤記憶體存取。 儘管該攻擊依賴於共享內存,但它不會刷新緩存行,從而允許進行隱秘攻擊,並且不會從最後一級緩存中逐出資料。

基於 Collide+Probe 和 Load+Reload 技術,研究人員示範了幾種旁路攻擊場景:

  • 顯示了使用在兩個進程之間組織隱藏的間接通訊通道的方法的可能性,允許以高達每秒 588 kB 的速度傳輸資料。
  • 使用 μTag 中的衝突,可以減少 ASLR(位址空間佈局隨機化)不同變體的熵,並在完全更新的 Linux 系統上繞過核心中的 ASLR 保護。 顯示了從使用者應用程式以及使用在沙箱環境中執行的 JavaScript 程式碼和在另一個來賓環境中執行的程式碼進行攻擊以減少 ASLR 熵的可能性。

    AMD處理器中快取通道預測機制的兩次攻擊

  • 基於 Collide+Probe 方法,實施了一次攻擊,從易受攻擊的實作中恢復加密金鑰(基於 T型台) AES 加密。
  • 透過使用 Collide+Probe 方法作為資料獲取通道,Spectre 攻擊能夠在不使用共享記憶體的情況下從核心中提取私有資料。

此漏洞發生在基於微架構的AMD處理器上
推土機、打樁機、壓路機、Zen(Ryzen、Epic)、Zen+ 和 Zen2。
AMD 於 23 年 2019 月 XNUMX 日收到有關該問題的通知,但到目前為止 沒有發布報告 有關阻止漏洞的資訊。 研究人員表示,透過提供 MSR 位元來選擇性地停用通道預測系統,可以在微代碼更新層級阻止該問題,類似於英特爾控制分支預測機制禁用的做法。

AMD處理器中快取通道預測機制的兩次攻擊

來源: opennet.ru

添加評論