← Ultimi articoli
🤖 AI

Locus: Agentic Predicate Synthesis for Directed Fuzzing

Locus è un nuovo framework agentico che sintetizza predicati intermedi semanticamente significativi per guidare il fuzzing diretto verso stati target, migliorando sostanzialmente l'efficienza dei fuzzer allo stato dell'arte e scoprendo con successo vulnerabilità reali precedentemente non patchate.

Autori originali: Jie Zhu, Chihao Shen, Ziyang Li, Jiahao Yu, Yizheng Chen, Kexin Pei

Pubblicato 2026-07-23
📖 5 min di lettura🧠 Approfondimento

Autori originali: Jie Zhu, Chihao Shen, Ziyang Li, Jiahao Yu, Yizheng Chen, Kexin Pei

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immagina di cercare un particolare forziere del tesoro sepolto nel profondo di un enorme e mutevole labirinto. Questo non è un labirinto qualsiasi; è un labirinto digitale fatto di codice informatico, e il "tesoro" è un difetto segreto — un bug — che potrebbe permettere a un hacker di violare un sistema. Questo è il mondo del fuzzing diretto. Pensa al "fuzzing" come al lanciare milioni di freccette casuali contro un bersaglio per vedere se colpisci un punto debole. Di solito si lanciano le freccette alla cieca, sperando di colpire qualcosa di interessante. Ma il fuzzing "diretto" è più intelligente: sai esattamente dove si trova il forziere del tesoro e vuoi lanciare freccette che ti portino direttamente lì.

Il problema è che il labirinto è enorme e il percorso verso il tesoro è spesso bloccato da una serie di porte complesse e invisibili. Per attraversarle, è necessario soddisfare una lunga catena di condizioni, come avere la chiave giusta, indossare il cappello giusto e trovarsi sul pavimento giusto. Se lanci una freccetta che manca anche solo uno di questi piccoli requisiti, rimani bloccato in un vicolo cieco. I metodi tradizionali cercano di indovinare in che direzione andare misurando quanto sei "vicino" al tesoro in termini di passi, ma questo è come cercare di navigare in una città usando solo una bussola che punta a "Nord" senza sapere se un muro blocca la strada. Spesso è troppo vago per essere utile.

Entra in scena Locus, un nuovo strumento sviluppato da ricercatori dell'Università di Chicago, dell'Università del Maryland, della Johns Hopkins e della Northwestern. Invece di limitarsi a indovinare in che direzione sia più vicino, Locus agisce come un detective super intelligente e instancabile che legge la mappa del labirinto e scrive una serie di indizi utili. Capisce i passi specifici e significativi che devi compiere per avvicinarti al tesoro, trasformando un labirinto confuso in una chiara lista di controllo.

Ecco come funziona Locus: utilizza un tipo speciale di intelligenza artificiale (un "agente") per leggere il codice informatico e capire le regole segrete necessarie per raggiungere il bug. Immagina che il codice sia la ricetta per una torta, e che il bug accada solo se aggiungi lo zucchero prima di aggiungere la farina. Gli strumenti tradizionali potrebbero solo dirti: "Ti stai avvicinando alla ciotola!" Locus, invece, dice: "Fermati! Non hai ancora aggiunto la farina. Se non aggiungi la farina ora, non arriverai mai alla parte in cui la torta esplode". Scrive queste regole sotto forma di "predicati" — controlli semplici che il computer può eseguire mentre effettua i test. Se un input di test fallisce il controllo (ad esempio, "Farina non aggiunta!"), il computer si ferma immediatamente per non sprecare tempo su quel percorso e ne prova un altro.

I ricercatori hanno costruito Locus con una rete di sicurezza intelligente. Poiché l'IA sta facendo il ragionamento, potrebbe commettere errori, come suggerire una regola che accidentalmente blocca il forziere del tesoro. Per evitare questo, Locus ha un "validatore" che ricontrolla ogni regola creata dall'IA. Utilizza un metodo matematico chiamato "esecuzione simbolica" per dimostrare che le nuove regole non scarteranno accidentalmente alcun percorso valido verso il bug. È come avere un editor severo che controlla ogni frase scritta dal detective per assicurarsi che sia vera prima di lasciarla entrare nella storia finale.

Quando il team ha testato Locus, i risultati sono stati impressionanti. Lo hanno inserito in otto diversi strumenti esistenti di "lancio di freccette" (fuzzer) e hanno osservato come questi cercavano bug in software reali. In media, Locus ha reso questi strumenti 41,6 volte più veloci nel trovare i bug. In alcuni casi, è stato ancora più drammatico: uno strumento ha trovato un bug 214,2 volte più velocemente con Locus rispetto a senza. Prima di questo, alcuni di questi strumenti avrebbero lavorato per un intero giorno senza trovare nulla; con Locus, hanno trovato gli stessi bug in una frazione del tempo.

Il team non si è limitato ai test; ha usato Locus per dare la caccia a bug reali e non ancora corretti in popolari software come librerie di immagini e strumenti di archiviazione. Sono riusciti a trovare nove bug precedentemente sconosciuti. Tre di questi sono già stati riconosciuti dai produttori del software, che stanno lavorando alle correzioni. Ciò suggerisce che Locus non è solo un'idea teorica; è uno strumento pratico che può aiutare a rendere il software più sicuro trovando le trappole nascoste prima che lo facciano i malintenzionati.

In breve, Locus cambia le regole del gioco, passando dal "lanciare freccette alla cieca e sperare" al "lanciare freccette con un GPS e una lista di controllo". Utilizza l'IA per comprendere la logica profonda dei programmi informatici, crea segnali stradali utili per guidare la ricerca e ricontrolla il proprio lavoro per garantire di non sviare mai la ricerca. In questo modo, trasforma una ricerca quasi impossibile di tesori digitali in un'avventura molto più efficiente e di successo.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →