Kerneli Linux 5.4 mori arna për të kufizuar aksesin rrënjë në pjesët e brendshme të kernelit

Linus Torvalds pranuar i përfshirë në lëshimin e ardhshëm të kernelit Linux 5.4 është një grup arnash "Lockdown', propozuar David Howells (Red Hat) dhe Matthew Garrett (Matthew Garrett, punon në Google) për të kufizuar aksesin e përdoruesit rrënjë në kernel. Funksionaliteti i lidhur me bllokimin përfshihet në një modul LSM të ngarkuar opsionalisht (Moduli i Sigurisë Linux), i cili vendos një pengesë midis UID 0 dhe kernelit, duke kufizuar disa funksione të nivelit të ulët.

Nëse një sulmues arrin ekzekutimin e kodit me të drejta rrënjësore, ai mund të ekzekutojë kodin e tij në nivelin e kernelit, për shembull, duke zëvendësuar kernelin duke përdorur kexec ose duke lexuar/shkruar memorie nëpërmjet /dev/kmem. Pasoja më e dukshme e një aktiviteti të tillë mund të jetë devijimi UEFI Secure Boot ose marrja e të dhënave të ndjeshme të ruajtura në nivelin e kernelit.

Fillimisht, funksionet e kufizimit të rrënjës u zhvilluan në kontekstin e forcimit të mbrojtjes së nisjes së verifikuar dhe shpërndarjet kanë përdorur arna të palëve të treta për të bllokuar anashkalimin e UEFI Secure Boot për mjaft kohë. Në të njëjtën kohë, kufizime të tilla nuk u përfshinë në përbërjen kryesore të kernelit për shkak të mosmarrëveshjet në zbatimin e tyre dhe frikën e ndërprerjes së sistemeve ekzistuese. Moduli i "bllokimit" thithi arna të përdorura tashmë në shpërndarje, të cilat u ridizajnuan në formën e një nënsistemi të veçantë që nuk lidhet me UEFI Secure Boot.

Modaliteti i bllokimit kufizon aksesin në /dev/mem, /dev/kmem, /dev/port, /proc/kcore, korrigjimin e gabimeve, modalitetin e korrigjimit të kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Struktura e Informacionit të Kartës), disa ndërfaqe ACPI dhe CPU Regjistrat MSR, thirrjet kexec_file dhe kexec_load janë të bllokuara, modaliteti i gjumit është i ndaluar, përdorimi i DMA për pajisjet PCI është i kufizuar, importimi i kodit ACPI nga variablat EFI është i ndaluar,
Nuk lejohen manipulimet me portet I/O, duke përfshirë ndryshimin e numrit të ndërprerjes dhe portës I/O për portën serike.

Si parazgjedhje, moduli i bllokimit nuk është aktiv, ai ndërtohet kur opsioni SECURITY_LOCKDOWN_LSM është specifikuar në kconfig dhe aktivizohet përmes parametrit të kernelit "lockdown=", skedarit të kontrollit "/sys/kernel/security/lockdown" ose opsioneve të montimit. LOCK_DOWN_KERNEL_FORCE_*, e cila mund të marrë vlerat "integritet" dhe "konfidencialitet". Në rastin e parë, bllokohen veçoritë që lejojnë të bëhen ndryshime në kernelin ekzekutues nga hapësira e përdoruesit, dhe në rastin e dytë, funksionaliteti që mund të përdoret për të nxjerrë informacione të ndjeshme nga kerneli është gjithashtu i çaktivizuar.

Është e rëndësishme të theksohet se bllokimi kufizon vetëm aksesin standard në kernel, por nuk mbron nga modifikimet si rezultat i shfrytëzimit të dobësive. Për të bllokuar ndryshimet në kernelin ekzekutiv kur shfrytëzimet përdoren nga projekti Openwall po zhvillohet modul i veçantë LKRG (Linux Kernel Runtime Guard).

Burimi: opennet.ru

Shto një koment