← Ultimi articoli
💻 computer science

SeedSmith: LLM-Driven Seed Synthesis for Directed Fuzzing

SeedSmith è una pipeline di LLM agentica che sintetizza seed iniziali mirati risolvendo iterativamente chiamate indirette e precondizioni di crash, accelerando così significativamente il fuzzing direzionato e consentendo la scoperta di vulnerabilità precedentemente irraggiungibili attraverso diversi formati di input.

Autori originali: Junmin Zhu, Siyu Liu, Jie Hu, Fabio Gritti, Ati Priya Bajaj, Hulin Wang, Wenbo Guo, Tiffany Bao, Christopher Kruegel, Giovanni Vigna

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

Autori originali: Junmin Zhu, Siyu Liu, Jie Hu, Fabio Gritti, Ati Priya Bajaj, Hulin Wang, Wenbo Guo, Tiffany Bao, Christopher Kruegel, Giovanni Vigna

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 forziere con un tesoro nascosto in un castello enorme e buio. Hai un robot (un "fuzzer") che può vagare alla cieca, urtare i muri e provare ad aprire le porte. Di solito, il robot vaga casualmente, sperando di imbattersi nel tesoro. Ma a volte, sai esattamente dove si trova il tesoro (una specifica funzione "sink" nel codice) e vuoi che il robot vada dritto lì. Questo è chiamato Fuzzing Direzionato.

Il problema? Il robot spesso si perde o rimane bloccato. Perché? Perché la mappa che usa è incompleta (non può vedere i passaggi segreti dietro le porte chiuse) e anche se trova la stanza con il tesoro, non sa quale sia la stretta di mano segreta necessaria per aprirlo. Continua semplicemente a colpire il forziere con un bastone, sperando di romperlo, il che richiede un tempo infinito.

Entra in scena SeedSmith, un nuovo sistema che agisce come un detective super intelligente prima ancora che il robot inizi a muoversi. Invece di lasciare che il robot vaghi ciecamente, SeedSmith utilizza un tipo speciale di intelligenza artificiale (un LLM) per svolgere prima il lavoro da detective.

I due grandi problemi che SeedSmith risolve

1. La mappa invisibile (Chiamate indirette)
Immagina che il castello abbia un corridoio dove le porte non hanno nomi; hanno solo un biglietto che dice: "Vai alla porta indicata dalla guardia". La mappa del robot mostra solo le connessioni dirette, quindi pensa che quel corridoolo sia un vicolo cieco. Nel mondo reale, questo accade con le "chiamate indirette" nel codice informatico. Il documento mostra che senza risolvere questo problema, il robot non potrà mai vedere il percorso verso il tesoro. L'IA detective di SeedSmith legge il codice, capisce quale guardia indica quale porta e disegna il percorso mancante sulla mappa.

2. La stretta di mano segreta (Precondizioni del Crash)
A volte il robot trova la stanza giusta, ma il forziere è chiuso con un puzzle complesso. Magari devi premere tre pulsanti in un ordine specifico mentre tieni in mano una chiave particolare. Il tentativo casuale del robot (mutazione) è come una scimmia che preme i tasti su un pianoforte: potrebbe eventualmente colpire la nota giusta, ma potrebbe volerci un milione di anni. Il detective di SeedSmith legge le istruzioni, capisce la combinazione esatta e costruisce una chiave che si adatta perfettamente.

Come funziona SeedSmith: Il Detective e il Costruttore

SeedSmith non si limita a indovinare; lavora in due fasi, come una squadra composta da due persone:

  • L'Agente di Analisi (Il Detective): Questa parte del sistema parte dal forziere del tesoro e lavora a ritroso. Utilizza uno strumento speciale per "cercare" nel codice, leggendo i corpi delle funzioni e le definizioni dei tipi proprio come farebbe un esperto di sicurezza umano. Non guarda solo una mappa statica; pone domande come: "Chi chiama questa funzione?" e "Quali valori richiede questa variabile?". Continua a scavare finché non trova l'esatto percorso e le condizioni esatte necessarie per innescare il crash.
  • L'Agente di Generazione dei Seed (Il Costruttore): Una volta che il detective ha scritto un rapporto, il costruttore prende il comando. Scrive uno script Python per creare il "seed" perfetto (l'input iniziale). Se il tesoro richiede un file immagine complesso o un pacchetto di rete specifico, il costruttore usa delle librerie (come un pennello digitale) per costruirlo perfettamente, invece di lanciare semplicemente byte casuali.

Se il primo tentativo non rompe il forziere, il sistema controlla il risultato, impara dall'errore e riprova fino a dieci volte finché non ottiene il risultato desiderato.

Cosa dimostra SeedSmith (e cosa no)

I ricercatori hanno testato questo sistema su due grandi set di sfide: Magma (23 bug specifici) e ARVO (115 bug reali provenienti da 26 progetti).

I Risultati:

  • Velocità: Quando utilizza i seed di SeedSmith, i robot hanno trovato i crash 11,51 volte più velocemente (in media) con uno strumento popolare chiamato AFL++, e 14,66 volte più velocemente con un altro chiamato AFLGo, rispetto all'uso dei seed iniziali predefiniti.
  • Nuove scoperte: Sui test ARVO, SeedSmith ha aiutato i robot a trovare 16 bug che non avevano mai trovato prima, anche dopo aver girato per 24 ore. Questi bug erano presenti in 10 progetti diversi con formati di file molto differenti.
  • Successi al primo colpo: Per alcuni bug, il seed costruito da SeedSmith era così perfetto che il robot ha innescato il crash immediatamente, prima ancora di avere la possibilità di mutare l'input. Questo è accaduto 5 volte sul set Magma.

Cosa NON è SeedSmith:

  • Non è una bacchetta magica che ripara il robot stesso. Il documento afferma esplicitamente che SeedSmith non cambia il modo in cui il robot (il fuzzer) funziona internamente. Fornisce solo al robot un punto di partenza migliore.
  • Non è un sostituto per tutto il fuzzing. Il documento nota che per alcuni bug, il robot deve comunque fare del lavoro dopo che il seed è stato fornito.
  • Non sostiene di risolvere ogni problema. Il documento ammette che a volte il robot va comunque in timeout (impiega troppo tempo), specialmente se le condizioni di crash sono incredibilmente complesse.

In sintamente

Pensa a SeedSmith come a un GPS e a un fabbro di chiavi combinati. Prima di inviare il tuo robot in un castello buio, SeedSmith individua l'esatto percorso e fabbrica la chiave perfetta. Il documento dimostra che questo approccio è misurato e provato per rendere la ricerca di bug software significativamente più veloce e aiuta a trovare bug che prima erano impossibili da raggiungere. Trasforma un gioco di fortuna cieca in un gioco di strategia intelligente, permettendo anche ai robot generici di agire come cacciatori di tesori diretti.

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 →