Il nuovo metodo SecureForge è progettato per aiutare a ridurre gli errori di sicurezza nel codice generato dai grandi modelli linguistici. I ricercatori dell'Università di Stanford hanno dimostrato che l'ottimizzazione automatica dei prompt di sistema può ridurre significativamente la percentuale di codice Python vulnerabile, senza compromettere la sua funzionalità.
I grandi modelli linguistici sono sempre più utilizzati nella programmazione, ma i loro output non sono sempre sicuri. Anche il codice funzionante può contenere vulnerabilità che potrebbero essere sfruttate da un attaccante.
Un team di ricercatori guidato da Houjun Liu, Lisa Einstein e John Jang ha quindi sviluppato SecureForge. Il metodo modifica automaticamente i prompt di sistema, ovvero le istruzioni di base a cui il modello si attiene durante la generazione del codice.
La ricerca ha dimostrato che un semplice comando come "scrivi codice sicuro" non è sufficiente. Il modello potrebbe rispettare solo parzialmente l'istruzione di sicurezza e comunque generare, ad esempio, codice vulnerabile a SQL injection o ad altri tipi comuni di attacco.
SecureForge utilizza quindi test ripetuti. Innanzitutto, il modello riceve un compito di programmazione realistico e genera il codice. Questo codice viene quindi controllato da un analizzatore statico chiamato Semgrep. Se vengono rilevati problemi di sicurezza, un altro modello linguistico suggerisce una modifica al prompt di sistema e l'intero processo si ripete.
I ricercatori hanno utilizzato il database MITRE Common Weakness Enumeration, che contiene tipi noti di vulnerabilità software. Hanno creato compiti realistici e formulati in modo comune per la programmazione in Python, basati su 25 importanti categorie di errori di sicurezza, utilizzando GPT-5.4.
Un esempio è stato un compito per creare una funzione che cercasse un utente per nome in un database SQLite. Un compito del genere, se non risolto correttamente, può portare a un errore di tipo SQL injection, anche se il compito stesso non menziona esplicitamente alcuna vulnerabilità.
Gli autori hanno inizialmente raccolto 500 compiti che portavano alla creazione di codice vulnerabile. Hanno conservato la metà per la valutazione finale e hanno gradualmente ampliato l'altra metà a circa 80.000 varianti.
Per ottimizzare i prompt, è stato utilizzato un algoritmo genetico chiamato GEPA. Questo algoritmo ha ripetutamente testato diverse varianti delle istruzioni di sistema, valutando gli errori rilevati e suggerendo le loro correzioni.
SecureForge è stato testato su modelli come CodeLlama 7B, Qwen2.5-Coder, Qwen3, Kimi K2, Claude Sonnet 4.6 e diversi modelli della serie GPT.
I risultati hanno mostrato un miglioramento significativo. Con l'utilizzo di SecureForge, la percentuale di programmi testati contenenti errori di sicurezza è stata in media dell'11,8%, mentre con una semplice istruzione che richiedeva codice sicuro, questa percentuale era del 20,1%.
Per GPT-5.4, il tasso di errore è diminuito dal 15,8% al 10,1%. Per GPT-5.4 Mini, è diminuito dal 21,4% al 12,4%, e per GPT-5.4 Nano, dal 22,1% al 15,6%.
Il metodo presenta anche delle limitazioni. È stato ottimizzato principalmente contro classi di vulnerabilità già note. Pertanto, non è ancora chiaro quanto sia efficace nella protezione da nuove o finora non descritte problematiche di sicurezza.
SecureForge dimostra comunque una possibile strada per aumentare la sicurezza degli assistenti di programmazione che utilizzano l'intelligenza artificiale. Gli stessi modelli in grado di rilevare le vulnerabilità possono, con impostazioni errate, creare nuovi errori.
deeplearning.ai/gnews.cz - GH