Metodi per disattivare la protezione Lockdown in Ubuntu per bypassare UEFI Secure Boot

Andrej Konovalov di Google ha pubblicato metodo di disattivazione remota della protezione Lockdown, proposto nel pacchetto con il kernel Linux fornito in Ubuntu (metodi teoricamente proposti devono funzionare con il kernel di Fedora e altri distribuzioni, ma non sono stati testati).

Lockdown limita l'accesso dell'utente root al kernel e blocca i percorsi di bypass di UEFI Secure Boot. Ad esempio, in modalità lockdown, l'accesso a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, modalità di debug kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), alcune interfacce ACPI e registri MSR della CPU è limitato; le chiamate kexec_file e kexec_load sono bloccate, il passaggio in modalità sleep è vietato, l'uso di DMA per dispositivi PCI è limitato, l'importazione di codice ACPI da variabili EFI è vietata, e non sono consentite manipolazioni con porte di input/output, inclusa la modifica del numero di interruzioni e della porta di input/output per la porta seriale.

Il meccanismo Lockdown è stato recentemente aggiunto al kernel Linux. 5.4, ma nei kernel forniti nelle distribuzioni è ancora implementato sotto forma di patch o arricchito con patch. Una delle differenze tra i moduli forniti nelle distribuzioni e l'implementazione integrata nel kernel è la possibilità di disattivare il blocco fornito in presenza di accesso fisico al sistema.

In Ubuntu e Fedora, per disattivare il Lockdown è prevista la combinazione di tasti Alt+SysRq+X. Si presume che la combinazione Alt+SysRq+X possa essere utilizzata solo con accesso fisico al dispositivo, mentre in caso di attacco remoto e ottenimento dell'accesso root, l'attaccante non potrà disattivare il Lockdown e, ad esempio, caricare un modulo con rootkit nel kernel senza firma digitale.

Andrey Konovalov ha dimostrato che i metodi di conferma della presenza fisica dell'utente legati all'uso della tastiera non sono efficaci. Il modo più semplice per disattivare il Lockdown sarebbe una simulazione software della pressione di Alt+SysRq+X tramite /dev/uinput, ma questa opzione è inizialmente bloccata. Tuttavia, sono stati identificati almeno altri due modi per sostituire Alt+SysRq+X. la pressione di Alt+SysRq+X tramite /dev/uinput è inizialmente bloccata. Sono stati identificati almeno altri due metodi per inserire Alt+SysRq+X.

Il primo metodo consiste nell'utilizzare l'interfaccia «sysrq-trigger» — per simulare, è sufficiente attivare questa interfaccia, scrivendo «1» in /proc/sys/kernel/sysrq, e poi scrivere «x» in /proc/sysrq-trigger. Questa falla risolto è stata introdotta nell'aggiornamento del kernel di dicembre per Ubuntu e in Fedora 31. È interessante notare che gli sviluppatori, come nel caso di /dev/uinput, inizialmente hanno cercato di bloccare questo metodo, ma il blocco non ha funzionato a causa di un errore nel codice.

Il secondo metodo consiste nell'emulare una tastiera tramite USB/IP e nell'inviare successivamente la sequenza Alt+SysRq+X tramite la tastiera virtuale. Nel kernel di Ubuntu fornito, USB/IP è abilitato di default (CONFIG_USBIP_VHCI_HCD=m e CONFIG_USBIP_CORE=m) e sono forniti i moduli necessari firmati digitalmente usbip_core e vhci_hcd. Un attaccante può creare creare un dispositivo USB virtuale, avviando un gestore di rete sull'interfaccia loopback e collegandolo come dispositivo USB remoto tramite USB/IP. Questo metodo è stato segnalato agli sviluppatori di Ubuntu, ma la correzione non è ancora stata rilasciata.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster