阿姆斯特丹自由大學的研究人員 揭曉 最近發現了一個 新漏洞是 Spectre-v2 漏洞的擴展版本 在 Intel 和 ARM 處理器上。
這個新的漏洞, 受洗為 BHI (分支歷史注入,CVE-2022-0001), BHB (分支歷史緩衝區,CVE-2022-0002) 和 Spectre-BHB (CVE-2022-23960),其特點是允許規避添加到處理器的 eIBRS 和 CSV2 保護機制。
該漏洞在同一問題的不同表現形式中被描述,因為 BHI 是一種影響不同權限級別的攻擊,例如,用戶進程和內核,而 BHB 是相同權限級別的攻擊,例如,eBPF JIT 和內核。
關於漏洞
從概念上講 BHI 是 Spectre-v2 攻擊的擴展變體,其中繞過額外保護(Intel eIBRS 和 Arm CSV2)並協調數據洩漏,將緩衝區中的值替換為全局分支歷史記錄(Branch History Buffer),在 CPU 中用於提高分支預測準確性通過考慮過去過渡的歷史。
在攻擊過程中 通過對過渡歷史的操縱, 為錯誤預測轉換和投機執行創造條件 必要的指令,其結果存放在緩存中。
除了使用版本歷史緩衝區而不是版本目標緩衝區之外,新攻擊與 Spectre-v2 相同。 攻擊者的任務是創造這樣的條件,地址, 執行推測操作時,取自正在確定的數據區域。
執行推測性間接跳轉後,從內存中讀取的跳轉地址仍保留在緩存中,之後可以根據緩存訪問時間的變化和未緩存的情況,使用確定緩存內容的方法之一來檢索它數據。
研究人員已經展示了一種允許用戶空間從內核內存中提取任意數據的功能漏洞。
例如,它顯示瞭如何使用準備好的漏洞利用從內核緩衝區中提取一個字符串,該字符串帶有從 /etc/shadow 文件加載的 root 用戶密碼的哈希值。
該漏洞利用演示了使用用戶加載的 eBPF 程序在單個權限級別(內核到內核攻擊)內利用該漏洞的能力。 也不排除在內核代碼中使用現有 Spectre 小工具的可能性,這些腳本會導致指令的推測執行。
脆弱性 出現在大多數當前的英特爾處理器上, 除了 Atom 系列處理器和幾個 ARM 處理器。
根據研究,該漏洞不會出現在 AMD 處理器上。 為了解決這個問題,已經提出了幾種方法。 軟件來阻止漏洞,可以在未來的CPU型號中出現硬件保護之前使用。
為了阻止通過 eBPF 子系統的攻擊,s建議默認禁用加載 eBPF 程序的能力 由非特權用戶通過將 1 寫入文件“/proc/sys/kernel/unprivileged_bpf_disabled”或運行命令“sysctl -w kernel .unprivileged_bpf_disabled=1”。
要阻止通過小工具進行的攻擊, 建議使用 LFENCE 指令 在可能導致推測性執行的代碼部分中。 值得注意的是,大多數 Linux 發行版的默認配置已經包含了足以阻止研究人員演示的 eBPF 攻擊的必要保護措施。
英特爾關於禁用對 eBPF 的非特權訪問的建議默認情況下也適用於從 Linux 內核 5.16 開始,並將移植到更早的分支。
最後,如果您有興趣能夠了解更多,可以在 以下鏈接。