Vydání LKRG 1.0.0 pro ochranu před zneužitím zranitelností v jádře Linuxu

Projekt Openwall vydal jádrový modul LKRG 1.0.0 (Linux Kernel Runtime Guard), určený k ověřování integrity struktur jádra a k odhalování pokusů o zneužití zranitelností v jádře. Uvádí se, že přiřazení čísla verze 1.0.0 znamenalo dosažení zralého stavu projektu. Kód projektu je distribuován pod licencí GPLv2.

Modul je vhodný jak pro obranu proti útokům, manipulující již známými zranitelnostmi v jádru Linux, tak pro odolávání exploitům, které využívají ještě neznámé zranitelnosti, pokud nejsou přijata speciální opatření k obcházení LKRG. Ochrana je založena na detekci neautorizovaných změn v běžícím jádře (ověření integrity) a sledování změn oprávnění uživatelských procesů (určení aplikace exploitů).

Ověření integrity se provádí na základě porovnání hashů, počítaných pro nejdůležitější oblasti paměti a datové struktury jádra, jako jsou IDT (Interrupt Descriptor Table), MSR, tabulky systémových volání, všechny procedury a funkce, obsluhy přerušení, seznamy načtených modulů, obsah sekce „.text“ modulů a atributy procesů. Procedura ověřování se spouští periodicky podle časovače nebo při výskytu určitých událostí v jádře, například při vykonávání systémových volání setuid, setreuid, fork, exit, execve a do_init_module.

Určení možného použití exploitů a blokování útoků se provádí v etapě před poskytnutím přístupu k prostředkům jádrem (například před otevřením souboru), ale po získání neautorizovaných oprávnění procesem (například změna UID). Při zjištění neautorizovaného chování procesů dojde k jejich vynucenému ukončení, což je dostatečné k zablokování mnoha exploitů. Přehledy nákladů na provoz modulu se odhadují na 2-2.5%.

Podporována je práce na systémech s architekturami x86-64, AArch64 (ARM64), ARM32 a x86. Práce LKRG 1.0.0 byla testována s jádry z různých distribucí, počínaje jádrem 3.10 z RHEL/CentOS 7 a konče 6.17-rc4 z repozitáře, ve kterém se připravuje vydání Fedora 44. Balíčky jsou k dispozici pro distribuce ALT Linux, Arch Linux, Astra Linux, Gentoo, Guix, NixOS, Rocky Linux, Whonix, Yocto a OpenBMC. Sestavené balíčky pro Rocky Linux lze používat v RHEL 8/9 a odvozených distribucích, jako je AlmaLinux 8/9, a balíčky pro Whonix v Debianu a Ubuntu.

Mezi změnami v nové verzi:

  • Zajištěna kompatibilita s jádry Linux až po verzi 6.17-rc4.
  • Při použití s jádry od verze 6.13 byla zastavena intercepce vzdálených volání override_creds() a revert_creds(), což omezilo odhalování útoků, které přepisují ukazatel cred. Omezení se pokusila kompenzovat přidáním kontrol přepsání ukazatele cred na jiných místech jádra.
  • Bylo zastaveno nadbytečné sledování přihlašovacích údajů, pro které se neprovádí kontrola integrity. Změna umožnila zkrátit kódovou základnu přibližně o 1500 řádků.
  • Byla přidána podpora nového mechanismu v jádře Linux 6.10 pro vytváření dočasných souborů v systému souborů OverlayFS pomocí volby O_TMPFILE (ovl_tmpfile). Uvedená podpora je nezbytná k prevenci falešných pozitiv, které se objevují při používání izolovaných kontejnerů na systémech s jádry 6.10-6.12.
  • Pro systémy x86_64 byla přidána podpora technologie Intel CET (Control-flow Enforcement Technology) pro ochranu vykonávaného kódu pomocí instrukcí IBT (indirect branch tracking) a také softwarové ochrany kCFI (kernel Control Flow Integrity) pro blokování narušení normálního pořadí vykonávání (control flow) v důsledku použití exploitů, které mění uložené v paměti ukazatele na funkce.
  • Pro připojení mnoha zpracovatelů byl místo kretprobes použit mechanismus kprobes, který zjednodušuje kód pro nastavení hooků a umožňuje dosáhnout vyššího výkonu.
  • Bylo přepracováno zacházení s blokacemi (lock) dat v jádře, specifických pro proces (per-task shadow data). Vyloučením zbytečných blokací se podařilo zvýšit výkon přístupu k těmto datům.
  • Byly odstraněny chyby vedoucí ke stavu závodu, problémům s kontrolou integrity a falešným pozitivům.
  • Byla vylepšena podpora sestavení s použitím Clang.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster