Jezgra Linuxa 5.4 dobila je zakrpe za ograničavanje root pristupa unutarnjim dijelovima jezgre

Linus Torvalds prihvatio uključen u nadolazeće izdanje jezgre Linuxa 5.4 je skup zakrpa "zaključavanjezaprosio David Howells (Crveni šešir) i Matthew Garrett (Matthew Garrett, radi u Googleu) da ograniči pristup korijenskog korisnika jezgri. Funkcionalnost vezana uz zaključavanje uključena je u opcionalno učitani LSM modul (Linux sigurnosni modul), koji postavlja barijeru između UID 0 i kernela, ograničavajući određene funkcije niske razine.

Ako napadač postigne izvršenje koda s root pravima, može izvršiti svoj kod na razini kernela, na primjer, zamjenom kernela koristeći kexec ili čitanje/pisanje memorije putem /dev/kmem. Najočitija posljedica takve aktivnosti može biti obilazni put UEFI Secure Boot ili dohvaćanje osjetljivih podataka pohranjenih na razini kernela.

U početku su funkcije ograničenja roota razvijene u kontekstu jačanja zaštite provjerenog pokretanja, a distribucije već duže vrijeme koriste zakrpe trećih strana za blokiranje zaobilaženja UEFI Secure Boot. U isto vrijeme, takva ograničenja nisu bila uključena u glavni sastav jezgre zbog neslaganja u njihovoj provedbi i strah od poremećaja postojećih sustava. Modul “lockdown” apsorbirao je zakrpe koje su se već koristile u distribucijama, a koje su redizajnirane u obliku zasebnog podsustava koji nije vezan za UEFI Secure Boot.

Način zaključavanja ograničava pristup /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), neka ACPI sučelja i CPU MSR registri, kexec_file i kexec_load pozivi su blokirani, režim mirovanja je zabranjen, upotreba DMA za PCI uređaje je ograničena, uvoz ACPI koda iz EFI varijabli je zabranjen,
Manipulacije s I/O portovima nisu dopuštene, uključujući promjenu broja prekida i I/O porta za serijski port.

Prema zadanim postavkama, modul za zaključavanje nije aktivan, gradi se kada je opcija SECURITY_LOCKDOWN_LSM navedena u kconfig-u i aktivira se kroz parametar kernela “lockdown=”, kontrolnu datoteku “/sys/kernel/security/lockdown” ili opcije sklopa LOCK_DOWN_KERNEL_FORCE_*, koji može imati vrijednosti "integritet" i "povjerljivost". U prvom slučaju, značajke koje dopuštaju promjene u pokrenutom kernelu iz korisničkog prostora su blokirane, au drugom slučaju, funkcionalnost koja se može koristiti za izvlačenje osjetljivih informacija iz kernela također je onemogućena.

Važno je napomenuti da zaključavanje samo ograničava standardni pristup jezgri, ali ne štiti od izmjena koje su rezultat iskorištavanja ranjivosti. Za blokiranje promjena na pokrenutom kernelu kada projekt Openwall koristi eksploatacije razvija se zasebni modul LKRG (Linux Kernel Runtime Guard).

Izvor: opennet.ru

Dodajte komentar