在 Ubuntu 中禁用鎖定安全以遠程繞過 UEFI 安全啟動的方法

安德烈·科諾瓦洛夫(Google) опубликовал 遠程禁用保護的方法 鎖定Ubuntu 附帶的 Linux 內核包中提供了(理論上,建議的方法 與 Fedora 和其他發行版的內核一起工作,但這些尚未經過測試)。

鎖定限制 root 用戶對內核的訪問並阻止 UEFI 安全啟動旁路路徑。 例如,鎖定模式限制對/dev/mem、/dev/kmem、/dev/port、/proc/kcore、debugfs、kprobes 調試模式、mmiotrace、tracefs、BPF、PCMCIA CIS(卡信息結構)、某些接口的訪問CPU 的 ACPI 和 MSR 寄存器、對 kexec_file 和 kexec_load 的調用被阻止、禁止轉換到睡眠模式、PCI 設備的 DMA 使用受到限制、禁止從 EFI 變量導入 ACPI 代碼、I/O 操作不允許更改端口,包括更改中斷號和串行端口的I/O 端口。

Lockdown 機制最近被添加到 Linux 內核的核心中。 5.4,但它仍然以補丁的形式實現,或者在發行版提供的內核中補充補丁。 發行版中提供的附加組件與內核中內置的實現之間的區別之一是,當對系統進行物理訪問時,能夠禁用所提供的鎖。

在 Ubuntu 和 Fedora 中,提供了組合鍵 Alt+SysRq+X 來禁用鎖定。 據了解,Alt+SysRq+X組合只能用於對設備的物理訪問,在遠程黑客攻擊並獲得root訪問權限的情況下,攻擊者將無法禁用Lockdown,例如加載帶有rootkit 的未簽名模塊進入內核。

安德烈·科諾瓦洛夫 (Andrey Konovalov) 表明,基於鍵盤的確認用戶實際存在的方法效率低下。 禁用鎖定的最簡單方法是以編程方式 模擬 通過 /dev/uinput 按 Alt+SysRq+X,但默認情況下禁用此選項。 同時,我們設法找到至少另外兩種替代 Alt + SysRq + X 的方法。

第一種方法涉及使用“sysrq-trigger”接口- 為了進行模擬,只需將“1”寫入/proc/sys/kernel/sysrq,然後將“x”寫入/proc/sysrq即可啟用該接口-扳機。 指定漏洞 淘汰 在 Ubuntu 內核的 31 月更新和 Fedora XNUMX 中。值得注意的是,開發人員(如 /dev/uinput 的情況)最初 試圖 阻止給定方法,但阻止不起作用,因為 錯誤 在代碼中。

第二種方法與鍵盤模擬有關 優盤/網絡 然後從虛擬鍵盤發送 Alt+SysRq+X 序列。 Ubuntu 附帶的 USB/IP 內核默認啟用(CONFIG_USBIP_VHCI_HCD=m 和 CONFIG_USBIP_CORE=m),並提供操作所需的 usbip_core 和 vhci_hcd 數字簽名模塊。 攻擊者可以 創建 虛擬USB設備, 推出 環回接口上的網絡處理程序,並使用 USB/IP 將其連接為遠程 USB 設備。 關於上述方法 報告 Ubuntu 開發人員,但尚未發布修復程序。

來源: opennet.ru

添加評論