LKRG 1.0 il modulo di sicurezza per il kernel Linux arriva alla sua prima release stabile

Dopo oltre sette anni di sviluppo, Linux Kernel Runtime Guard (LKRG) ha finalmente raggiunto la versione 1.0. Questo modulo, mantenuto sotto il progetto Openwall, è pensato per rafforzare la sicurezza del kernel Linux monitorandone il comportamento in tempo reale. LKRG non sostituisce strumenti come SELinux o AppArmor, ma li integra aggiungendo un ulteriore livello di controllo a basso livello.

Il suo compito principale è rilevare comportamenti sospetti o potenzialmente dannosi all’interno del kernel. Ad esempio, se un attaccante tenta di sovrascrivere credenziali o modificare aree di memoria sensibili, LKRG può intercettare l’azione, registrarla nei log, terminare il processo coinvolto o attivare altre misure difensive configurabili.

Questa capacità di rilevamento proattivo rende LKRG particolarmente utile in ambienti dove la sicurezza è critica, come server esposti a internet, infrastrutture cloud, dispositivi embedded e sistemi Linux utilizzati in ambito industriale o governativo.

Novità di LKRG 1.0: compatibilità, performance e pulizia del codice

La release 1.0 di LKRG introduce una serie di miglioramenti significativi rispetto alla versione precedente (0.9.9), sia in termini di compatibilità con i kernel più recenti che di ottimizzazione del codice e delle prestazioni.

Tra le novità principali troviamo:

  • Supporto ai kernel Linux fino alla versione 6.17-rc4: LKRG è stato testato e adattato per funzionare correttamente con le ultime versioni del kernel mainline, inclusi cambiamenti introdotti da Linux 6.13 in poi.
  • Rimozione di hook obsoleti: funzioni come `override_creds()` e `revert_creds()` sono state eliminate, mentre i controlli sulle credenziali sono stati rafforzati in altri punti per garantire la compatibilità con kernel più vecchi.
  • Compatibilità migliorata con OverlayFS: LKRG ora evita falsi positivi durante l’esecuzione di container su kernel 6.10–6.12, rendendolo più affidabile in ambienti containerizzati.
  • Pulizia del codice: il modulo è stato snellito di circa 2.400 righe, migliorando la leggibilità e la manutenibilità del progetto.

Sul fronte delle prestazioni, LKRG ha introdotto:

  • Lookup lockless per i dati shadow per-task: riduce la latenza e migliora la scalabilità.
  • Locking più fine-grained: ottimizza l’accesso concorrente ai dati di sicurezza.
  • Passaggio da kretprobes a kprobes: migliora l’affidabilità e riduce la duplicazione del codice.
  • Uso di `unlikely()` nei controlli di integrità: mantiene i percorsi critici del kernel liberi da ingombri nella cache.

Questi interventi rendono LKRG più veloce, stabile e meno invasivo, senza compromettere la sua capacità di rilevare violazioni di sicurezza.

Compatibilità estesa e miglioramenti per lo sviluppo

LKRG 1.0 risolve diversi problemi noti, tra cui race condition legate a SECCOMP, validazione dei namespace e modifiche ai sysctl. Sono stati corretti anche falsi positivi relativi alla corruzione della modalità seccomp su kernel recenti.

Inoltre, il modulo ha migliorato la compatibilità con:

  • Intel CET IBT (Control-flow Enforcement Technology): supporto esteso per protezioni hardware su architetture x86_64.
  • Clang KCFI (Kernel Control Flow Integrity): LKRG ora funziona meglio con compilatori Clang, anche se GCC rimane il compilatore ufficialmente supportato.

Sul lato sviluppo, sono stati introdotti:

  • Build hardened per gli strumenti userland di logging
  • Miglioramenti nella reportistica degli errori
  • Ottimizzazioni nei test CI: ora coprono Fedora con kernel mainline, Ubuntu 24.04 LTS fino alla 25.10 e persino CentOS 7, nonostante sia fuori supporto.

I pacchetti aggiornati sono già disponibili nel repository Rocky Linux SIG/Security, con build per Rocky Linux 9.6 e 8.10 in arrivo. Questi pacchetti sono compatibili anche con AlmaLinux e RHEL 8/9, facilitando l’adozione in ambienti enterprise.

Home LKRG 
via

Lascia un commento