AMD 已確認 AMD Zen 3 CPU 存在遭受 Spectre-STL 攻擊的潛在漏洞

AMD發布了一份報告,分析Zen 3系列處理器中實現的PSF(預測儲存轉發)優化技術的安全性,該研究從理論上證實了4年2018月確定的Spectre-STL(Spectre-vXNUMX)攻擊方法的適用性, PSF技術,但在實踐中,尚未發現能夠導致攻擊的程式碼模板,整體危險評估為微不足道。

讓我們回想一下,Spectre-v4(推測性儲存繞過)攻擊是基於在使用間接尋址處理交替寫入和讀取操作時丟棄推測執行操作的結果後恢復已在處理器快取中穩定的資料。 當讀取操作在寫入操作之後(例如,mov [rbx + rcx], 0x0; mov rax, [rdx + rsi])時,由於正在執行類似的操作(讀取操作是執行更頻繁,並且可以從快取執行讀取)且處理器可以在寫入之前推測性地執行讀取,而無需等待計算寫入的間接偏移量。

此功能允許讀取指令在儲存操作尚未完成時存取某個位址的舊值。 如果存在預測錯誤,則不成功的推測操作將被丟棄,但其執行痕跡將保留在處理器高速緩存中,並且可以通過基於訪問變化分析確定高速緩存內容的方法之一來檢索緩存和未緩存數據的時間。

PSF 加入到 AMD Zen 3 處理器中,優化了 STLF(儲存到載入轉發),它透過預測讀寫操作之間的關係來推測性地執行讀取操作。 當使用經典的 STLF 時,處理器對從先前的“store”命令直接轉發的資料執行“load”操作,而不需要等待結果實際寫入內存,而是確保“load”中使用的位址和“存儲”命令匹配。 PSF 最佳化使得位址檢查具有推測性,並且如果先前已經執行了操作單一位址的儲存/載入對,則在計算位址資訊之前執行「載入」操作。 如果預測失敗,狀態將回滾,但資料仍保留在快取中。

對PSF的攻擊只能在一級權限的框架內進行,僅覆蓋當前進程上下文,並被位址空間隔離方法或硬體沙箱機制阻止。 在這種情況下,進程中的軟體沙箱方法可能會受到該問題的影響。 此攻擊對瀏覽器、程式碼執行虛擬機器和在單一進程中執行第三方程式碼的 JIT 等系統構成威脅(該攻擊可能允許不受信任的沙箱程式碼存取其他進程資料)。

AMD 提供了多種完全或選擇性停用 PSF 的方法,但考慮到大多數應用程式的風險可以忽略不計,因此建議預設不要停用此最佳化。 為了選擇性地保護進程,隔離那些執行不可信程式碼的進程,建議透過設定「SSBD」和「PSFD」MSR 位元來停用 PSF,包括針對各個執行緒。 已為 Linux 核心準備了補丁,並實作了「psfd」和「nopsfd」命令列選項,用於控制 PSF 的開啟和關閉方式。

來源: opennet.ru

添加評論