BHI 是 Intel 和 ARM 處理器中的一個新的 Spectre 類漏洞

阿姆斯特丹自由大學的一組研究人員在英特爾和 ARM 處理器的微架構結構中發現了一個新漏洞,該漏洞是 Spectre-v2 漏洞的擴展版本,可允許繞過處理器中添加的 eIBRS 和 CSV2 保護機制。此漏洞有多個名稱:BHI(分支歷史記錄注入,CVE-2022-0001)、BHB(分支歷史記錄緩衝區,CVE-2022-0002)和 Spectre-BHB(CVE-2022-23960),它們描述了同樣的問題(BHI - 影響不同權限等級的攻擊,例如使用者行程和內核,BHB - 影響相同權限等級的攻擊,例如eBPF JIT 和內核)。

研究人員展示了一種有效的漏洞方法,可以從用戶空間的核心記憶體中提取任意資料。例如,它展示瞭如何使用準備好的漏洞利用程式從核心緩衝區中提取一個字串,其中包含從 /etc/shadow 檔案載入的 root 使用者密碼的雜湊值。該漏洞利用演示了使用用戶加載的 eBPF 程式利用一個特權等級內的漏洞(核心到核心攻擊)的可能性。也可以使用核心程式碼中現有的 Spectre 小工具(導致指令推測執行的命令序列)來取代 eBPF。

此漏洞出現在目前大多數 Intel 處理器中(Atom 系列處理器除外)。在ARM 處理器中,Cortex-A15、Cortex-A57、Cortex-A7*、Cortex-X1、Cortex-X2、Cortex-A710、Neoverse N1、Neoverse N2、Neoverse V1 以及可能的一些Cortex-R 晶片都受到該問題的影響。據研究,該漏洞並未出現在AMD處理器中。為了消除這個問題,已經提出了幾種軟體方法來阻止該漏洞,這些方法可以在未來的CPU型號中出現硬體保護之前使用。

為了阻止透過 eBPF 子系統的攻擊,建議預設停用非特權使用者下載 eBPF 程式的能力,方法是向檔案「/proc/sys/kernel/unprivileged_bpf_disabled」寫入 1 或執行指令「sysctl -w kernel. unprivileged_bpf_disabled=1 」。若要阻止小工具攻擊,建議在可能導致推測執行的程式碼區域中使用 LFENCE 指令。值得注意的是,大多數 Linux 發行版的預設配置已經包含了足以阻止研究人員演示的 eBPF 攻擊的必要保護措施。英特爾關於禁用對 eBPF 的非特權存取的建議也是自 Linux 核心 5.16 以來的預設設置,並將向後移植到早期分支。

從概念上講,BHI 是Spectre-v2 攻擊的擴展版本,其中,為了繞過附加保護(Intel eIBRS 和Arm CSV2)並組織資料洩漏,在分支歷史緩衝區中使用值替換,在CPU 中使用以增加預測透過考慮過去轉換的歷史來準確分支。在攻擊期間,透過對轉換歷史記錄的操作,為轉換的錯誤預測和必要指令的推測執行創建條件,其結果最終出現在快取中。

除了使用分支歷史緩衝區而不是分支目標緩衝區之外,新攻擊與 Spectre-v2 相同。攻擊者的任務是創造條件,使得在執行推測操作時從定義的資料區域中取得位址。執行推測間接跳轉後,從記憶體讀取的跳轉位址保留在快取中,之後可以使用確定快取內容的方法之一基於對快取和未快取的存取時間變化的分析來檢索它資料。

來源: opennet.ru

添加評論