Il kernel Linux rappresenta il cuore pulsante del sistema operativo, una componente dinamica e in costante evoluzione. Questi continui cambiamenti, seguiti passo dopo passo dal “re pinguino” Linus Torvalds, permettono di introdurre nuove funzionalità e migliorie.
eBPF (Extended Berkeley Packet Filter) è una tecnologia avanzata che consente di eseguire codice da una sandbox, in modo sicuro e ad alte prestazioni, direttamente all’interno del kernel. Strettamente integrata con il kernel Linux, eBPF è una delle innovazioni più potenti perché dà modo di estendere le funzionalità del sistema operativo senza il bisogno di scrivere complessi moduli.
La capacità di eseguire codice arbitrario ad alto livello di privilegio aumenta significativamente la superficie di attacco del kernel. Per attenuare questi rischi, eBPF utilizza un componente software chiamate verifier in modo da assicurarsi che il codice caricato sia sicuro. Il verifier, tuttavia, è un oggetto complesso e proprio per questo motivo sono state scoperte numerose vulnerabilità nel tempo. Queste lacune di sicurezza, se sfruttate, possono portare all’acquisizione di privilegi elevati o all’esecuzione di codice, ad esempio, al di fuori dei container.
La pericolosa vulnerabilità scoperta nel kernel Linux
Per affrontare la complessità del verifier eBPF, Google ha sviluppato uno strumento di fuzzing chiamato Buzzer. È progettato per generare un elevato volume di programmi sintatticamente validi e testare il verifier in modo sistematico. Proprio grazie a Buzzer è stato possibile far emergere la falla critica CVE-2023-2163.
Come raccontano gli ingeneri di Google, si tratta di un traguardo di grande portata. Scoprire una vulnerabilità che permette di leggere e scrivere arbitrariamente nel kernel Linux non è una cosa di tutti i giorni.
Pensate agli scenari aziendali: utilizzando tecniche avanzate e sfruttando la vulnerabilità CVE-2023-2163, era possibile modificare i puntatori nel kernel per aggirare meccanismi di sicurezza come KASLR (Kernel Address Space Layout Randomization). Una volta ottenuto il controllo sui puntatori, l’exploit permetteva di modificare strutture critiche del kernel, come le credenziali di processo, consentendo all’attaccante di ottenere un accesso root alla macchina, anche dall’interno di un container.
Conclusioni e prospettive future
L’analisi della falla CVE-2023-2163 mette in luce come la ricerca sulle tecnologie ampiamente utilizzate in ambito business porti spesso a risultati di grande impatto.
Basti pensare che Google stessa utilizza eBPF per svolgere auditing sul piano della sicurezza, per gestire i pacchetti e monitorare le prestazioni; Android ne fa uso per osservare l’utilizzo della rete, l’utilizzo dell’alimentazione e della memoria; Netflix si server eBPF per ottenere insight sulla sua rete di distribuzione di contenuti multimediali; Cloudflare se ne avvantaggia per la verifica delle performance e la sicurezza della rete. Sono tuttavia decine le aziende di primo piano che beneficiano di eBPF per personalizzare e ottimizzare il comportamento del kernel Linux.
eBPF è un sottosistema del kernel con un potenziale straordinario, ma la sua complessità rende la verifica della sicurezza dei programmi una sfida continua. Con strumenti come Buzzer, il lavoro di audit e verifica può essere automatizzato e migliorato, ma la collaborazione della comunità open source rimane essenziale per garantire la sicurezza di queste tecnologie.