Nyheden brød det for nylig Linus Torvalds vedtog en ny komponent, som vil blive inkluderet i en fremtidig version af kernen "Linux 5.4". denne nye komponent har navnet "Lockdown", som blev foreslået af David Howells (som tidligere har implementeret denne komponent i Red Hat Kernel) og Matthew Garrett (Google-udvikler).
Lockdown's hovedfunktion er at begrænse rootbrugerens adgang til systemets kerne og denne funktionalitet er flyttet til LSM-modulet valgfrit indlæst (Linux Security Module), hvilket etablerer en barriere mellem UID 0 og kernen, begrænser visse funktioner på lavt niveau.
Dette gør det muligt for lockout-funktionen at være politikbaseret snarere end at hårdkode en implicit politik inden for mekanismen, så låsen inkluderet i Linux sikkerhedsmodul giver en implementering med en simpel politik beregnet til generel brug. Denne politik giver et granularitetsniveau, der kan styres via kernekommandolinjen.
Denne beskyttelse af adgangen til kernen skyldes, at:
Hvis en angriber lykkes med at udføre kode med rodrettigheder som et resultat af angrebet, kan han også udføre sin kode på kerneniveau, for eksempel ved at erstatte kernen med kexec eller læse og / eller skrive hukommelse gennem / dev / kmem.
Den mest åbenlyse konsekvens af denne aktivitet kan være at omgå UEFI Secure Boot eller gendanne fortrolige data, der er gemt på kerneniveau.
I første omgang, rodbegrænsningsfunktioner blev udviklet i sammenhæng med styrkelse af verificeret boot-beskyttelse og distributioner har brugt tredjepartsrettelser i lang tid for at blokere UEFI-sikker boot-bypass.
På samme tid sådanne begrænsninger var ikke inkluderet i kernens sammensætning af kernen på grund af uenigheder i dens implementering og frygt for afbrydelse af eksisterende systemer. "Lockdown" -modulet indeholder patches, der allerede er brugt i distributioner, som blev behandlet i form af et separat delsystem, der ikke er bundet til UEFI Secure Boot.
Når det er aktiveret, er forskellige stykker kernefunktionalitet begrænset. Så applikationer, der er afhængige af hardware på lavt niveau eller kernen, kan stoppe med at fungere som et resultat, derfor bør dette ikke aktiveres uden korrekt evaluering på forhånd. Linus Torvalds kommenterer.
I lockdown-tilstand skal du begrænse adgangen til / dev / mem, / dev / kmem, / dev / port, / proc / kcore, debugfs, debugfs, debugfs kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (sikker kortinformation), nogle ACPI og CPU MSR-registre, kexec_file og kexec_load-opkald er blokeret, dvaletilstand er forbudt, brug af DMA til PCI-enheder er begrænset, import af ACPI-kode fra EFI-variabler er forbudt, manipulation med porteindgang / -udgang, inklusive ændring af interruptnummer og input / output-port til seriel port er ikke tilladt.
Som standard er lockout-modulet ikke aktivt. det oprettes, når indstillingen SECURITY_LOCKDOWN_LSM er angivet i kconfig, og den aktiveres af kerneparameteren "lockdown =", kontrolfilen "/ sys / kernel / security / lockdown" eller kompileringsindstillingerne LOCK_DOWN_KERNEL_FORCE_ *, som kan tage værdierne af "integritet" og "fortrolighed".
I det første tilfælde de funktioner, der tillader ændringer i den arbejdende kerne fra brugerområdet, er blokeret, og i det andet tilfælde er desuden funktionen deaktiveret, der kan bruges til at udtrække fortrolige oplysninger fra kernen.
Det er vigtigt at bemærke, at låsning kun begrænser de almindelige kerneladgangsfunktioner, men det beskytter ikke mod ændringer som følge af udnyttelse af sårbarheder. For at blokere ændringer i den arbejdende kerne, når Openwall-projektet bruger exploits, udvikles et separat LKRG-modul (Linux Kernel Runtime Guard).
Lockdown-funktionen har haft betydelige designanmeldelser og kommentarer til mange undersystemer. Denne kode har været i Linux-next i et par uger nu, med et par rettelser anvendt undervejs.