Linux 5.4-kärnan har fått patchar för att begränsa root-åtkomst till kärnans interna delar

Linus Torvalds accepterad Inkluderat i den kommande versionen av Linux 5.4-kärnan är en uppsättning patchar "lockdown', föreslagen David Howells (Red Hat) och Matthew Garrett (Matthew garrett, arbetar på Google) för att begränsa rootanvändarens åtkomst till kärnan. Lockdown-relaterad funktionalitet ingår i en valfritt laddad LSM-modul (Linux säkerhetsmodul), som placerar en barriär mellan UID 0 och kärnan, vilket begränsar viss lågnivåfunktionalitet.

Om en angripare uppnår kodexekvering med roträttigheter kan han exekvera sin kod på kärnnivån, till exempel genom att ersätta kärnan med kexec eller läs-/skrivminne via /dev/kmem. Den mest uppenbara konsekvensen av sådan verksamhet kan vara gå förbi UEFI Secure Boot eller hämtning av känslig data lagrad på kärnnivå.

Ursprungligen utvecklades rotbegränsningsfunktioner i samband med att stärka skyddet för verifierad uppstart, och distributioner har använt tredjepartspatchar för att blockera bypass av UEFI Secure Boot under ganska lång tid. Samtidigt ingick inte sådana restriktioner i kärnans huvudsammansättning pga meningsskiljaktigheter i deras implementering och rädsla för störningar i befintliga system. "Låsningsmodulen" absorberade patchar som redan användes i distributioner, som gjordes om i form av ett separat delsystem som inte var kopplat till UEFI Secure Boot.

Låsningsläge begränsar åtkomsten till /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), vissa ACPI-gränssnitt och CPU MSR-register, kexec_file och kexec_load-anrop är blockerade, viloläge är förbjudet, DMA-användning för PCI-enheter är begränsad, ACPI-kodimport från EFI-variabler är förbjuden,
Manipulationer med I/O-portar är inte tillåtna, inklusive ändring av avbrottsnumret och I/O-porten för serieporten.

Som standard är lockdown-modulen inte aktiv, den byggs när alternativet SECURITY_LOCKDOWN_LSM anges i kconfig och aktiveras genom kärnparametern "lockdown=", kontrollfilen "/sys/kernel/security/lockdown" eller monteringsalternativ LOCK_DOWN_KERNEL_FORCE_*, som kan ta värdena "integritet" och "sekretess". I det första fallet blockeras funktioner som gör att ändringar kan göras av den körande kärnan från användarutrymmet, och i det andra fallet är även funktionalitet som kan användas för att extrahera känslig information från kärnan inaktiverad.

Det är viktigt att notera att lockdown endast begränsar standardåtkomst till kärnan, men skyddar inte mot ändringar som ett resultat av exploatering av sårbarheter. För att blockera ändringar av den körande kärnan när exploateringar används av Openwall-projektet utvecklas separat modul LKRG (Linux Kernel Runtime Guard).

Källa: opennet.ru

Lägg en kommentar