Projekt OpenPaX razvija analog varnostnih mehanizmov Grsecurity/PaX za jedro Linuxa

Podjetje Edera, ki razvija rešitve za zaščito infrastrukture in sistemov umetne inteligence Kubernetes, je predstavilo projekt OpenPaX, ki je nabor popravkov jedra Linuxa z implementacijo metod za boj proti izkoriščanju ranljivosti, ki jih povzročajo napake pri delu s pomnilnikom. OpenPaX je postavljen kot neomejen analog nabora paketov PaX iz projekta Grsecurity, ki je od leta 2017 na voljo samo kot del plačanega izdelka. Razvoj OpenPaX je odprt pod licenco GPLv2.

Razvijalci distribucije Alpine Linux nameravajo v naslednji izdaji 3.21 zagotoviti eksperimentalno gradnjo jedra s popravki OpenPaX, v izdaji 3.22 pa jo prenesti v kategorijo standardnih možnosti. OpenPaX lahko uporabljajo tudi distribucije Gentoo in Arch Linux, ki so prej ponujale različice jedra Linuxa s popravki PaX. Razvijalci OpenPaX prav tako upajo, da bodo nekatere varnostne mehanizme, ki so jih razvili, prenesli v glavno jedro.

Med funkcijami, implementiranimi v OpenPaX, lahko opazimo uporabo mehanizma W^X (write XOR execute) pri preslikavi pomnilniških strani, ki ne dovoljuje ustvarjanja pomnilniških strani, ki so hkrati na voljo za pisanje in izvajanje, in tudi blokira spreminjanje vrsta preslikave strani od pisanja do izvajanja. OpenPaX ima tudi emulacijski mehanizem, ki omogoča uporabo stack in heap, v katerih je izvajanje kode prepovedano, s trampolinskimi funkcijami, na primer tistimi, ki jih generira libffi ali GCC (bistvo trampolinov je, da koda za klic ugnezdene oz. zunanja funkcija je dinamično ustvarjena in izvedena na skladu). Trampolini se emulirajo s prestrezanjem napak strani pri poskusu zagona kode v neizvršljivem pomnilniku in emulacijo skoka.

Ker lahko implementirane metode zaščite motijo ​​normalno delovanje prevajalnikov JIT, je mogoče uporabiti xattr in pripomoček paxmark za selektivni nadzor vključitve funkcij OpenPaX v zvezi z izvedljivimi datotekami. Na voljo je tudi način mehke aktivacije OpenPaX (sysctl kernel.pax.softmode=1), v katerem je OpenPaX privzeto onemogočen, vendar ga je mogoče selektivno aktivirati za posamezne aplikacije, ki zahtevajo zaščito.

Poleg tega lahko opazimo izdajo jedrnega modula LKRG 0.9.9, ki ga je razvil projekt Openwall in je zasnovan za odkrivanje in blokiranje napadov ter preprečevanje kršitev celovitosti struktur jedra. Modul lahko na primer zaščiti pred nepooblaščenimi spremembami delujočega jedra in poskusi spreminjanja dovoljenj uporabniških procesov (zaznavanje uporabe podvigov). Modul je primeren tako za organizacijo zaščite pred izkoriščanjem že znanih ranljivosti jedra Linuxa (na primer v situacijah, ko je težko posodobiti jedro v sistemu), kot za preprečevanje izkoriščanja še neznanih ranljivosti. Koda projekta se distribuira pod licenco GPLv2. O značilnostih izvedbe LKRG si lahko preberete v prvi objavi projekta. Nova različica zagotavlja združljivost z jedri Linuxa 5.10.220+, 6.10.10+, 6.11 in 6.12-rc ter paketi z jedrom 5.14.0-470.el9+, dobavljenim s CentOS Stream 9 in RHEL 9. Združljivost z jedri prevedeno v načinu “CONFIG_JUMP_LABEL”. na sistemih z arhitekturo ARM64.

Vir: opennet.ru

Dodaj komentar