Metoder for å deaktivere Lockdown-beskyttelse i Ubuntu for å omgå UEFI Secure Boot eksternt

Andrey Konovalov fra Google publisert måte å eksternt deaktivere beskyttelse Lockdowntilbys i Linux-kjernepakken levert med Ubuntu (teknikker som er teoretisk foreslått bør jobber med kjernen til Fedora og andre distribusjoner, men de er ikke testet).

Lockdown begrenser root-brukertilgang til kjernen og blokkerer UEFI Secure Boot-bypass-baner. For eksempel, i låsemodus, tilgang til /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debugging mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), noen grensesnitt er begrenset ACPI- og MSR-registre for CPU, kall til kexec_file og kexec_load er blokkert, hvilemodus er forbudt, DMA-bruk for PCI-enheter er begrenset, import av ACPI-kode fra EFI-variabler er forbudt, manipulasjoner med I/O-porter er ikke tillatt, inkludert endring av avbruddsnummer og I/O-port for seriell port.

Lockdown-mekanismen ble nylig lagt til hoved Linux-kjernen 5.4, men i kjernene som leveres i distribusjoner er det fortsatt implementert i form av patcher eller supplert med patcher. En av forskjellene mellom tilleggene gitt i distribusjonssett og implementeringen innebygd i kjernen er muligheten til å deaktivere den medfølgende låsingen hvis du har fysisk tilgang til systemet.

I Ubuntu og Fedora er tastekombinasjonen Alt+SysRq+X gitt for å deaktivere Lockdown. Det er forstått at kombinasjonen Alt+SysRq+X bare kan brukes med fysisk tilgang til enheten, og i tilfelle ekstern hacking og få root-tilgang, vil ikke angriperen kunne deaktivere Lockdown og for eksempel laste inn en modul med et rootkit som ikke er digitalt logget på kjernen.

Andrey Konovalov viste at tastaturbaserte metoder for å bekrefte brukerens fysiske tilstedeværelse er ineffektive. Den enkleste måten å deaktivere Lockdown på er å programmere simulering ved å trykke Alt+SysRq+X via /dev/uinput, men dette alternativet er først blokkert. Samtidig var det mulig å identifisere minst to flere metoder for substitusjon Alt+SysRq+X.

Den første metoden innebærer å bruke "sysrq-trigger"-grensesnittet - for å simulere det, aktiver bare dette grensesnittet ved å skrive "1" til /proc/sys/kernel/sysrq, og skriv deretter "x" til /proc/sysrq-trigger. Sa smutthull eliminert i desember Ubuntu kjerneoppdatering og i Fedora 31. Det er bemerkelsesverdig at utviklerne, som i tilfellet med /dev/uinput, i utgangspunktet prøvde å blokkere denne metoden, men blokkering fungerte ikke pga Feil i kode.

Den andre metoden involverer tastaturemulering via USB/IP og deretter sende sekvensen Alt+SysRq+X fra det virtuelle tastaturet. USB/IP-kjernen som leveres med Ubuntu er aktivert som standard (CONFIG_USBIP_VHCI_HCD=m og CONFIG_USBIP_CORE=m) og gir de digitalt signerte usbip_core- og vhci_hcd-modulene som kreves for drift. Angriperen kan skape virtuell USB-enhet, lanserte nettverksbehandler på loopback-grensesnittet og koble det til som en ekstern USB-enhet ved hjelp av USB/IP. Om den angitte metoden rapportert til Ubuntu-utviklere, men en løsning er ennå ikke utgitt.

Kilde: opennet.ru

Legg til en kommentar