Linus Torvalds i den kommande versionen av Linux-kärnan 5.4 ingår patch-setet "«, David Howells (som arbetar på Red Hat) och Matthew Garrett (, som arbetar på Google) för att begränsa root-användarens åtkomst till kärnan. Den relaterade "lockdown"-funktionen har flyttats till en valfritt laddad LSM-modul (), som skapar en barriär mellan UID 0 och kärnan, vilket begränsar viss låg nivå-funktionalitet.
Om en angripare genom ett angrepp lyckas köra kod med root-rättigheter kan han köra sin kod även på kärnnivå, exempelvis genom att byta kärna med hjälp av kexec eller läsa/skriva minne via /dev/kmem. Den mest uppenbara följden av sådan aktivitet kan bli UEFI Secure Boot eller extrahering av konfidentiella data lagrade på kärnnivå.
I första hand har funktioner för att begränsa root utvecklats inom ramen för att förstärka skyddet för verifierad boot, och distributioner har länge använt tredjepartspatchar för att blockera omloop av UEFI Secure Boot. Samtidigt har sådana begränsningar inte inkluderats i kärnans huvudströmlinje på grund av i deras implementering och oro för att det skulle påverka befintliga system. "Lockdown"-modulen inkluderar redan använda patchar i distributionerna, som har omarbetats i form av ett separat subsystem, oberoende av UEFI Secure Boot.
I lockdown-läge begränsas åtkomsten till /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes-debuggerläge, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), vissa ACPI-gränssnitt och CPU:s MSR-register, anrop av kexec_file och kexec_load blockeras, övergång till viloläge förbjuds, användning av DMA för PCI-enheter begränsas, import av ACPI-kod från EFI-variabler förbjuds,
manipulationer med in- och utportar, inklusive ändringar av avbrottsnumer och ingångs-/utgångsport för seriell port, tillåts inte.
Som standard är lockdown-modulen inaktiverad, kompileras när SECURITY_LOCKDOWN_LSM-alternativet anges i kconfig och aktiveras genom kärnparametern "lockdown=", styrfilen "/sys/kernel/security/lockdown" eller byggalternativen , som kan anta värdena «integritet» och «konfidentialitet». I det första fallet blockeras möjligheterna att göra ändringar i det körande kärnan från användarutrymmet, medan det i det andra fallet dessutom stänger av funktionalitet som kan användas för att extrahera konfidentiell information från kärnan.
Det är viktigt att påpeka att lockdown endast begränsar de inbyggda tillgångarna till kärnan, men skyddar inte mot modifieringar på grund av utnyttjande av sårbarheter. För att hindra ändringar i det körande kärnan vid användning av exploateringar av projektet Openwall en separat modul (Linux Kernel Runtime Guard).
Källa: opennet.ru
