一群人 格拉茨工業大學的研究人員 在奧地利 和亥姆霍茲信息安全中心 (CISPA), 確定了新的Foreshadow攻擊媒介 (L1TF),它使您可以從Intel SGX安全區,SMM,操作系統內核的內存區域以及虛擬化系統中的虛擬機的內存中提取數據。
與原始的Foreshadow攻擊不同, 新版本並非特定於英特爾處理器,會影響 其他製造商的CPU,例如 ARM,IBM和AMD。 另外,新選項不需要高性能,即使在Web瀏覽器中運行JavaScript和WebAssembly也可以進行攻擊。
Foreshadow利用了以下事實:在虛擬地址訪問內存時,它會產生異常(終端頁面故障),處理器會推測性地計算物理地址,並在L1高速緩存中加載數據。
推測訪問在迭代完成之前完成 內存頁表以及內存頁表(PTE)條目的狀態如何,也就是在驗證數據在物理內存中並且可讀之前。
完成內存可用性檢查之後在PTE中沒有“指示器”的情況下, 該操作被丟棄,但數據已緩存並可以檢索 使用方法通過側邊通道確定緩存內容(通過分析對緩存和非緩存數據的訪問時間的變化)。
研究人員已經證明 這 現有的預防前肢的方法無效 並且在實施時對問題的解釋不正確。
Foreshadow漏洞 無論內核中使用保護機制如何,都可以利用 以前被認為足夠了。
結果, 研究人員證明了在內核相對較舊的系統上執行Foreshadow攻擊的可能性,其中啟用了所有可用的Foreshadow保護模式以及較新的內核,其中僅禁用了Spectre-v2保護(使用Linux內核選項nospectre_v2)。
已經發現,預取效果與內存訪問期間的軟件預取指令或硬件預取效果無關,而是源於內核中用戶空間寄存器的推測性取消引用。
對漏洞原因的這種誤解最初導致一個假設,即Foreshadow中的數據洩漏只能通過L1緩存發生,而內核中某些代碼段(預取設備)的存在可能會導致數據從L1洩漏出去。緩存,例如在L3緩存中。
揭示的功能還為創建新的攻擊提供了機會。 旨在將虛擬地址轉換為沙箱環境中的物理地址,並確定存儲在CPU寄存器中的地址和數據。
作為演示研究人員顯示 利用所揭示的效果來 以大約每秒10位的吞吐量從一個進程提取數據到另一個進程 在具有Intel Core i7-6500U CPU的系統上。
還顯示了過濾記錄內容的可能性 從英特爾SGX飛地(需要15分鐘才能確定寫入32位寄存器的64位值)。
阻止前鋒的進攻 通過三級緩存 Spectre-BTB保護方法 (分支目標緩衝區) 在retpoline補丁集中實施是有效的。
因此, 研究人員認為有必要使retpoline保持啟用狀態 即使在具有較新CPU的系統上,這些系統已經具有針對CPU指令的推測執行機制中的已知漏洞的保護。
就其本身而言, 英特爾代表表示,他們不打算增加其他保護措施 抵禦處理器的Foreshadow,並認為足以抵禦Spectre V2和L1TF(Foreshadow)攻擊。