Il modello linguistico di OpenAI, ChatGPT, è in grado di generare codice ma produce codice insicuro senza avvisare gli utenti delle sue inadeguatezze, secondo una ricerca condotta da informatici dell’Université du Québec in Canada.
I ricercatori hanno chiesto a ChatGPT di generare 21 programmi in cinque linguaggi di programmazione per illustrare specifiche vulnerabilità di sicurezza come la corruzione della memoria, la negazione del servizio e la crittografia non correttamente implementata.
ChatGPT ha prodotto solo cinque programmi sicuri su 21 al primo tentativo. Ulteriori sollecitazioni hanno portato il modello a produrre sette applicazioni più sicure, ma questo riguardava solo la vulnerabilità specifica da valutare.
I ricercatori hanno rilevato che ChatGPT non è riuscito a riconoscere che il codice generato era insicuro e ha fornito indicazioni utili solo dopo essere stato sollecitato a correggere i problemi.
Inoltre, i ricercatori hanno notato che ChatGPT non assumeva un modello di esecuzione del codice di tipo avversario e li informava ripetutamente che i problemi di sicurezza potevano essere evitati evitando di fornire input non validi al programma vulnerabile.
Tuttavia, il modello ammetteva la presenza di vulnerabilità critiche nel codice che suggeriva, ma non le segnalava a meno che non gli venisse chiesto di valutare la sicurezza dei propri suggerimenti di codice. Gli autori hanno suggerito che questa mancanza di risposta potrebbe essere dovuta al fatto che sapere quali domande porre presuppone una certa familiarità con vulnerabilità specifiche e tecniche di codifica.
I ricercatori hanno osservato che la risposta di ChatGPT ai problemi di sicurezza è stata quella di raccomandare di utilizzare solo input validi, il che non è un buon inizio nel mondo reale.
Inoltre, gli autori hanno notato un’incoerenza etica nel fatto che ChatGPT si rifiuta di creare codice di attacco ma crea codice vulnerabile.
Oggi Google ha dato al suo rivale ChatGPT delle competenze di codifica. L’aggiornamento consente di utilizzare Bard per la generazione di codice, il debug e le spiegazioni. Sono supportati più di 20 linguaggi di programmazione, tra cui C++, Go, Java, Javascript, Python e Typescript.
Le capacità di programmazione di Bard sono ancora in fase iniziale e Google si premura di avvisare che tutto il codice prodotto dal chatbot deve essere ricontrollato per individuare eventuali bug e vulnerabilità.