Andrei Konovalov de la compania Google metoda de dezactivare la distanță a protecției , oferit în pachetul cu nucleul Linux livrat cu Ubuntu (metodele propuse teoretic să funcționeze cu nucleul Fedora și alte distribuții, dar nu au fost testate).
Lockdown restricționează accesul utilizatorului root la nucleu și blochează căile de ocolire UEFI Secure Boot. De exemplu, în modul lockdown, accesul la /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, modul de depanare kprobes, mmiotrace, tracefs, BPF, CIS PCMCIA (Structura de Informații a Cardului), anumite interfețe ACPI și registrele MSR ale CPU-ului, sunt blocate apelurile kexec_file și kexec_load, se interzice trecerea în modul de suspendare, se limitează utilizarea DMA pentru dispozitive PCI, se interzice importul codului ACPI din variabile EFI, manipularile cu porturile de intrare/ieșire nu sunt permise, inclusiv modificarea numărului de întrerupere și a portului de intrare/ieșire pentru portul serial.
Mecanismul Lockdown a fost adăugat recent la compunerea principală a nucleului Linux , dar în nucleele livrate de distribuții este încă implementat sub formă de patch-uri sau completat cu patch-uri. Una dintre diferențele între extensiile furnizate în distribuții și implementarea încorporată în nucleu este posibilitatea de a dezactiva blocarea furnizată în cazul în care se are acces fizic la sistem.
În Ubuntu și Fedora, combinația de taste Alt+SysRq+X este prevăzută pentru dezactivarea Lockdown. Se subînțelege că combinația Alt+SysRq+X poate fi utilizată doar cu acces fizic la dispozitiv, iar în cazul unui hack de la distanță și obținerea accesului root, atacatorul nu va putea dezactiva Lockdown și, de exemplu, să încarce în nucleu un modul cu semnătură digitală nevalidată care conține un rootkit.
Andrei Konovalov a demonstrat că metodele legate de utilizarea tastaturii pentru confirmarea prezenței fizice a utilizatorului sunt ineficiente. Cea mai simplă metodă de dezactivare a Lockdown ar fi simularea a apelului Alt+SysRq+X prin /dev/uinput, dar această variantă este blocată inițial. Totuși, au fost identificate cel puțin încă două metode de substituție pentru Alt+SysRq+X.
Prima metodă este legată de utilizarea interfeței „sysrq-trigger” — pentru simulare este suficient să activăm această interfață, scriind „1” în /proc/sys/kernel/sysrq, iar apoi să scriem „x” în /proc/sysrq-trigger. Această lacună a fost rectificată în actualizarea din decembrie a nucleului Ubuntu și în Fedora 31. De remarcat este că dezvoltatorii, similar cu cazul /dev/uinput, inițial blocați această metodă, dar blocarea nu a funcționat din cauza în cod.
A doua metodă este legată de emularea tastaturii prin și trimiterea ulterioară a secvenței Alt+SysRq+X de la o tastatură virtuală. În kernelul livrat cu Ubuntu, USB/IP este activat în mod implicit (CONFIG_USBIP_VHCI_HCD=m și CONFIG_USBIP_CORE=m) și sunt furnizate modulele necesare, semnate digital, usbip_core și vhci_hcd. Atacatorul poate un dispozitiv USB virtual, un handler de rețea pe interfața loopback și conectându-l ca dispozitiv USB la distanță prin USB/IP. Despre această metodă dezvoltatorilor Ubuntu, dar o corectare nu a fost încă lansată.
Sursa: opennet.ro
