Jedro Linuxa 5.4 je prejelo popravke za omejitev korenskega dostopa do notranjosti jedra

Linus Torvalds sprejeto v prihajajočo izdajo jedra Linuxa 5.4 vključen nabor popravkov "lockdown«, predlagano David Howells (Red Hat) in Matthew Garrett (Matthew garrett, dela pri Googlu), da omeji dostop korenskega uporabnika do jedra. Funkcionalnost, povezana z zaklepanjem, je vključena v neobvezno naložen modul LSM (Varnostni modul Linux), ki postavlja oviro med UID 0 in jedrom ter omejuje nekatere nizkonivojske funkcionalnosti.

Če napadalec doseže izvajanje kode s korenskimi pravicami, lahko izvede svojo kodo na ravni jedra, na primer z zamenjavo jedra z uporabo kexeca ali branjem/pisanjem pomnilnika prek /dev/kmem. Najbolj očitna posledica takšne dejavnosti je lahko obvod UEFI Secure Boot ali pridobivanje občutljivih podatkov, shranjenih na ravni jedra.

Sprva so bile korenske funkcije za omejevanje razvite v okviru krepitve zaščite preverjenega zagona, distribucije pa že nekaj časa uporabljajo popravke tretjih oseb za blokiranje obvoza varnega zagona UEFI. Hkrati takšne omejitve niso bile vključene v glavno sestavo jedra zaradi nesoglasja pri njihovem izvajanju in strahu pred motnjami v obstoječih sistemih. Modul »lockdown« je absorbiral popravke, ki so bili že uporabljeni v distribucijah, ki so bili preoblikovani v obliki ločenega podsistema, ki ni vezan na UEFI Secure Boot.

Način zaklepanja omejuje dostop do /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), nekaterih vmesnikov ACPI in CPE Registri MSR, klici kexec_file in kexec_load so blokirani, način mirovanja je prepovedan, uporaba DMA za naprave PCI je omejena, uvoz kode ACPI iz spremenljivk EFI je prepovedan,
Manipulacije z V/I vrati niso dovoljene, vključno s spreminjanjem številke prekinitve in V/I vrat za serijska vrata.

Privzeto modul za zaklepanje ni aktiven, zgrajen je, ko je v kconfig podana možnost SECURITY_LOCKDOWN_LSM in se aktivira prek parametra jedra “lockdown=”, nadzorne datoteke “/sys/kernel/security/lockdown” ali možnosti sestavljanja LOCK_DOWN_KERNEL_FORCE_*, ki ima lahko vrednosti "integriteta" in "zaupnost". V prvem primeru so funkcije, ki omogočajo spreminjanje delujočega jedra iz uporabniškega prostora, blokirane, v drugem primeru pa je onemogočena tudi funkcionalnost, ki jo je mogoče uporabiti za pridobivanje občutljivih informacij iz jedra.

Pomembno je omeniti, da zaklepanje samo omejuje standardni dostop do jedra, ne ščiti pa pred spremembami, ki so posledica izkoriščanja ranljivosti. Za blokiranje sprememb delujočega jedra, ko projekt Openwall uporablja izkoriščanja se razvija ločen modul LKRG (Linux Kernel Runtime Guard).

Vir: opennet.ru

Dodaj komentar