I moderni modelli generativi non sono utilizzati soltanto per produrre testi, immagini, video ma anche per sviluppare software e analizzare il codice di programmazione alla ricerca di vulnerabilità. Non si contano, tuttavia, i casi di AI che hanno segnalato la presenza di vulnerabiltà quando in realtà non vi era alcun problema. Il problema è che molti strumenti AI fanno affidamento sull’analisi statica, cioè osservano il codice senza eseguirlo realmente. Tale approccio può sottovalutare vincoli runtime o comportamenti non lineari del software, generando falsi allarmi. Google, invece, sostiene di avere in tasca la “soluzione definitiva”: CodeMender, un agente AI progettato per individuare, correggere e prevenire vulnerabilità software critiche.
Come funziona CodeMender
Basato sul modello avanzato Gemini Deep Think, CodeMender si propone come un alleato per sviluppatori e manutentori, automatizzando la creazione di patch di sicurezza e riscrivendo il codice esistente per eliminare intere classi di vulnerabilità.
CodeMender opera come un agente autonomo dotato di capacità di ragionamento avanzato sul codice. Grazie all’integrazione di strumenti di analisi sofisticati, è in grado di svolgere tutta una serie di operazioni in modo automatizzato.
🔹 Individuare la causa radice delle vulnerabilità mediante analisi statica e analisi dinamica, fuzzing, test differenziali e solvers SMT. L’analisi dinamica osserva il comportamento del software durante l’esecuzione reale. Così, CodeMender effettua test o input simulati per vedere come il programma reagisce. Permette inoltre di rilevare vulnerabilità che dipendono dallo stato runtime, come memory leak o race condition.
Il fuzzing consiste nel fornire al programma migliaia o milioni di input casuali o progettati ad hoc per stimolare comportamenti anomali. Il test differenziale confronta due versioni di un programma o di un componente sottoposte agli stessi input. L’obiettivo è individuare comportamenti anomali introdotti da modifiche o patch, in modo da capire se una vulnerabilità sia ad esempio legata a una modifica specifica nel codice.
I solvers SMT sono strumenti formali che cercano di trovare valori delle variabili che rendono una certa condizione vera o falsa. Permettono di dimostrare matematicamente se un certo percorso di codice può portare a un errore e sono utili per identificare la causa radice logica di vulnerabilità complesse, come overflow condizionali o problemi di concorrenza.
🔹 Generare patch di sicurezza verificando automaticamente che le modifiche non compromettano la compatibilità con il codice preesistente.
🔹 Riscrivere il codice esistente utilizzando strutture dati e API più sicure per prevenire vulnerabilità future.
🔹 Correggere automaticamente errori e fallimenti nei test, grazie a strumenti di valutazione basati su modelli linguistici avanzati (LLM judge), che garantiscono equivalenza funzionale e aderenza agli standard di stile.
CodeMender non si limita a risolvere problemi evidenti: ad esempio, può individuare errori non immediatamente riconoscibili come un heap buffer overflow mascherato da una gestione scorretta dello stack di elementi XML.
Strategia di sicurezza Google
La filosofia Google alla base di CodeMender poggia due approcci complementari:
- Reattivo: patch immediate per vulnerabilità appena individuate.
- Preventivo: riscrittura e rafforzamento del codice esistente per eliminare vulnerabilità potenziali, riducendo il rischio di exploit futuri.
In soli 6 mesi di attività, CodeMender ha già permesso al team di Google di contribure con 72 patch di sicurezza a progetti open source, inclusi software complessi formati da oltre 4,5 milioni di linee di codice.
Impatto per sviluppatori e comunità open source
Pur trovandosi ancora in una fase iniziale, CodeMender rappresenta un passo decisivo verso l’automatizzazione della sicurezza software.
Attualmente, tutte le patch prodotte dall’agente sono revisionate da ricercatori umani, ma l’obiettivo futuro è rendere lo strumento accessibile a tutti gli sviluppatori, integrandosi in modo sicuro nei processi di sviluppo.
Google prevede inoltre di pubblicare articoli tecnici e report sulle tecniche utilizzate, contribuendo alla diffusione delle best practice e all’innovazione nel settore della sicurezza informatica.
Con la “ricetta” dei tecnici di Mountain View, l’identificazione delle vulnerabilità e la generazione di patch corrette dovrebbe diventare sempre più efficace.