De Linux 5.4-kernel heeft patches ontvangen om root-toegang tot kernel-internals te beperken

Linus Torvalds geaccepteerd opgenomen in de komende release van de Linux 5.4-kernel is een reeks patches "lockdown', voorgesteld David Howells (Red Hat) en Matthew Garrett (Matthew Garrett, werkt bij Google) om de toegang van rootgebruikers tot de kernel te beperken. Lockdown-gerelateerde functionaliteit is opgenomen in een optioneel geladen LSM-module (Linux-beveiligingsmodule), dat een barrière plaatst tussen UID 0 en de kernel, waardoor bepaalde functionaliteit op laag niveau wordt beperkt.

Als een aanvaller code uitvoert met rootrechten, kan hij zijn code op kernelniveau uitvoeren, bijvoorbeeld door de kernel te vervangen met behulp van kexec of door geheugen te lezen/schrijven via /dev/kmem. Het meest voor de hand liggende gevolg van een dergelijke activiteit kan zijn omzeilen UEFI Secure Boot of het ophalen van gevoelige gegevens die zijn opgeslagen op kernelniveau.

Aanvankelijk werden rootbeperkingsfuncties ontwikkeld in de context van het versterken van de bescherming van geverifieerd opstarten, en distributies maken al geruime tijd gebruik van patches van derden om het omzeilen van UEFI Secure Boot te blokkeren. Tegelijkertijd waren dergelijke beperkingen niet opgenomen in de hoofdsamenstelling van de kernel vanwege meningsverschillen in de implementatie ervan en de angst voor verstoring van bestaande systemen. De ‘lockdown’-module absorbeerde patches die al in distributies werden gebruikt en die opnieuw werden ontworpen in de vorm van een afzonderlijk subsysteem dat niet gebonden was aan UEFI Secure Boot.

De vergrendelingsmodus beperkt de toegang tot /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug-modus, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), sommige ACPI-interfaces en CPU MSR-registers, kexec_file en kexec_load-oproepen zijn geblokkeerd, de slaapmodus is verboden, het DMA-gebruik voor PCI-apparaten is beperkt, het importeren van ACPI-code uit EFI-variabelen is verboden,
Manipulaties met I/O-poorten zijn niet toegestaan, inclusief het wijzigen van het interruptnummer en de I/O-poort voor de seriële poort.

Standaard is de lockdown-module niet actief. Deze wordt gebouwd wanneer de SECURITY_LOCKDOWN_LSM optie is gespecificeerd in kconfig en wordt geactiveerd via de kernelparameter “lockdown=”, het controlebestand “/sys/kernel/security/lockdown” of assemblageopties LOCK_DOWN_KERNEL_FORCE_*, die de waarden "integriteit" en "vertrouwelijkheid" kan aannemen. In het eerste geval worden functies die het mogelijk maken wijzigingen aan te brengen in de actieve kernel vanuit de gebruikersruimte geblokkeerd, en in het tweede geval wordt functionaliteit die kan worden gebruikt om gevoelige informatie uit de kernel te extraheren ook uitgeschakeld.

Het is belangrijk op te merken dat lockdown alleen de standaardtoegang tot de kernel beperkt, maar geen bescherming biedt tegen wijzigingen als gevolg van misbruik van kwetsbaarheden. Om wijzigingen aan de actieve kernel te blokkeren wanneer exploits worden gebruikt door het Openwall-project ontwikkeld zich aparte module LKRG (Linux Kernel Runtime Guard).

Bron: opennet.ru

Voeg een reactie