Linux 5.4 kernel je primio zakrpe za ograničavanje root pristupa unutrašnjim dijelovima kernela

Linus Torvalds prihvaćen uključen u nadolazeće izdanje jezgre Linuxa 5.4 je skup zakrpa "zaključano« predloženo David Howells (Crveni šešir) i Matthew Garrett (Matthew garrett, radi na Googleu) za ograničavanje pristupa root korisnika kernelu. Funkcionalnost vezana za zaključavanje uključena je u opciono učitani LSM modul (Linux sigurnosni modul), koji postavlja barijeru između UID-a 0 i kernela, ograničavajući određene funkcionalnosti niskog nivoa.

Ako napadač postigne izvršenje koda s root pravima, on može izvršiti svoj kod na nivou kernela, na primjer, zamjenom kernela pomoću kexeca ili memorije za čitanje/pisanje putem /dev/kmem. Najočiglednija posljedica takve aktivnosti može biti zaobići UEFI Secure Boot ili preuzimanje osjetljivih podataka pohranjenih na nivou kernela.

U početku su funkcije ograničenja root-a razvijene u kontekstu jačanja zaštite verificiranog pokretanja, a distribucije su već duže vrijeme koristile zakrpe trećih strana za blokiranje zaobilaženja UEFI Secure Boot-a. Istovremeno, takva ograničenja nisu uključena u glavni sastav kernela zbog neslaganja u njihovoj implementaciji i strah od poremećaja u postojećim sistemima. Modul “lockdown” apsorbovao je zakrpe koje su već korištene u distribucijama, koje su redizajnirane u obliku zasebnog podsistema koji nije vezan za UEFI Secure Boot.

Način zaključavanja ograničava pristup /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes mod za otklanjanje grešaka, mmiotrace, tracefs, BPF, PCMCIA CIS (Informacijska struktura kartice), nekim ACPI sučeljima i CPU-u MSR registri, pozivi kexec_file i kexec_load 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 sa I/O portovima nisu dozvoljene, uključujući promjenu broja prekida i I/O porta za serijski port.

Modul zaključavanja prema zadanim postavkama nije aktivan, izgrađen je kada je opcija SECURITY_LOCKDOWN_LSM specificirana u kconfig i aktivira se preko parametra kernela “lockdown=”, kontrolne datoteke “/sys/kernel/security/lockdown” ili opcija sklopa LOCK_DOWN_KERNEL_FORCE_*, koji može uzeti vrijednosti "integritet" i "povjerljivost". U prvom slučaju blokiraju se funkcije koje omogućavaju izmjenu pokrenutog kernela iz korisničkog prostora, au drugom slučaju je onemogućena i funkcionalnost koja se može koristiti za izdvajanje osjetljivih informacija iz kernela.

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

izvor: opennet.ru

Dodajte komentar