Meetodid Ubuntu lukustusturbe keelamiseks, et UEFI turvalisest alglaadimisest eemalt mööda minna

Andrey Konovalov Google'ist avaldatud viis kaitse eemalt keelamiseks Lockdownpakutakse Ubuntuga kaasas olevas Linuxi tuumapaketis (teoreetiliselt soovitatud tehnikad olema töötavad Fedora ja teiste distributsioonide tuumaga, kuid neid ei testita).

Lukustus piirab juurkasutajate juurdepääsu kernelile ja blokeerib UEFI Secure Boot möödasõiduteed. Näiteks lukustusrežiimis juurdepääs /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes silumisrežiim, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), mõned liidesed on piiratud CPU ACPI ja MSR registrid, kexec_file ja kexec_load kõned on blokeeritud, puhkerežiim keelatud, DMA kasutamine PCI seadmetele on piiratud, ACPI koodi import EFI muutujatest keelatud, manipuleerimine I/O portidega lubatud, sealhulgas jadapordi katkestuse numbri ja I/O pordi muutmine.

Lukustusmehhanism lisati hiljuti Linuxi põhikernelile 5.4, kuid distributsioonides tarnitavates tuumades on see endiselt rakendatud paikade kujul või täiendatud paikadega. Üks erinevusi jaotuskomplektides pakutavate lisandmoodulite ja kernelisse sisseehitatud juurutuse vahel on võimalus pakutav lukustus keelata, kui teil on süsteemile füüsiline juurdepääs.

Ubuntu ja Fedora puhul on lukustuse keelamiseks ette nähtud klahvikombinatsioon Alt+SysRq+X. On arusaadav, et kombinatsiooni Alt+SysRq+X saab kasutada ainult füüsilise juurdepääsu korral seadmele ning kaughäkkimise ja juurjuurdepääsu hankimise korral ei saa ründaja lukustamist keelata ja näiteks laadida moodul juurkomplektiga, mis pole tuumasse digitaalselt sisse logitud.

Andrey Konovalov näitas, et klaviatuuripõhised meetodid kasutaja füüsilise kohaloleku kinnitamiseks on ebaefektiivsed. Lihtsaim viis lukustuse keelamiseks oleks programmiline simulatsioon vajutades /dev/uinput kaudu Alt+SysRq+X, kuid see valik on esialgu blokeeritud. Samal ajal oli võimalik tuvastada veel vähemalt kaks asendusmeetodit Alt+SysRq+X.

Esimene meetod hõlmab liidese "sysrq-trigger" kasutamist - selle simuleerimiseks lihtsalt lubage see liides, kirjutades "1" kataloogi /proc/sys/kernel/sysrq ja seejärel kirjutades "x" lahtrisse /proc/sysrq-trigger. Ütles lünk kõrvaldatud detsembri Ubuntu kerneli värskenduses ja Fedora 31-s. Tähelepanuväärne on see, et arendajad, nagu ka /dev/uinput puhul, algselt üritas blokeerige see meetod, kuid blokeerimine ei toiminud Vead koodis.

Teine meetod hõlmab klaviatuuri emuleerimist kaudu USB/IP ja seejärel jada Alt+SysRq+X saatmine virtuaalselt klaviatuurilt. Ubuntuga kaasas olev USB/IP-tuum on vaikimisi lubatud (CONFIG_USBIP_VHCI_HCD=m ja CONFIG_USBIP_CORE=m) ning pakub tööks vajalikke digitaalselt allkirjastatud usbip_core ja vhci_hcd mooduleid. Ründaja saab luua virtuaalne USB-seade, käivitatud võrgutöötleja loopback-liideses ja ühendades selle USB/IP-i abil USB-kaugseadmena. Teave määratud meetodi kohta teatatud Ubuntu arendajatele, kuid parandus pole veel välja antud.

Allikas: opennet.ru

Lisa kommentaar