Nov 21, 2024 Approfondimenti, In evidenza, Minacce, News, RSS, Tecnologia, Tecnologia, Vulnerabilità, Vulnerabilità
Google ha annunciato di aver trovato 26 nuove vulnerabilità in progetti open-source ampiamente usati grazie a OSS-Fuzz, un framework di fuzzing che sfrutta l’intelligenza artificiale per identificare bug in maniera automatica.
Con “fuzzing” si intende una metodologia di testing del software automatizzata che inietta degli input malformati o inattesi nel sistema per individuare eventuali vulnerabilità. Ad agosto 2023 Google ha annunciato un progetto di “AI-Powered Fuzzing” con l’obiettivo di sfruttare gli LLM per trovare bug in maniera automatica e più velocemente.
“Il nostro approccio consiste nell’usare le capacità di coding di un LLM per generare più target di fuzzing, simili a a unit test che verificano funzionalità rilevanti alla ricerca di vulnerabilità“ hanno spiegato Oliver Chang, Dongge Liu and Jonathan Metzman dell’Open Source Security Team di Google.
Ad oggi il framework, ora open-source, ha aumentato la copertura di codice in 272 progetti C/C++; ciò ha portato alla scoperta di 26 nuove vulnerabilità. Una delle più rilevanti è la CVE-2024-9143, un bug critico presente nella libreria OpenSSL. Il team di Google ha notificato la vulnerabilità lo scorso 16 settembre e il fix è arrivato un mese dopo esatto. A detta dei ricercatori, il bug sarebbe presente nella libreria da circa 20 anni e non sarebbe stato individuato con test scritti da esseri umani.
“Uno dei motivi per cui questi bug potrebbero rimanere nascosti per così tanto tempo è che la copertura delle righe (di codice, n.d.r.) non garantisce che una funzione sia priva di bug. La copertura del codice come metrica non è in grado di misurare tutti i possibili percorsi e stati del codice: flag e configurazioni diverse possono innescare comportamenti diversi, portando alla luce bug diversi. Questi esempi sottolineano la necessità di continuare a generare nuove varietà di obiettivi di fuzz, anche per il codice già sottoposto a fuzzing“.
OSS-Fuzz è in grado di emulare in maniera efficiente il worfklow tipico di testing eseguito dagli sviluppatori, dalla scrittura all’esecuzione del singolo test, oltre che la fase di reporting.
Il team di Google ha in programma di migliorare il triaging automatico per segnalare in maniera più precisa i bug individuati ai maintaners del progetto e di ottimizzare l’accesso dell’LLM a tool di debugging. Uno degli obiettivi futuri è di rendere disponibile il framework come feature per abilitare l’uso di soluzioni end-to-end automatizzate per l’individuazione di vulnerabilità.