L'azienda Anthropic ha annunciato un'espansione nelle capacità del modello AI Claude Opus 4.6 per la ricerca di vulnerabilità nel codice e ha condiviso i risultati di un esperimento che ha rivelato oltre 500 vulnerabilità non note (0-day) nelle ultime versioni di vari progetti open source. Il lavoro si è concentrato sulla ricerca di vulnerabilità causate da problemi nella gestione della memoria, in quanto è più facile verificarne la presenza. A tutte le vulnerabilità identificate è stato assegnato un elevato livello di pericolosità. Ogni vulnerabilità è stata controllata manualmente e confermata dai membri di Anthropic o da ricercatori di sicurezza esterni coinvolti.
Per l'analisi delle vulnerabilità sono state utilizzate le codebase di popolari progetti open source, che sono in fase di fuzzing continuo attraverso il servizio OSS-Fuzz. A differenza del fuzzing, in cui viene generato un flusso di combinazioni casuali di dati in ingresso, il modello AI ha cercato di analizzare il codice tenendo conto delle correzioni passate per identificare errori simili non risolti, evidenziando schemi problematici e deducendo logicamente quali dati in ingresso potessero interrompere il flusso di esecuzione.
Le informazioni sulle vulnerabilità rilevate durante l'esperimento sono già state condivise con i team di supporto, con i quali si sta collaborando per implementare le correzioni. Per assistere i team di supporto durante il controllo, sono stati sviluppati manualmente dei patch per risolvere i problemi identificati. A titolo esemplificativo, sono state individuate tre vulnerabilità in GhostScript, OpenSC e CGIF, che al momento della pubblicazione sono state risolte dai team di supporto.
La configurazione utilizzata per identificare i problemi non assomigliava ai tradizionali sistemi di rilevamento delle vulnerabilità — è stato concesso accesso al modello Claude Opus 4.6 macchina virtuale, in cui, oltre al codice esaminato, erano stati installati gli strumenti di sviluppo standard (coreutils, Python, ecc.) e le utility per il debug e l'analisi delle vulnerabilità (comprese le utility per il fuzzing testing). Al modello non è stata data un'istruzione chiara su come utilizzare questi strumenti e non sono state fornite informazioni specifiche sui metodi di ricerca delle vulnerabilità. Al modello è stato semplicemente assegnato un compito e gli è stata fornita l'opportunità di riflettere autonomamente sul miglior utilizzo degli strumenti disponibili.
Nella ricerca di vulnerabilità in GhostScript, il modello AI ha inizialmente tentato di effettuare un test di fuzzing, ma quando questo non ha dato risultati, si è concentrato sull'analisi del codice. Anche l'analisi del codice non ha prodotto risultati, quindi il modello ha iniziato a esaminare la cronologia delle modifiche in git e in uno dei commit ha notato un riferimento al controllo dei limiti del buffer. Analizzando il commit, il modello ha determinato che la correzione aggiungeva il controllo mancante dei limiti del buffer durante l'elaborazione dei caratteri.
Successivamente, il modello ha identificato il codice che esisteva prima della correzione e ha cercato all'interno del resto del codice modelli simili di utilizzo della funzione problematica, rimasti non risolti. Alla fine, nel file gdevpsfx.c è stata identificata una chiamata alla funzione gs_type1_blend senza un controllo valido dei valori. Infine, il modello ha raccolto il contenuto del file, il cui trattamento portava a un crash a causa della scrittura di dati al di fuori dell'area di memoria allocata.
Nel modello AI di CGIF, si è ipotizzato che durante la decompressione dei file GIF, la libreria considerasse che la dimensione dei dati compressi fosse sempre inferiore a quella decompressa. La ricerca delle vulnerabilità si è concentrata sulla determinazione delle condizioni in cui i dati compressi con l'algoritmo LZW sarebbero risultati maggiori rispetto a quelli decompressi. Tali condizioni sono state trovate e il modello AI è riuscito a generare un file GIT, la cui elaborazione ha portato a un overflow del buffer. In OpenSC, il problema è stato identificato dopo un'analisi dell'uso di funzioni potenzialmente pericolose come strrchr e strcat.
Si osserva che i modelli linguistici hanno raggiunto un livello tale da identificare vulnerabilità precedentemente sconosciute e a breve supereranno gli esperti di sicurezza in termini di velocità e scala nella ricerca di vulnerabilità. Si prevede che l'aumento delle vulnerabilità identificate richiederà una riforma dei processi di divulgazione esistenti, poiché i 90 giorni attualmente assegnati per le correzioni saranno insufficienti.
Fonte: opennet.ru
