Módszerek a zárolás elleni védelem letiltására az Ubuntuban az UEFI Secure Boot távoli megkerüléséhez

Andrey Konovalov a Google-tól közzétett a védelem távoli letiltásának módja Lezárásaz Ubuntuval szállított Linux kernelcsomagban kínálva (az elméletileg javasolt technikák must működik a Fedora és más disztribúciók kernelével, de nincsenek tesztelve).

A zárolás korlátozza a root felhasználók hozzáférését a kernelhez, és blokkolja az UEFI Secure Boot bypass útvonalait. Például zárolási módban a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes hibakeresési mód, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), néhány Az interfészek korlátozottak A CPU ACPI és MSR regiszterei, a kexec_file és a kexec_load hívásai le vannak tiltva, az alvó üzemmód tiltott, a DMA használata PCI eszközökhöz korlátozott, az ACPI kód ​​importálása az EFI változókból tilos, az I/O portokkal nem lehet manipulálni megengedett, beleértve a soros port megszakítási számának és I/O portjának megváltoztatását.

A Lockdown mechanizmust nemrégiben adták hozzá a fő Linux kernelhez 5.4, de a disztribúciókban szállított kernelekben továbbra is patch formájában, vagy patchekkel kiegészítve van megvalósítva. Az egyik különbség a disztribúciós készletekben található kiegészítők és a kernelbe épített megvalósítás között az, hogy le lehet tiltani a biztosított zárolást, ha fizikai hozzáféréssel rendelkezik a rendszerhez.

Az Ubuntuban és a Fedorában az Alt+SysRq+X billentyűkombináció a zárolás letiltására szolgál. Nyilvánvaló, hogy az Alt+SysRq+X kombináció csak akkor használható, ha fizikailag hozzáférünk az eszközhöz, és távoli hackelés és root hozzáférés megszerzése esetén a támadó nem tudja letiltani a zárolást, és például betölteni egy modul egy olyan rootkittel, amely nincs digitálisan aláírva a kernelbe.

Andrey Konovalov kimutatta, hogy a billentyűzet alapú módszerek a felhasználó fizikai jelenlétének megerősítésére nem hatékonyak. A Lockdown letiltásának legegyszerűbb módja a programozás szimuláció nyomja meg az Alt+SysRq+X gombot a /dev/uinput-on keresztül, de ez az opció kezdetben le van tiltva. Ezzel egyidejűleg legalább két további szubsztitúciós módszert azonosítani lehetett: Alt+SysRq+X.

Az első módszer a „sysrq-trigger” interfész használatát foglalja magában – szimulálásához csak engedélyezze ezt az interfészt úgy, hogy „1”-et ír a /proc/sys/kernel/sysrq-ba, majd írja be az „x”-et a /proc/sysrq-triggerbe. Mondott kiskapu Eltüntetett a decemberi Ubuntu kernelfrissítésben és a Fedora 31-ben. Figyelemre méltó, hogy a fejlesztők, akárcsak a /dev/uinput esetében, kezdetben megpróbáltam blokkolja ezt a módszert, de a blokkolás nem működött a következő miatt Hibák kódban.

A második módszer a billentyűzet emulációját foglalja magában USB/IP majd elküldi az Alt+SysRq+X sorozatot a virtuális billentyűzetről. Az Ubuntuval szállított USB/IP kernel alapértelmezés szerint engedélyezve van (CONFIG_USBIP_VHCI_HCD=m és CONFIG_USBIP_CORE=m), és biztosítja a működéshez szükséges, digitálisan aláírt usbip_core és vhci_hcd modulokat. A támadó képes teremt virtuális USB-eszköz, futó hálózati kezelőt a loopback interfészen, és távoli USB-eszközként csatlakoztassa USB/IP-n keresztül. A megadott módszerről jelentették Ubuntu fejlesztőknek, de javítás még nem jelent meg.

Forrás: opennet.ru

Hozzászólás