Linus Torvalds i den kommende version af Linux-kernen 5.4 sætter patch-sættet ««, af David Howells (der arbejder hos Red Hat) og Matthew Garrett (, der arbejder hos Google) for at begrænse root-brugerens adgang til kernen. Den relaterede «lockdown»-funktionalitet er flyttet til en valgbar LSM-modul (), som etablerer en barriere mellem UID 0 og kernen, hvilket begrænser visse lav-niveau-funktioner.
Hvis en angriber ved hjælp af et angreb har fået udført kode med root-rettigheder, kan han køre sin kode også på kernel-niveau, for eksempel ved at erstatte kernen via kexec eller læse/skrive til hukommelsen gennem /dev/kmem. Den mest åbenlyse konsekvens af en sådan aktivitet kan være af UEFI Secure Boot eller udtrækning af følsomme data, der opbevares på kernel-niveau.
Oprindeligt blev funktionerne til at begrænse root udviklet som en del af forbedringen af sikkerheden ved verifikationsopstart, og distributioner har længe anvendt tredjeparts patches for at blokere for omgåelse af UEFI Secure Boot. Disse begrænsninger blev dog ikke inkluderet i kernebrugens hovedkomponent på grund af i deres implementering og bekymringer om at forstyrre eksisterende systemer. Modulet «lockdown» har indarbejdet de patches, der allerede blev brugt i distributioner, som er blevet omarbejdet til en separat subsystem, der ikke er knyttet til UEFI Secure Boot.
I lockdown-tilstand begrænses adgangen til /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes-fejlfindingsmodus, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), visse ACPI-grænseflader og MSR-registre i CPU'en, kald til kexec_file og kexec_load blokeres, overgangen til dvalemodus er forbudt, brugen af DMA til PCI-enheder begrænses, import af ACPI-kode fra EFI-variabler er forbudt,
manipulationer med input/output-porte er ikke tilladt, herunder ændring af afbrydelsesnummer og input/output-port for den serielle port.
Som standard er lockdown-modulet ikke aktivt, det kan samles ved at angive SECURITY_LOCKDOWN_LSM i kconfig og aktiveres gennem kernel-parameteren «lockdown=», styrende filen «/sys/kernel/security/lockdown» eller samleindstillingerne , som kan have værdierne «integritet» og «fortrolighed». I det første tilfælde blokeres mulighederne for at foretage ændringer i det aktive kernemiljø fra brugerrummet, og i det andet tilfælde deaktiveres derudover funktionaliteten, som kan bruges til at udtrække fortrolige oplysninger fra kernen.
Det er vigtigt at bemærke, at lockdown blot begrænser de normale adgangsmuligheder til kernen, men ikke beskytter mod ændringer som følge af udnyttelse af sårbarheder. For at blokere ændringer i den aktive kerne ved anvendelse af exploits er projektet Openwall en separat modul (Linux Kernel Runtime Guard).
Kilde: opennet.ru
