Metode za onemogućavanje sigurnosti zaključavanja u Ubuntu-u kako biste zaobišli UEFI sigurno pokretanje na daljinu

Andrej Konovalov iz Google-a objavljen način za daljinsko onemogućavanje zaštite Zaključavanjeponuđeno u Linux kernel paketu koji se isporučuje s Ubuntuom (teoretski predložene tehnike must rade sa jezgrom Fedore i drugim distribucijama, ali nisu testirane).

Zaključavanje ograničava pristup root korisnika kernelu i blokira putanje zaobilaženja UEFI Secure Boot. Na primjer, u zaključanom načinu rada, pristup /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes mod za otklanjanje grešaka, mmiotrace, tracefs, BPF, PCMCIA CIS (Informacijska struktura kartice), neki interfejsi su ograničeni ACPI i MSR registri CPU-a, pozivi kexec_file i kexec_load su blokirani, režim mirovanja je zabranjen, upotreba DMA za PCI uređaje je ograničena, uvoz ACPI koda iz EFI varijabli je zabranjen, manipulacije sa I/O portovima nisu dozvoljeno, uključujući promjenu broja prekida i I/O porta za serijski port.

Mehanizam zaključavanja nedavno je dodat glavnom Linux kernelu 5.4, ali u kernelima koji se isporučuju u distribucijama i dalje je implementiran u obliku zakrpa ili dopunjen zakrpama. Jedna od razlika između dodataka koji se nalaze u kompletima za distribuciju i implementacije ugrađene u kernel je mogućnost da onemogućite dato zaključavanje ako imate fizički pristup sistemu.

U Ubuntu i Fedori, kombinacija tastera Alt+SysRq+X je obezbeđena za onemogućavanje zaključavanja. Podrazumijeva se da se kombinacija Alt+SysRq+X može koristiti samo sa fizičkim pristupom uređaju, a u slučaju udaljenog hakovanja i dobivanja root pristupa, napadač neće moći onemogućiti Lockdown i, na primjer, učitati modul sa rootkitom koji nije digitalno potpisan u kernelu.

Andrej Konovalov je pokazao da su metode zasnovane na tastaturi za potvrđivanje fizičkog prisustva korisnika neefikasne. Najjednostavniji način da onemogućite Lockdown bio bi programski simulacija pritiskom na Alt+SysRq+X preko /dev/uinput, ali je ova opcija inicijalno blokirana. U isto vrijeme, bilo je moguće identificirati još najmanje dvije metode zamjene Alt+SysRq+X.

Prva metoda uključuje korištenje “sysrq-trigger” interfejsa – da biste ga simulirali, samo omogućite ovaj interfejs tako što ćete napisati “1” u /proc/sys/kernel/sysrq, a zatim upisati “x” u /proc/sysrq-trigger. Rečena rupa eliminisan u decembarskom ažuriranju Ubuntu kernela i u Fedori 31. Važno je napomenuti da su programeri, kao u slučaju /dev/uinput, u početku pokušao blokiraj ovu metodu, ali blokiranje nije uspjelo zbog greške u kodu.

Druga metoda uključuje emulaciju tastature putem USB/IP a zatim slanje niza Alt+SysRq+X sa virtuelne tastature. USB/IP kernel koji se isporučuje uz Ubuntu je podrazumevano omogućen (CONFIG_USBIP_VHCI_HCD=m i CONFIG_USBIP_CORE=m) i obezbeđuje digitalno potpisane usbip_core i vhci_hcd module potrebne za rad. Napadač može stvarati virtuelni USB uređaj, pokrenut mrežni rukovalac na sučelju povratne petlje i povezivanje kao udaljeni USB uređaj koristeći USB/IP. O navedenoj metodi prijavljen Ubuntu programerima, ali ispravka još nije objavljena.

izvor: opennet.ru

Dodajte komentar