🥇15 vulnerabilità nei driver USB forniti nel kernel Linux | ProHoster modo di disattivazione remota della protezione , offerta nel pacchetto con il kernel Linux fornito in Ubuntu (metodi teoricamente proposti funzionano con il kernel Fedora e altri distribuiti, 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; vengono bloccate le chiamate a kexec_file e kexec_load, è vietato passare alla modalità di sospensione, viene limitato l'uso di DMA per i dispositivi PCI, è vietato importare codice ACPI dalle variabili EFI, non è consentito manipolare le porte di input/output, inclusa la modifica del numero di interruzione e della porta di input/output per la porta seriale.
Il meccanismo Lockdown è stato recentemente aggiunto al kernel Linux di base , ma nelle versioni del kernel distribuite, è ancora implementato sotto forma di patch o viene integrato con patch. Una delle differenze tra le estensioni fornite nei pacchetti e l'implementazione integrata nel kernel è la possibilità di disattivare il blocco fornito in presenza di accesso fisico al sistema.
In Ubuntu e Fedora, è prevista una combinazione di tasti Alt+SysRq+X per disattivare Lockdown. Si presuppone che la combinazione Alt+SysRq+X possa essere utilizzata solo con accesso fisico al dispositivo e, in caso di attacco da remoto e ottenimento dell'accesso root, l'attaccante non sarà in grado di disattivare Lockdown e, ad esempio, caricare nel kernel un modulo non firmato digitalmente con rootkit.
Andrej Konovalov ha dimostrato che i metodi di conferma della presenza fisica dell'utente legati all'uso della tastiera sono inefficaci. Il modo più semplice per disattivare Lockdown sarebbe una simulazione software Il primo metodo è legato all'uso dell'interfaccia "sysrq-trigger": per simulare è sufficiente abilitare questa interfaccia, scrivendo "1" in /proc/sys/kernel/sysrq, e quindi scrivere "x" in /proc/sysrq-trigger. La suddetta falla
è stata scoperta nell'aggiornamento del kernel di dicembre in Ubuntu e in Fedora 31. È notevole che gli sviluppatori, come nel caso di /dev/uinput, inizialmente hanno tentato bloccare questo metodo, ma il blocco non funzionava a causa di nel codice.
Il secondo modo è legato all'emulazione della tastiera tramite e l'invio successivo della sequenza Alt+SysRq+X con la tastiera virtuale. Nel kernel USB/IP fornito in Ubuntu è abilitato per impostazione predefinita (CONFIG_USBIP_VHCI_HCD=m e CONFIG_USBIP_CORE=m) e sono forniti i moduli necessari per il funzionamento certificati con firma digitale usbip_core e vhci_hcd. L'attaccante può un dispositivo USB virtuale, un gestore di rete sull'interfaccia di loopback e collegandolo come dispositivo USB remoto tramite USB/IP. Di questo metodo gli sviluppatori di Ubuntu, ma la correzione non è stata ancora rilasciata.
Fonte: opennet.ru
