UEFI 韌體中揭露了一個漏洞 (CVE-2021-33164),該漏洞允許在 SMM(系統管理模式)層級執行程式碼,該等級優先權高於虛擬機器管理程式模式和零環保護,並允許不受限制地存取所有系統記憶體。此漏洞代號為 RingHopper,利用 DMA(直接記憶體存取)進行時序攻擊,從而破壞在 SMM 層級運行的程式碼中的記憶體。英特爾、戴爾和 Insyde Software 的韌體已確認存在該漏洞(據稱該問題影響 8 家製造商,但其餘 5 家尚未披露)。 AMD、Phoenix 和東芝的韌體未受此問題影響。
攻擊者可以利用作業系統內部存在的漏洞,透過易受攻擊的 SMI(系統管理中斷)處理程序進行攻擊,而存取這些處理程序需要管理員權限。此外,攻擊者還可以在作業系統初始化之前的早期啟動階段,透過實體存取來實施攻擊。為了緩解這個問題,用戶需要採取一些措施。 Linux 建議使用 LVFS 服務更新韌體(Linux 供應商韌體服務)使用 fwupdmgr 實用程式(fwupdmgr get-updates;fwupdmgr update)來自 fwupd 軟體包。
需要管理員權限才能執行攻擊,這限制了問題的危險性,但並不能阻止其被用作第二層漏洞,以便在利用系統中的其他漏洞或使用社會工程方法後維持其存在。存取 SMM(Ring -2)允許在作業系統控制範圍之外的層級執行程式碼,這可用於修改韌體並在 SPI Flash 中放置作業系統無法偵測到的隱藏惡意程式碼或 rootkit,以及停用啟動階段的驗證(UEFI 安全啟動、Intel BootGuard)以及攻擊虛擬機器管理程式以繞過虛擬環境的完整性驗證機制。
此問題是由 SMI(系統管理中斷)處理程序中的競爭條件引起的,該競爭條件發生在存取檢查和 SMRAM 存取之間。可以使用 DMA 進行側通道分析來確定狀態檢查和使用檢查結果之間的正確時機。因此,由於透過 DMA 存取 SMRAM 的非同步特性,攻擊者可以確定正確的時機並使用 DMA 覆蓋 SMRAM 內容,從而繞過 SMI 處理程序 API。支援 Intel-VT 和 Intel VT-d 機制的處理器包含基於 IOMMU(輸入輸出記憶體管理單元)的 DMA 攻擊防護機制,但這種防護機制只能有效阻止攻擊者使用預置裝置發動的硬體 MA 攻擊,而無法防禦透過 SMI 處理程序發動的攻擊。
來源: opennet.ru
