Linux 5.4-kernen modtog patches for at begrænse root-adgang til kernens interne dele

Linus Torvalds accepteret inkluderet i den kommende udgivelse af Linux 5.4 kernen er et sæt patches "Lockdown", foreslog David Howells (Red Hat) og Matthew Garrett (Matthew garrett, arbejder hos Google) for at begrænse root brugeradgang til kernen. Lockdown-relateret funktionalitet er inkluderet i et valgfrit indlæst LSM-modul (Linux sikkerhedsmodul), som placerer en barriere mellem UID 0 og kernen, hvilket begrænser visse lavniveaufunktioner.

Hvis en angriber opnår kodeudførelse med root-rettigheder, kan han udføre sin kode på kerneniveau, for eksempel ved at erstatte kernen ved hjælp af kexec eller læse/skrivehukommelse via /dev/kmem. Den mest åbenlyse konsekvens af en sådan aktivitet kan være bypass UEFI Secure Boot eller hentning af følsomme data gemt på kerneniveau.

Oprindeligt blev root-begrænsningsfunktioner udviklet i forbindelse med at styrke beskyttelsen af ​​verificeret opstart, og distributioner har brugt tredjepartspatches til at blokere omgåelse af UEFI Secure Boot i et stykke tid. Samtidig indgik sådanne restriktioner ikke i kernens hovedsammensætning pga uenigheder i deres implementering og frygt for forstyrrelse af eksisterende systemer. "Lockdown"-modulet absorberede patches, der allerede blev brugt i distributioner, som blev redesignet i form af et separat undersystem, der ikke var bundet til UEFI Secure Boot.

Lockdown-tilstand begrænser adgangen til /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), nogle ACPI-grænseflader og CPU MSR-registre, kexec_file og kexec_load-opkald er blokeret, dvaletilstand er forbudt, DMA-brug til PCI-enheder er begrænset, ACPI-kodeimport fra EFI-variabler er forbudt,
Manipulationer med I/O-porte er ikke tilladt, herunder ændring af afbrydelsesnummeret og I/O-porten for den serielle port.

Som standard er lockdown-modulet ikke aktivt, det er bygget, når SECURITY_LOCKDOWN_LSM-indstillingen er angivet i kconfig og aktiveres gennem kerneparameteren "lockdown=", kontrolfilen "/sys/kernel/security/lockdown" eller samlingsmuligheder LOCK_DOWN_KERNEL_FORCE_*, som kan tage værdierne "integritet" og "fortrolighed". I det første tilfælde blokeres funktioner, der tillader ændringer af den kørende kerne fra brugerpladsen, og i det andet tilfælde er funktionalitet, der kan bruges til at udtrække følsom information fra kernen, også deaktiveret.

Det er vigtigt at bemærke, at lockdown kun begrænser standardadgang til kernen, men beskytter ikke mod ændringer som følge af udnyttelse af sårbarheder. For at blokere ændringer af den kørende kerne, når udnyttelser bruges af Openwall-projektet udvikler sig separat modul LKRG (Linux Kernel Runtime Guard).

Kilde: opennet.ru

Tilføj en kommentar