Intel處理器MMIO機制漏洞

英特爾披露了有關透過處理器微架構結構發生的新型資料外洩的信息,該結構允許透過操縱 MMIO(記憶體映射輸入輸出)機制來確定在其他 CPU 核心上處理的資訊。例如,漏洞允許從其他進程、Intel SGX enclave 或虛擬機器中提取資料。這些漏洞僅針對 Intel CPU;其他製造商的處理器不受這些漏洞的影響。

這些漏洞出現在各種英特爾CPU中,包括基於Haswell、Skylake、IceLake、Broadwell、Lakefield、Kabylake、Cometlake和Rocketlake微架構的處理器,以及Xeon EP/EX、Scalable和一些Atom伺服器處理器。為了進行攻擊,需要存取 MMIO,例如,可以在虛擬化系統中獲得該存取權限,該系統為攻擊者控制的客戶系統提供存取 MMIO 的能力。使用 Intel SGX(軟體防護擴充)隔離飛地的系統也可能需要修復。

阻止漏洞需要微程式碼更新和使用基於 VERW 指令的附加軟體保護方法,以便在從核心返回到用戶空間或將控制權轉移到客戶系統時清除微架構緩衝區的內容。類似的保護也用於阻止先前識別的 MDS(微架構資料採樣)、SRBDS(特殊暫存器緩衝區資料採樣)和 TAA(事務非同步中止)類別攻擊。

在微程式碼方面,英特爾 CPU 的 2022.1 月微程式碼更新 (IPU 5.18.5) 中提出了實現保護所需的變更。在 Linux 核心中,版本 5.15.48、5.10.123、5.4.199、4.19.248、4.14.284、4.9.319 和 XNUMX 中包含針對新型攻擊的防護。為了檢查系統暴露在 MMIO 中的漏洞並評估某些保護機制的活動,檔案「/sys/devices/system/cpu/vulnerability/mmio_stale_data」已新增至 Linux 核心中。為了控制保護的包含,已經實現了內核啟動參數“mmio_stale_data”,它可以取值“full”(在移動到用戶空間和VM中時啟用緩衝區清理),“full,nosmt”(作為“完整”+另外禁用SMT/超線程)和“關閉”(禁用保護)。針對 Xen 虛擬機器管理程式和 Qubes 作業系統提供了單獨的修復程式。

已識別的一類漏洞的本質是,某些操作會導致將其他 CPU 核心上執行後剩餘的資料從一個微架構緩衝區複製或移動到另一個微架構緩衝區。 MMIO 中的漏洞允許將這些殘留資料從隔離的微架構緩衝區傳輸到應用程式可見的暫存器或 CPU 緩衝區。已經確定了透過 MMIO 提取殘留資料的三種方法:

  • DRPW(裝置暫存器部分寫入,CVE-2022-21166)是由於某些 MMIO 暫存器的寫入處理不正確而導致的問題。如果寫入的資料大小小於暫存器的大小,則填入緩衝區中的剩餘資訊也會複製到暫存器中。因此,向 MMIO 暫存器發起不完整寫入作業的進程可以從其他 CPU 核心上執行的操作中取得微架構緩衝區中剩餘的資料。
  • SBDS(共享緩衝區資料採樣,CVE-2022-21125)是由於所有內核共用的中間緩衝區的移動而導致內核綁定填充緩衝區的殘留資料外洩。
  • SBDR(共享緩衝區資料讀取,CVE-2022-21123) - 此問題與 SBDS 類似,但不同之處在於殘留資料可能最終出現在應用程式可見的 CPU 結構中。 SBDS 和 SBDR 問題僅出現在客戶端系統的處理器和 Intel Xeon E3 伺服器系列上。

Intel處理器MMIO機制漏洞


來源: opennet.ru

添加評論