AMD 處理器中發現了另一個允許 Meltdown 攻擊的漏洞

來自格拉茨技術大學(奧地利)和亥姆霍茲資訊安全中心 (CISPA) 的研究團隊披露了有關所有 AMD 處理器中的漏洞 (CVE-2021-26318) 的信息,該漏洞可導致執行 Meltdown 級攻擊旁道攻擊(最初假設AMD 處理器不受Meltdown 漏洞影響)。 實際上,該攻擊可用於建立隱蔽通訊通道、監視核心中的活動或獲取有關內核記憶體中的位址的信息,以繞過 KASLR 保護,同時利用核心中的漏洞。

AMD 認為採取特殊措施來阻止該問題是不合適的,因為該漏洞與XNUMX 月發現的類似攻擊一樣,在實際情況下用處不大,受到進程位址空間當前邊界的限制,並且需要存在某些特定的漏洞。核心中現成的指令序列(小工具)。 為了演示這種攻擊,研究人員在自己的核心模組中載入了一個人為添加的小工具。 在實際情況下,攻擊者可以利用例如 eBPF 子系統中定期彈出的漏洞來替換必要的序列。

為了防範這種新型攻擊,AMD 建議使用有助於阻止 Meltdown 攻擊的安全編碼技術,例如使用 LFENCE 指令。 發現該問題的研究人員建議啟用更嚴格的記憶體頁表隔離(KPTI),該隔離以前僅用於英特爾處理器。

在實驗過程中,考慮到核心中存在執行「if (offset < data_len) tmp =」操作的小工具,研究人員設法以每秒 52 位元組的速度將資訊從核心洩漏到用戶空間中的進程。LUT [數據[偏移] * 4096];” 。 已經提出了幾種透過側通道檢索資訊的方法,這些資訊在推測執行期間最終進入高速緩存。 第一種方法是基於分析處理器指令「PREFETCH」(預取+時間)的執行時間的偏差,第二種方法是改變執行「PREFETCH」(預取+功率)時的能耗變化。

回想一下,經典的 Meltdown 漏洞基於以下事實:在指令的推測執行期間,處理器可以存取私有資料區域,然後丟棄結果,因為設定的權限禁止使用者進程進行此類存取。 在程式中,推測執行的區塊透過條件分支與主程式碼分開,該條件分支在實際情況下總是觸發,但由於條件語句使用處理器在搶佔執行期間不知道的計算值程式碼中,所有分支選項都是推測性地進行的。

由於推測執行的操作使用與正常執行的指令相同的緩存,因此在推測執行期間可以在緩存中設置反映私有內存區域中各個位的內容的標記,然後在正常執行的代碼中通過計時確定它們的值分析存取快取和未快取的資料。

來源: opennet.ru

添加評論