Linux Kernel Runtime Guard (LKRG) 1.0.0: il guardiano dell’integrità del kernel Linux raggiunge la maturità

Il Linux Kernel Runtime Guard, noto come LKRG, è un modulo del kernel Linux progettato per eseguire il controllo in tempo reale dell’integrità del kernel Linux e rilevare lo sfruttamento di vulnerabilità di sicurezza contro il kernel Linux stesso. Questo strumento si posiziona come una soluzione avanzata per la protezione dei sistemi, soprattutto in ambienti server e critici, dove la sicurezza e la stabilità sono prioritarie.
Il progetto LKRG è stato reso pubblico per la prima volta nel 2018, dopo anni di sviluppo interno. Dopo oltre 7 anni di evoluzione, la versione 1.0.0 segna un traguardo importante: il team di sviluppo, guidato da Solar Designer e con il contributo di Adam “pi3” Zabrocki e Sultan Alsawaf, dichiara ufficialmente il software maturato e pronto per un impiego su larga scala.
LKRG è distribuito con una licenza open source, specificamente la GNU General Public License versione 2 (GPLv2), che ne consente l’utilizzo, la modifica e la redistribuzione liberamente, a patto di rispettare i termini della licenza stessa. Il software è compatibile con le principali distribuzioni GNU/Linux e supporta una vasta gamma di versioni del kernel Linux, dalle più datate alle più recenti, incluse quelle in fase di sviluppo.
LKRG è compatibile con l’architettura x86_64 e, grazie ai recenti aggiornamenti, supporta anche funzionalità avanzate introdotte nelle versioni più recenti del kernel Linux, come:
- Intel CET IBT (Control-flow Enforcement Technology – tracciamento dei salti indiretti), una tecnologia progettata per proteggere il flusso di esecuzione del codice da attacchi come il Return-Oriented Programming
- KCFI (Clang Control Flow Integrity – integrità del flusso di controllo), una tecnica di protezione che impedisce l’esecuzione di chiamate a funzioni non previste, migliorando la sicurezza del kernel
Inoltre, LKRG è compatibile con le seguenti architetture di processore (CPU):
- x86-64 (sistemi a 64 bit di tipo x86)
- x86 a 32 bit
- AArch64 (ARM a 64 bit)
- ARM a 32 bit
Questa ampia compatibilità lo rende utilizzabile su una grande varietà di sistemi GNU/Linux, sia desktop che server.
Novità in LKRG 1.0.0
LKRG 1.0.0 introduce numerose migliorie tecniche, ottimizzazioni e correzioni di bug, con l’obiettivo di rendere il modulo più robusto, portabile e efficiente. Di seguito, un riassunto delle principali novità:
- Supporto ai kernel Linux più recenti: LKRG è stato testato e adattato per funzionare con i kernel Linux mainline (versione ufficiale) fino alla versione 6.17-rc4, garantendo compatibilità con le ultime innovazioni introdotte nello sviluppo del kernel Linux.
- Ottimizzazione del codice: Sono state rimosse circa 1500 righe di codice, eliminando funzionalità ridondanti e migliorando la manutenibilità del progetto. Ad esempio, non vengono più tracciati le credential (strutture dati che rappresentano le credenziali di un processo) che non vengono validati, riducendo così la complessità e il carico sul sistema.
- Miglioramenti nelle rilevazioni: È stato potenziato il rilevamento di attacchi basati sulla sovrascrittura dei puntatori alle credential, soprattutto su kernel Linux precedenti alla versione 6.13, dove alcune funzioni non sono più “agganciate” (in gergo tecnico, hookate) per evitare falsi positivi.
- Compatibilità con OverlayFS: È stato aggiunto il supporto per ovl_tmpfile, una funzionalità introdotta nel kernel Linux 6.10, utile per evitare falsi allarmi in ambienti con container. Tuttavia, sul kernel Linux 6.13 e successivi, non è più necessario intervenire su OverlayFS, semplificando così l’integrazione.
- Supporto a Intel CET IBT e KCFI: LKRG è ora compatibile con le tecnologie di protezione del flusso di controllo offerte da Intel e Clang (un compilatore), migliorando la sicurezza su architetture x86_64.
- Miglioramenti nelle prestazioni: Sono state sostituite numerose kretprobes (un tipo di sonda del kernel Linux) con kprobes più semplici, aumentando l’affidabilità e riducendo la duplicazione del codice sorgente. Questo cambiamento ha portato a una riduzione complessiva di circa 900 righe di codice.
- Gestione avanzata dei dati per processo: È stato rivisto il sistema di blocco dei dati ombra per processo (dati aggiuntivi che LKRG utilizza per monitorare lo stato di ogni processo), introducendo meccanismi di blocco più granulari e ricerche senza blocco (lockless), che migliorano le prestazioni in scenari ad alto carico.
- Riduzione dei falsi positivi: Sono stati risolti diversi bug che causavano falsi allarmi, come la segnalazione errata di corruzione del modo seccomp (Secure Computing Mode – un meccanismo di sicurezza per limitare le chiamate di sistema) e problemi legati alla validazione dei namespace (meccanismo fondamentale che consente di isolare le risorse di sistema tra diversi processi o gruppi di processi) del kernel Linux.
- Ottimizzazione per Clang: Sebbene GCC rimanga il compilatore ufficialmente supportato, sono stati risolti diversi problemi di portabilità che ostacolavano l’utilizzo di Clang, ampliando così le opzioni per gli sviluppatori.
- Miglioramenti nella segnalazione degli errori: Gli strumenti per la registrazione degli eventi (lkrg-logctl e lkrg-logger) sono stati aggiornati per gestire meglio i messaggi di log, rendendoli accessibili anche a utenti appartenenti al gruppo di sistema.
- Integrazione continua (CI): Il processo di test automatico è stato aggiornato, sostituendo Ubuntu con Fedora per i test sui kernel Linux mainline e aggiungendo il supporto per Ubuntu 24.04, 24.10, 25.04 e 25.10, oltre a riparare i test per CentOS 7, nonostante la fine del supporto ufficiale.
Il registro delle modifiche (changelog) di LKRG 1.0.0
La transizione dalla versione 0.9.9 alla 1.0.0 ha coinvolto 144 file, con 2279 inserimenti e 4700 cancellazioni di righe di codice. I principali contributori a questa versione sono stati:
- Solar Designer (99 commit)
- Sultan Alsawaf (30 commit)
- Vitaly Chikunov (6 commit)
In ambito sviluppo software, un commit rappresenta una singola modifica al codice sorgente, registrata nel sistema di controllo versione (come Git). Ogni commit è identificato da un codice univoco e contiene una descrizione delle modifiche apportate.
Nonostante l’assenza di nuovi commit da parte di Adam “pi3” Zabrocki, autore originale di LKRG, il suo ruolo è rimasto fondamentale nel processo di revisione e validazione delle modifiche. Il focus di questa versione è stato principalmente sulla stabilizzazione e sull’ottimizzazione, piuttosto che sull’aggiunta di nuove funzionalità di difesa.
Dove scaricare LKRG 1.0.0
I pacchetti software aggiornati sono già accessibili attraverso il repository software Rocky Linux SIG/Security. Le versioni compilate (build) specifiche per Rocky Linux 9.6 e 8.10 saranno rese disponibili a breve.
Questi pacchetti sono compatibili anche con altre distribuzioni GNU/Linux di tipo Enterprise, come AlmaLinux e Red Hat Enterprise Linux (RHEL) 8 e 9.
Per ulteriori dettagli, è possibile leggere l’annuncio ufficiale pubblicato dal progetto.
Fonte: https://lkrg.org/
Fonte: https://www.openwall.com/lists/announce/2025/09/02/1
Fonte: https://www.phoronix.com/news/LKRG-1.0-Released
Fonte: https://linuxiac.com/linux-kernel-runtime-guard-1-0-released/
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
























