Metoder til at deaktivere Lockdown-beskyttelsen i Ubuntu for fjernomgåelse af UEFI Secure Boot

Andrey Konovalov from Google udgav metode til fjernafbrydelse af beskyttelse Lockdown, der tilbydes i pakken med Linux-kernen, leveret i Ubuntu (teoretisk foreslåede metoder skal kan arbejde med kernen i Fedora og andre distributioner, men de er ikke testet).

Lockdown begrænser root-brugerens adgang til kernen og blokerer omgåelsesveje for UEFI Secure Boot. For eksempel begrænser lockdown-tilstanden adgangen til /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debugtilstand, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), nogle ACPI-interface og CPU MSR-registre, blokerer kaldene til kexec_file og kexec_load, forbyder overgang til dvaletilstand, begrænser brugen af DMA til PCI-enheder, forbyder import af ACPI-kode fra EFI-variabler, tillader ikke manipulation af input/output-porte, herunder ændring af afbrydernummer og input/output-port for den serielle port.

Lockdown-mekanismen er for nylig blevet tilføjet til hovedkomponenten i Linux-kernen 5.4, men i de distributioner, der leveres med kerner, er den stadig implementeret i form af patches eller suppleret med patches. Et af de særpræg, der tilbydes i distributionens tilføjelser i forhold til den indbyggede kernenimplementering, er muligheden for at deaktivere den givne blokering ved fysisk adgang til systemet.

I Ubuntu og Fedora er der en tastaturkombination for at deaktivere Lockdown, nemlig Alt+SysRq+X. Det antages, at kombinationen Alt+SysRq+X kun kan bruges med fysisk adgang til enheden, og i tilfælde af fjernangreb og opnåelse af root-adgang vil angriberen ikke kunne deaktivere Lockdown og for eksempel indlæse et modul med rootkit uden godkendt digital signatur.

Andrey Konovalov har vist, at de metoder, der relaterer sig til brug af tastaturet til at bekræfte brugerens fysiske tilstedeværelse, er ineffektive. Den enkleste måde at deaktivere Lockdown på ville være en softwaremæssig simulering af tryk på Alt+SysRq+X gennem /dev/uinput, men denne mulighed er oprindeligt blokeret. Samtidig er det muligt at identificere mindst to andre måder at indsætte Alt+SysRq+X.

Den første metode er relateret til brugen af grænsefladen "sysrq-trigger" — for at simulere er det tilstrækkeligt at aktivere denne grænseflade ved at skrive "1" i /proc/sys/kernel/sysrq og derefter skrive "x" i /proc/sysrq-trigger. Den angivne bagdør er blevet løst blev opdaget i decemberopdateringen af Ubuntu-kernen og i Fedora 31. Bemærkelsesværdigt er, at udviklerne, som i tilfælde af /dev/uinput, oprindeligt forsøgte blokere denne metode, men blokeringen fungerede ikke på grund af fejlen i koden.

Den anden metode er relateret til simulering af tastatur via USB/IP og efterfølgende sending af sekvensen Alt+SysRq+X med det virtuelle tastatur. I den medfølgende Ubuntu-kerne er USB/IP som standard aktiveret (CONFIG_USBIP_VHCI_HCD=m og CONFIG_USBIP_CORE=m) og de nødvendige signeret moduler usbip_core og vhci_hcd er tilgængelige for brug. Angriberen kan oprette et virtuelt USB-enhed, klare netværksbehandleren på loopback-interfacet og forbinde den som en fjern USB-enhed ved hjælp af USB/IP. Om den nævnte metode er rapporteret til udviklerne af Ubuntu, men en rettelse er endnu ikke blevet udgivet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster