Megjelent a Linux Kernel Runtime Guard 1.0 – új mérföldkő a kernelbiztonságban

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

kami911 képe

Hét év fejlesztés és folyamatos tesztelés után a Linux Kernel Runtime Guard (LKRG) elérte az 1.0-s verziót. Az Openwall projekt részeként karbantartott modul egy újabb védelmi réteget biztosít a Linux kernel számára, amely valós időben figyeli a rendszer működését, és azonnal közbeavatkozik, ha gyanús vagy veszélyes művelet történik.

Mi az LKRG és miért fontos?

A Linux Kernel Runtime Guard (LKRG) egy kernelmodul, amely nem váltja ki a meglévő biztonsági mechanizmusokat, mint az SELinux vagy az AppArmor, hanem kiegészíti azokat. Fő feladata, hogy a kernel futása közben figyelje a gyanús viselkedést, például:

  • ha egy támadó megpróbálja felülírni a kernel hitelesítési adatait,
  • vagy manipulálni a kernelmemóriát.

Ilyen esetben az LKRG képes naplózni az eseményt, leállítani a támadó folyamatot, vagy más védelmi intézkedéseket végrehajtani a konfigurációtól függően.

Újdonságok az 1.0-s kiadásban

Az LKRG 1.0 a 0.9.9-es verzióhoz képest jelentős fejlesztéseket tartalmaz:

  • Kernel kompatibilitás: támogatja a legújabb mainline Linux kernelt (tesztelve 6.17-rc4-ig). A 6.13-tól kezdődően eltávolították a override_creds() és revert_creds() hookokat, miközben kibővítették a hitelesítési mutató ellenőrzéseket a régebbi kernelekhez.
  • OverlayFS javítások: csökkentették a téves riasztások számát konténeres környezetekben (6.10–6.12 kernel esetén).
  • Kódkarcsúsítás: a kódbázis kb. 2400 sorral kevesebb lett.

Teljesítmény és megbízhatóság

  • A per-task shadow data lekérések mostantól zárolás nélkül működnek.
  • A zárolási logikát finomhangolt, kisebb granularitású lockokra cserélték.
  • Számos hook kretprobe-ról kprobe-ra váltott, ami gyorsabbá és megbízhatóbbá tette a működést.
  • Az integritásellenőrzéseket unlikely() makróval vették körül, hogy a forró kódrészekben ne okozzanak cache-terhelést.

Biztonsági hibajavítások és kompatibilitás

Az új verzió több versenyhelyzetet (race condition) szüntetett meg, például:

  • SECCOMP szűrők,
  • névtér-ellenőrzés,
  • sysctl módosítások során.

Megoldották a téves riasztásokat az újabb kernelekben jelentkező seccomp mód korrupció kapcsán, valamint javították az Intel CET IBT és a Clang KCFI kompatibilitást x86_64 rendszereken. Hivatalosan továbbra is a GCC a támogatott fordító.

Rendszeres karbantartás és disztribúciós támogatás

Az LKRG-hez tartozó felhasználói naplózó eszközök erősítést kaptak, jobb hibajelentési képességekkel. A folyamatos integráció (CI) tesztelés most már lefedi:

  • a legfrissebb Fedora mainline kernellel,
  • az Ubuntu 24.04 LTS–25.10 verziókat,
  • valamint a támogatását vesztett, de még mindig használt CentOS 7 rendszert is.

Az új csomagok már elérhetők a Rocky Linux SIG/Security tárolóból, kompatibilisek az AlmaLinux és RHEL 8 és 9 rendszerekkel is. Rövidesen elérhetők lesznek a Rocky Linux 9.6 és 8.10 verziókhoz készült build-ek.

Mi az a Linux Kernel Runtime Guard?

Az LKRG egyik fő feladata, hogy futásidőben ellenőrizze a Linux kernel integritását. Ez azt jelenti, hogy folyamatosan figyeli, nem történt-e olyan jogosulatlan változás a kernelben, amely biztonsági kockázatot jelentene. Például ha egy támadó megpróbál kihasználni egy kernelhibát, és hozzáférést szerezni a rendszerhez, az LKRG képes észlelni ezt a gyanús viselkedést.

Fontos kiemelni, hogy az LKRG nem kernel patch, tehát nem kell a kernel forráskódját módosítani és újrafordítani a használatához. Ehelyett egy kernelmodulként működik, amit bármikor be lehet tölteni vagy eltávolítani. Ez nagy rugalmasságot ad, mert különféle Linux disztribúciókon és kernelverziókon is használható, anélkül, hogy mély rendszerbeavatkozásra lenne szükség.

Az LKRG jelenleg nagyon széles körű kernel támogatással rendelkezik:

  • a régebbi rendszerektől, mint a RHEL 7 (és annak klónjai),
  • egészen a legfrissebb mainline és disztribúciós kernelekig (például az Ubuntu, Fedora, Arch Linux által használtak).

Szómagyarázat

  • LKRG (Linux Kernel Runtime Guard): Biztonsági kiegészítő modul a Linux kernelhez, amely futásidőben ellenőrzi a kernel állapotát, és észleli a támadásokat vagy integritás-sérüléseket.
  • Kernel: A Linux operációs rendszer magja, amely kezeli a hardvert, a folyamatokat, a memóriát és az összes alacsony szintű működést.
  • Kernel modul: Olyan kiegészítő komponens, amelyet futás közben lehet betölteni a kernelbe, új funkciókat adva a rendszerhez anélkül, hogy a kernelt újra kellene fordítani.
  • Kernel patch: Javítás vagy módosítás a kernel forráskódjában, amelyet le kell fordítani és telepíteni – ez időigényesebb és kevésbé rugalmas, mint egy modul.
  • Futásidő (runtime): Az az időszak, amikor a számítógép operációs rendszere és a kernel ténylegesen fut, vagyis használatban van.
  • Integritás-ellenőrzés (integrity checking): Annak biztosítása, hogy a kernel adatai és működése nem változtak meg jogosulatlanul, például egy támadó által.
  • Biztonsági sebezhetőség kihasználása (exploit): Egy hiba vagy gyengeség tudatos kihasználása támadásra, például jogosultságok kiterjesztésére vagy adatlopásra.
  • Mainline kernel: A Linux kernel hivatalos, Linus Torvalds és a fejlesztői közösség által karbantartott fő ága.
  • Distro kernel: Egy adott Linux disztribúció (pl. Ubuntu, Fedora, RHEL) által szállított kernel, amely tartalmazhat extra javításokat és beállításokat.
  • RHEL (Red Hat Enterprise Linux): Egy népszerű, vállalati környezetben használt Linux disztribúció.