安德烈·科諾瓦洛夫(Andrey Konovalov) Google軟件工程師, 揭示了一種從以下位置遠程禁用保護的方法 鎖定 在Ubuntu提供的Linux內核中提供。 與哪個 表明保護方法無效,此外,他還提到他從理論上公開的方法也應該適用於Fedora內核和其他發行版(但尚未經過測試)。
對於那些不了解鎖定的人, 他們應該知道,它是Linux內核的組成部分, 它的主要功能是限制root用戶在系統內核中的訪問 和這個功能 已移至LSM模塊 可以選擇加載(Linux安全模塊),其中 在UID 0和內核之間建立屏障,限制了某些底層功能。
這樣一來,鎖定功能就可以基於策略,而無需在機制中對隱式策略進行硬編碼, 因此,Linux安全模塊中包含的鎖為實現提供了一個簡單的策略 供一般使用。 此策略提供了可通過內核命令行控制的粒度級別。
關於鎖定
該鎖限制了對內核的根訪問,並阻止了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端口為串行端口。
可能有人知道 鎖定是在Linux內核5.4中添加的, 但是它仍然以補丁程序的形式實現,或者通過發行版隨附的內核上的補丁程序進行補充。
在這裡,發行版中提供的插件與嵌入式內核實現之間的區別之一是能夠在對系統進行物理訪問時禁用提供的鎖定。
Ubuntu和Fedora使用組合鍵 Alt + SysRq + X 禁用鎖定。 據了解,組合 Alt + SysRq + X 它只能用於對設備的物理訪問,並且在進行遠程攻擊和root訪問時,攻擊者將無法禁用該鎖定。
鎖定可以遠程禁用
安德烈·科諾瓦洛夫(Andrei Konovalov)證明了 與鍵盤相關的方法 確認用戶的物理狀態無效。
它 透露禁用鎖的最簡單方法是模擬 按 Alt + SysRq + X 通過 / dev / uinput,但此選項最初被阻止。
但 至少還有兩種替代方法 Alt + SysRq + X.
- 第一種方法涉及使用接口 sysrq觸發:為了進行模擬,只需在以下位置鍵入“ 1”即可啟用此界面 / proc / sys /內核/ sysrq 然後在中輸入“ x” / proc / sysrq觸發.
這個差距在31月的Ubuntu內核更新和Fedora XNUMX中得到了解決。 / dev / uinput,他們最初嘗試阻止此方法,但是由於代碼中的錯誤,阻止無法正常工作。 - 第二種方法是通過USB / IP模擬鍵盤,然後從虛擬鍵盤發送Alt + SysRq + X序列。
在內核中,默認情況下啟用了Ubuntu提供的USB / IP,並且模塊 usbip_核心 y vhci_hcd 必要時會提供所需的數字簽名。
攻擊者可以通過在環回接口上運行網絡控制器,然後使用USB / IP將其作為遠程USB設備連接來創建虛擬USB設備。
已將指定的方法報告給Ubuntu開發人員,但尚未發布解決方案。