Arriva Google CodeMender! Quando l’AI, trova il bug nel codice e lo ripara da sola
Sarebbe fantastico avere un agente AI capace di analizzare automaticamente il codice dei nostri progetti, individuare i bug di sicurezza, generare la correzione e pubblicarla subito in produzione. Eppure, sembra proprio che dovremo abituarci a questa idea: le intelligenze artificiali promettono che tutto questo non è più fantascienza, ma una realtà ormai vicina.
Google DeepMind ha presentato CodeMender, un nuovo agente di intelligenza artificiale progettato per individuare e correggere automaticamente le vulnerabilità nel codice software. Secondo il blog ufficiale dell’azienda, il sistema combina le capacità dei grandi modelli linguistici di Gemini Deep Think con un set di strumenti per l’analisi e la convalida delle patch, consentendo di correggere i bug in modo più rapido e accurato rispetto ai metodi tradizionali.
Gli sviluppatori sottolineano che, anche utilizzando strumenti come OSS-Fuzz e Big Sleep, l’applicazione manuale delle patch alle vulnerabilità rimane un processo laborioso. CodeMender affronta questo problema in modo completo: non solo risponde ai nuovi problemi creando automaticamente patch, ma riscrive anche proattivamente frammenti di codice, eliminando intere classi di vulnerabilità.
Negli ultimi sei mesi, il team di DeepMind ha contribuito con 72 patch di sicurezza a progetti open source. Queste includono librerie per un totale di oltre 4,5 milioni di righe di codice. Tutte le modifiche vengono sottoposte a revisione per verificarne la correttezza e lo stile prima di essere sottoposte a revisione umana.
CodeMender sfrutta i modelli Gemini per analizzare la logica del programma, analizzare il comportamento del codice e verificare automaticamente i risultati. L’agente può anche verificare che la patch elimini la causa principale della vulnerabilità e non causi regressioni.
Per rendere il processo affidabile, DeepMind ha implementato nuovi metodi di analisi: analisi statica e dinamica, test differenziali, fuzzing e risolutori SMT. Inoltre, CodeMender si basa su un sistema multi-agente, con moduli individuali specializzati in diversi aspetti della revisione del codice, dal confronto delle modifiche all’autocorrezione degli errori.
In un esempio, CodeMender ha corretto un buffer overflow nel parser XML individuando un errore nella gestione dello stack degli elementi, anziché la posizione effettiva del crash. In un altro caso, l’agente ha proposto una correzione complessa relativa al ciclo di vita degli oggetti e alla generazione di codice C all’interno del progetto.
CodeMender è anche in grado di riscrivere il codice esistente utilizzando strutture dati e API più sicure. Ad esempio, l’agente ha aggiunto automaticamente annotazioni -fbounds-safety alla libreria libwebp per prevenire buffer overflow. Questa libreria era affetta in precedenza della vulnerabilità critica CVE-2023-4863, utilizzata nell’exploit di NSO Group per iPhone. I ricercatori stimano che con le nuove annotazioni, tali attacchi non saranno più possibili.
L’agente non si limita ad applicare le patch, ma le testa anche automaticamente, correggendo nuovi errori e verificandone la conformità funzionale con il codice sorgente. Se vengono rilevate incongruenze, il sistema utilizza un “giudice LLM” per correggere la patch senza intervento umano.
Per ora, DeepMind mantiene un atteggiamento cauto: tutte le modifiche sono soggette a revisione manuale obbligatoria. Tuttavia, CodeMender sta già contribuendo a migliorare la sicurezza di decine di progetti open source molto popolari. L’azienda intende ampliare il suo coinvolgimento con la community e rendere lo strumento disponibile a tutti gli sviluppatori in futuro.
Gli sviluppatori promettono di pubblicare report tecnici e articoli sugli approcci utilizzati in CodeMender nei prossimi mesi. Affermano che il progetto sta solo iniziando a sfruttare il potenziale dell’intelligenza artificiale nella sicurezza del software.
L'articolo Arriva Google CodeMender! Quando l’AI, trova il bug nel codice e lo ripara da sola proviene da il blog della sicurezza informatica.