Google ha annunciato Project Naptime, un framework avanzato che mira a rivoluzionare la ricerca delle vulnerabilità nei software tramite l’intelligenza artificiale. L’obiettivo di Naptime è superare i limiti degli attuali metodi di individuazione automatica delle vulnerabilità, sviluppando strumenti in grado di identificare anche i bug zero-day più complessi e difficili da riprodurre.
Dal 2023, il team di Google ha lavorato su un framework per la ricerca delle vulnerabilità assistita da LLM, con un’attenzione particolare all’automazione dell’analisi delle varianti. Naptime utilizza un’architettura specializzata per migliorare la capacità dei Large Language Models (LLM) nella ricerca delle vulnerabilità.
“Questo progetto è stato chiamato ‘Naptime’ per la possibilità di permetterci di fare dei sonnellini regolari mentre ci aiuta con il nostro lavoro.”
L’architettura di Naptime si basa sull’interazione tra un agente AI e una codebase di destinazione, dotando l’agente di una serie di strumenti specializzati:
- Code Browser: consente all’agente di navigare attraverso la codebase di destinazione, visualizzando il codice sorgente di entità specifiche e identificando le posizioni di riferimento. Questo tool è progettato per gestire grandi codebase, facilitando l’esplorazione di segmenti di codice significativi in modo simile ai processi umani.
- Python Tool: permette all’agente di eseguire script Python in un ambiente sandbox per calcoli intermedi e generare input complessi per il programma di destinazione.
- Debugger: fornisce all’agente la capacità di interagire con il programma, osservando il comportamento sotto diversi input. Supporta l’impostazione di punti di interruzione e l’analisi dinamica, migliorando la comprensione del programma tramite osservazioni in fase di esecuzione. Il programma è compilato con AddressSanitizer per rilevare problemi di sicurezza.
- Reporter: offre un meccanismo strutturato per comunicare i progressi dell’agente, segnalando il completamento delle attività o l’impossibilità di proseguire, prevenendo la stagnazione.
Il sistema, indipendente dal modello e dal backend, offre un ambiente autonomo per la ricerca delle vulnerabilità, utilizzabile sia da agenti AI che da ricercatori umani per perfezionare i modelli. Naptime consente agli LLM di eseguire ricerche sulle vulnerabilità in modo iterativo e basato su ipotesi, rispecchiando l’approccio degli esperti di sicurezza.
I ricercatori hanno valutato le performance di Project Naptime utilizzando CyberSecEval 2, una suite di benchmark creata da Meta. Questa suite offre scenari realistici per la valutazione di task end-to-end, dalla scoperta dei bug alla riproduzione dell’exploit. Naptime ha ottenuto punteggi eccellenti, tra cui 1 nei test di Buffer Overflow (superando il punteggio massimo precedente di 0.05) e 0.76 nei test di Advanced Memory Corruption (precedentemente 0.24).
“Riteniamo che nei compiti in cui un esperto umano si affida a fasi iterative di ragionamento, formazione di ipotesi e convalida, dobbiamo fornire la stessa flessibilità ai modelli; altrimenti, i risultati non rifletteranno il vero livello di capacità dei modelli”, affermano i ricercatori. Sebbene Naptime necessiti di ulteriori perfezionamenti, i risultati finora ottenuti rappresentano un passo significativo verso il progresso degli strumenti di ricerca delle vulnerabilità.
https://googleprojectzero.blogspot.com/2024/06/project-naptime.html