VulnHunter: l'AI che trova, corregge e verifica le vulnerabilità nel codice

Capital One pubblica VulnHunter: uno strumento agentico che segue i percorsi d'attacco, contesta i finding e genera correzioni verificabili per il codice sorgente.

Quando si parla di sicurezza del codice di programmazione, per il ricercatore è essenziale ricostruire il percorso che un attaccante potrebbe seguire, verificare se i controlli presenti lo interrompono e proporre una correzione capace di resistere a una nuova analisi. Su questa idea Capital One ha costruito VulnHunter (repository GitHub), uno strumento open source che usa un modello linguistico avanzato per esaminare il codice sorgente dalla prospettiva dell’attaccante. Il progetto, pubblicato il 16 luglio 2026 con licenza Apache 2.0, nasce da un impiego interno su migliaia di repository appartenenti a decine di aree aziendali.

Per capire perché l’approccio merita attenzione bisogna tornare ai limiti storici della Static Application Security Testing (SAST). Gli scanner SAST analizzano il codice senza eseguirlo, cercano costrutti rischiosi e seguono, quando possibile, il flusso dei dati. Hanno portato la verifica di sicurezza dentro il ciclo di sviluppo, ma spesso generano segnalazioni che richiedono una lunga revisione manuale. OWASP ricorda che i falsi positivi compaiono soprattutto quando lo strumento non riesce a stabilire con certezza quali trasformazioni, validazioni o barriere proteggano un dato durante il suo percorso.

Da una funzione pericolosa al percorso realmente sfruttabile nel codice software

Molti analizzatori partono da un cosiddetto sink, cioè un’operazione “delicata” come l’esecuzione di un comando, una query SQL, la scrittura di un file o la deserializzazione di dati. Da quel punto tentano di risalire verso una sorgente controllabile dall’utente.

La tecnica funziona bene per numerose classi di vulnerabilità, ma può perdere informazioni applicative: autenticazione, autorizzazioni, filtri, normalizzazioni, condizioni di configurazione e controlli introdotti lungo il tragitto.

VulnHunter capovolge la direzione: il suo approccio attacker-first forward analysis parte da ingressi raggiungibili dall’esterno, tra cui endpoint API, messaggi di rete e caricamenti di file; segue poi i dati attraverso funzioni, trasformazioni e controlli fino a individuare operazioni che potrebbero produrre un impatto concreto.

Non si chiede soltanto se nel programma esista una chiamata rischiosa; cerca di stabilire se un attaccante possa davvero raggiungerla con valori sotto il proprio controllo.

La caratteristica più originale del progetto non riguarda la ricerca iniziale, ma ciò che accade dopo. Ogni possibile vulnerabilità passa attraverso un motore di falsificazione: un flusso di ragionamento progettato per demolire la tesi appena formulata. Il metodo richiama il lavoro di un revisore esperto.

Tre componenti per cercare, correggere e controllare

VulnHunter non consiste in un solo comando. La distribuzione comprende tre skill componibili per Claude Code: /vulnhunt cerca le vulnerabilità, /vulnhunter-fix prepara la correzione e /vulnhunt-fix-verify esegue una verifica indipendente. Le skill sono istruzioni raccolte in un file SKILL.md che estendono le attività disponibili nell’ambiente di sviluppo di Anthropic.

La prima fase mappa gli ingressi, segue i percorsi verso operazioni pericolose e filtra i risultati. La seconda adotta una procedura vicina al test-driven development: costruisce una dimostrazione dell’exploit, crea un test di sicurezza, applica la modifica e controlla che il test si concluda con successo senza introdurre regressioni.

La terza skill non si limita a fidarsi della patch. Un agente separato, configurato in sola lettura, rivaluta ogni singola scoperta e produce un verdetto specifico. La separazione è importante: far giudicare la correzione allo stesso processo che l’ha generata aumenterebbe il rischio di una conferma indulgente.

Resta comunque un limite pratico. Una verifica esclusivamente statica non riproduce ogni comportamento a runtime, specialmente quando entrano in gioco database, code di messaggi, servizi remoti o configurazioni distribuite. VulnHunter può snellire le operazioni di ricerca ma non rende superflui altri livelli di controllo.

Installazione, requisiti e automazione

Il progetto richiede un ambiente Claude Code autenticato e l’accesso a un modello di classe Opus. La documentazione indica come riferimento Claude Opus 4.8.

L’installazione base consiste nel clonare il repository ed eseguire ./install.sh. Lo script copia le skill nella directory ~/.claude/skills/.

Lo scanner si avvia aggiungendo a Claude Code le directory della skill e delle relative fasi, quindi invocando /vulnhunt. Il correttore richiede anche Git, la CLI GitHub gh autenticata e un pacchetto Python installabile dalla cartella vulnhunter-fix. Python 3.12 o successivo serve per l’agente headless e per gli strumenti di benchmark, non per la sola skill di analisi interattiva.

Licenza aperta, ma maturità ancora da misurare

Capital One distribuisce il codice di VulnHunter con Apache License 2.0, una licenza permissiva che consente uso, modifica e redistribuzione nel rispetto delle condizioni previste. La scelta facilita sperimentazioni interne, fork e integrazioni commerciali; permette inoltre alla comunità di ispezionare le istruzioni con cui gli agenti cercano e “contestano” le vulnerabilità.

Il contributo più utile del progetto, almeno per ora, è il ciclo hunt-fix-verify: cercare un difetto nel codice software, redigere un resoconto, applicare una patch e affidare il controllo a un agente separato avvicina l’automazione al metodo di lavoro di un buon team di sicurezza.

La promessa è forte, ma va misurata su corpus pubblici e applicazioni reali, includendo falsi negativi, costi e stabilità dei risultati. Solo allora sarà possibile capire se la falsificazione automatizzata riduce davvero il carico dei revisori o sposta semplicemente la complessità.

Ti consigliamo anche

Link copiato negli appunti