在許多製造商用來為其設備建立 UEFI 韌體(UEFI BIOS 最常見的實作)的 InsydeH2O 框架中,已發現 23 個漏洞,這些漏洞允許在 SMM(系統管理模式)層級執行程式碼,該層級具有比管理程序模式具有更高的優先權(環-2)和零保護環,並且可以無限制地存取所有記憶體。 該問題影響富士通、西門子、戴爾、惠普、HPE、聯想、微軟、英特爾和 Bull Atos 等製造商使用的 UEFI 韌體。
漏洞的利用需要具有管理員權限的本地訪問,這使得需求問題成為二級漏洞,在利用系統中的其他漏洞或使用社會工程方法之後使用。 SMM層級的存取可讓您在不受作業系統控制的層級執行程式碼,可用於修改韌體並在SPI Flash中留下作業系統無法偵測到的隱藏惡意程式碼或rootkit,以及停用啟動階段的驗證(UEFI 安全啟動、Intel BootGuard)並攻擊虛擬機器管理程式以繞過檢查虛擬環境完整性的機制。
可以使用未經驗證的 SMI(系統管理中斷)處理程序從作業系統中進行漏洞利用,也可以在作業系統啟動或從睡眠模式返回的初始階段的預執行階段進行漏洞利用。 所有漏洞都是由記憶體問題引起的,分為三類:
- SMM Callout - 透過將 SWSMI 中斷處理程序的執行重定向到 SMRAM 外部的程式碼,以 SMM 權限執行程式碼;
- 記憶體損壞允許攻擊者將資料寫入 SMRAM,SMRAM 是一個特殊的隔離記憶體區域,在其中以 SMM 權限執行程式碼。
- 在 DXE(驅動程式執行環境)層級運行的程式碼中存在記憶體損壞。
為了演示組織攻擊的原理,我們發布了一個漏洞利用範例,該範例允許透過來自第三個或零個保護環的攻擊來存取 DXE 運行時 UEFI 並執行您的程式碼。 此漏洞利用 UEFI DXE 驅動程式中的堆疊溢位 (CVE-2021-42059)。 在攻擊過程中,攻擊者可以將其程式碼放置在DXE驅動程式中,該驅動程式在作業系統重新啟動後仍保持活動狀態,或對SPI Flash的NVRAM區域進行更改。 在執行過程中,攻擊者程式碼可以更改特權記憶體區域、修改 EFI 執行時間服務並影響啟動過程。
來源: opennet.ru