Spoločnosť Edera, ktorá vyvíja riešenia na ochranu infraštruktúry Kubernetes a systémov umelej inteligencie, predstavila projekt OpenPaX, sadu záplat pre jadro Linuxu, ktoré implementujú metódy na boj proti zneužívaniu zraniteľností spôsobených chybami pamäte. OpenPaX je prezentovaný ako voľne distribuovateľná alternatíva k sade záplat PaX z projektu Grsecurity, ktorá je od roku 2017 dostupná iba ako súčasť plateného produktu. Dielo OpenPaX je šírené s otvoreným zdrojovým kódom pod licenciou GPLv2.
Vývojári distribúcie Alpine Linux plánujú vydať experimentálne jadro s opravami OpenPaX v ďalšej verzii 3.21 a vo verzii 3.22 ho urobiť štandardnou možnosťou. OpenPaX môžu používať aj distribúcie Gentoo a Arch Linux, ktoré predtým ponúkali jadrá Linuxu s opravami PaX. Vývojári OpenPaX tiež dúfajú, že niektoré zo svojich bezpečnostných mechanizmov prenesú do hlavného jadra.
Medzi funkciami implementovanými v OpenPaX je pozoruhodné použitie mechanizmu W^X (write XOR execute) v mapovaní pamäťových stránok, ktorý zabraňuje vytváraniu pamäťových stránok, ktoré sú súčasne zapisovateľné aj spustiteľné, a tiež blokuje prechod zo zapisovateľného na spustiteľné mapovanie stránok. OpenPaX tiež obsahuje emulačný mechanizmus, ktorý umožňuje použitie zásobníka a haldy, kde je vykonávanie kódu zakázané, s trampolínovými funkciami, ako sú tie, ktoré generuje libffi alebo GCC (podstata trampolín spočíva v tom, že kód na volanie vnorenej alebo externej funkcie sa dynamicky vytvára a vykonáva na zásobníku). Emulácia trampolín sa dosahuje zachytením výnimiek (chyby stránky), ktoré sa vyskytujú pri pokuse o spustenie kódu v nespustiteľnej pamäti a simuláciou skoku.
Keďže implementované metódy ochrany môžu narušiť normálnu prevádzku JIT kompilátorov, na selektívne povolenie funkcií OpenPaX v spustiteľných súboroch je možné použiť xattr a utilitu paxmark. K dispozícii je aj mäkký režim aktivácie OpenPaX (sysctl kernel.pax.softmode=1), ktorý OpenPaX štandardne zakáže, ale je možné ho selektívne povoliť pre jednotlivé aplikácie vyžadujúce ochranu.
Za zmienku stojí aj vydanie modulu jadra LKRG 0.9.9, vyvinutého projektom Openwall a určeného na detekciu a blokovanie útokov a prevenciu narušení integrity štruktúry jadra. Modul dokáže napríklad chrániť pred neoprávnenými úpravami bežiaceho jadra a pokusmi o zmenu oprávnení používateľských procesov (detekcia exploitov). Modul je vhodný ako na ochranu pred exploitmi známych zraniteľností jadra Linuxu (napríklad v situáciách, keď je aktualizácia jadra problematická), tak aj na boj proti exploitom zatiaľ neznámych zraniteľností. Kód projektu je distribuovaný pod licenciou GPLv2. Podrobnosti o implementácii LKRG nájdete v úvodnom oznámení projektu. Nová verzia poskytuje kompatibilitu s jadrami Linuxu 5.10.220+, 6.10.10+, 6.11 a 6.12-rc, ako aj s balíčkami jadier 5.14.0-470.el9+ dodávanými s CentOS Stream 9 a RHEL 9. Kompatibilita je zabezpečená aj s jadrami zostavenými v režime „CONFIG_JUMP_LABEL“ na systémoch s architektúrou ARM64.
Zdroj: opennet.ru
