Metodoj por Malebligi Ŝlosigan Sekurecon en Ubuntu por Preterpasi UEFI Secure Boot Remotely

Andrey Konovalov de Guglo eldonita maniero por malproksime malŝalti protekton Ŝlosiloofertite en la Linukso-kernpakaĵo ekspedita kun Ubuntu (teknikoj teorie sugestitaj devus labori kun la kerno de Fedora kaj aliaj distribuoj, sed ili ne estas testitaj).

Lockdown limigas radikan uzantan aliron al la kerno kaj blokas UEFI Secure Boot pretervojojn. Ekzemple, en ŝlosila reĝimo, aliro al /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes-sencimiga reĝimo, mmiotrace, tracefs, BPF, PCMCIA CIS (Karto-Informstrukturo), iuj interfacoj estas limigitaj ACPI kaj MSR-registroj de la CPU, vokoj al kexec_file kaj kexec_load estas blokitaj, dormreĝimo estas malpermesita, DMA-uzo por PCI-aparatoj estas limigita, importo de ACPI-kodo de EFI-variabloj estas malpermesita, manipuladoj kun I/O-havenoj ne estas; permesita, inkluzive de ŝanĝado de la interrompa nombro kaj I/O-haveno por seria haveno.

La mekanismo Lockdown ĵus estis aldonita al la ĉefa Linukso-kerno 5.4, sed en la kernoj liveritaj en distribuoj ĝi ankoraŭ estas efektivigita en formo de flikoj aŭ kompletigita per flikoj. Unu el la diferencoj inter la aldonaĵoj provizitaj en distribuaj iloj kaj la efektivigo konstruita en la kerno estas la kapablo malŝalti la provizitan ŝlosadon se vi havas fizikan aliron al la sistemo.

En Ubuntu kaj Fedora, la klavkombinaĵo Alt+SysRq+X estas provizita por malŝalti Ŝlosumon. Estas komprenite, ke la kombinaĵo Alt+SysRq+X nur povas esti uzata kun fizika aliro al la aparato, kaj en la kazo de fora hakado kaj akiro de radika aliro, la atakanto ne povos malŝalti Lockdown kaj, ekzemple, ŝargi modulo kun rootkit kiu ne estas ciferece subskribita en la kernon.

Andrey Konovalov montris, ke klavar-bazitaj metodoj por konfirmi la fizikan ĉeeston de la uzanto estas neefikaj. La plej simpla maniero malŝalti Ŝlosumon estus programe simulado premante Alt+SysRq+X per /dev/uinput, sed ĉi tiu opcio estas komence blokita. En la sama tempo, estis eble identigi almenaŭ du pliajn metodojn de anstataŭigo Alt+SysRq+X.

La unua metodo implikas uzi la interfacon "sysrq-trigger" - por simuli ĝin, simple ebligu ĉi tiun interfacon skribante "1" al /proc/sys/kernel/sysrq, kaj poste skribu "x" al /proc/sysrq-trigger. Dirita kaŝpasejo eliminita en la decembra Ubuntu-kerna ĝisdatigo kaj en Fedora 31. Estas rimarkinde, ke la programistoj, kiel en la kazo de /dev/uinput, komence РїС ‹С‚Р ° Р» РёСЃСЊ bloki ĉi tiun metodon, sed blokado ne funkciis pro eraroj en kodo.

La dua metodo implikas klavaron emuladon per USB/IP kaj poste sendante la sekvencon Alt+SysRq+X de la virtuala klavaro. La USB/IP-kerno sendita kun Ubuntu estas ebligita defaŭlte (CONFIG_USBIP_VHCI_HCD=m kaj CONFIG_USBIP_CORE=m) kaj disponigas la ciferece subskribitajn usbip_core kaj vhci_hcd-modulojn necesajn por funkciado. La atakanto povas krei virtuala USB-aparato, per lanĉo rettraktilo sur la loopback interfaco kaj konektanta ĝin kiel fora USB-aparato uzante USB/IP. Pri la specifita metodo raportis al Ubuntu-programistoj, sed solvo ankoraŭ ne estis publikigita.

fonto: opennet.ru

Aldoni komenton