Metoder til at deaktivere Lockdown Security i Ubuntu for at omgå UEFI Secure Boot eksternt

Andrey Konovalov fra Google опубликовал måde at fjerndeaktivere beskyttelse Lockdowntilbydes i Linux-kernepakken, der leveres med Ubuntu (teoretisk foreslåede teknikker have arbejde med kernen af ​​Fedora og andre distributioner, men de er ikke testet).

Lockdown begrænser root-brugeres adgang til kernen og blokerer UEFI Secure Boot-bypass-stier. For eksempel, i låsetilstand, adgang til /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debugging mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), nogle grænseflader er begrænset ACPI- og MSR-registre for CPU'en, opkald til kexec_file og kexec_load er blokeret, dvaletilstand er forbudt, DMA-brug til PCI-enheder er begrænset, import af ACPI-kode fra EFI-variabler er forbudt, manipulationer med I/O-porte er ikke tilladt, herunder ændring af afbrydelsesnummer og I/O-port for seriel port.

Lockdown-mekanismen blev for nylig tilføjet til Linux-hovedkernen 5.4, men i de kerner, der leveres i distributioner, er det stadig implementeret i form af patches eller suppleret med patches. En af forskellene mellem tilføjelserne i distributionssæt og implementeringen indbygget i kernen er muligheden for at deaktivere den medfølgende låsning, hvis du har fysisk adgang til systemet.

I Ubuntu og Fedora leveres tastekombinationen Alt+SysRq+X for at deaktivere Lockdown. Det er underforstået, at kombinationen Alt+SysRq+X kun kan bruges med fysisk adgang til enheden, og i tilfælde af ekstern hacking og opnåelse af root-adgang, vil angriberen ikke være i stand til at deaktivere Lockdown og f.eks. modul med et rootkit, der ikke er digitalt logget ind i kernen.

Andrey Konovalov viste, at tastaturbaserede metoder til at bekræfte brugerens fysiske tilstedeværelse er ineffektive. Den nemmeste måde at deaktivere Lockdown på ville være software simulering ved at trykke på Alt+SysRq+X via /dev/uinput, men denne mulighed er i første omgang blokeret. Samtidig var det muligt at identificere mindst to yderligere metoder til substitution Alt+SysRq+X.

Den første metode involverer at bruge "sysrq-trigger"-grænsefladen - for at simulere det, skal du bare aktivere denne grænseflade ved at skrive "1" til /proc/sys/kernel/sysrq, og derefter skrive "x" til /proc/sysrq-trigger. Sagde smuthul elimineret i Ubuntu-kerneopdateringen til december og i Fedora 31. Det er bemærkelsesværdigt, at udviklerne, som i tilfældet med /dev/uinput, i første omgang prøvede at blokere denne metode, men blokering virkede ikke pga Fejl i kode.

Den anden metode involverer tastaturemulering via USB/IP og derefter sende sekvensen Alt+SysRq+X fra det virtuelle tastatur. USB/IP-kernen, der leveres med Ubuntu, er som standard aktiveret (CONFIG_USBIP_VHCI_HCD=m og CONFIG_USBIP_CORE=m) og leverer de digitalt signerede usbip_core- og vhci_hcd-moduler, der kræves til drift. Det kan angriberen skabe virtuel USB-enhed, lanceret netværkshandler på loopback-grænsefladen og forbinder den som en ekstern USB-enhed ved hjælp af USB/IP. Om den angivne metode rapporteret til Ubuntu-udviklere, men en rettelse er endnu ikke blevet frigivet.

Kilde: opennet.ru

Tilføj en kommentar