Andrej Konovalov di Google metodo di disattivazione remota della protezione , proposto nel pacchetto con il kernel Linux fornito in Ubuntu (metodi teoricamente proposti 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. , 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 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 è 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 di bloccare questo metodo, ma il blocco non ha funzionato a causa di nel codice.
Il secondo metodo consiste nell'emulare una tastiera tramite 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 un dispositivo USB virtuale, un gestore di rete sull'interfaccia loopback e collegandolo come dispositivo USB remoto tramite USB/IP. Questo metodo agli sviluppatori di Ubuntu, ma la correzione non è ancora stata rilasciata.
Fonte: opennet.ru
