Secondo uno studio recente, Gli ingegneri del software che utilizzano i sistemi di intelligenza artificiale per generare codice hanno maggiori probabilità di causare vulnerabilità di sicurezza nelle applicazioni che sviluppano. Il documento, co-autore di un team di ricercatori affiliati a Stanford, evidenzia le potenziali insidie dei sistemi di generazione del codice mentre fornitori come GitHub iniziano a commercializzarli sul serio.
«Attualmente, i sistemi di generazione del codice non sostituiscono gli sviluppatori umani»Neil Perry, studente di dottorato a Stanford e co-autore principale dello studio, spiega in un'intervista via e-mail. "Gli sviluppatori che li utilizzano per completare attività al di fuori delle proprie aree di competenza dovrebbero essere preoccupati, e coloro che li utilizzano per velocizzare compiti in cui sono già abili dovrebbero controllare attentamente i risultati e il contesto in cui vengono utilizzati nel gioco. progetto generale »
Lo studio di Stanford si è concentrato in particolare su Codex, il sistema di generazione di codice AI sviluppato dal laboratorio di ricerca OpenAI di San Francisco. I ricercatori hanno reclutato 47 sviluppatori, da studenti universitari a professionisti del settore con decenni di esperienza di programmazione, per utilizzare Codex per risolvere problemi relativi alla sicurezza in linguaggi di programmazione come Python, JavaScript e C.
Codex è addestrato su miliardi di righe di codice pubblico per suggerire ulteriori righe di codice e funzionalità basate sul contesto del codice esistente. Il sistema propone un approccio o una soluzione di programmazione in risposta a una descrizione di ciò che un programmatore vuole ottenere (ad esempio, "Say hello world"), in base sia alla sua base di conoscenza che al contesto attuale.
Secondo i ricercatori, i partecipanti allo studio che avevano accesso al Codex avevano maggiori probabilità di scrivere soluzioni errate e "non sicure" (nel senso della sicurezza informatica) ai problemi di programmazione rispetto a un gruppo di controllo. E ciò che è ancora più preoccupante, era più probabile che affermassero che le loro risposte non sicure erano sicure rispetto alle persone nel gruppo di controllo.
megha srivastava, uno studente laureato a Stanford e secondo coautore dello studio, sottolinea che i risultati non sono una completa condanna del Codex e di altri sistemi di generazione del codice. Ad esempio, i partecipanti allo studio non avevano conoscenze sulla sicurezza che avrebbero consentito loro di rilevare meglio le vulnerabilità nel codice. Oltre a questo, Srivastava ritiene che i sistemi di generazione del codice siano utili per attività non ad alto rischio, come il codice di ricerca esplorativa, e che potrebbero migliorare i loro suggerimenti di codifica con la messa a punto.
"Le aziende che sviluppano i propri [sistemi], forse con una maggiore formazione sul proprio codice sorgente interno, potrebbero cavarsela meglio, poiché il modello potrebbe essere incoraggiato a produrre risultati più in linea con le loro pratiche di codifica e sicurezza"dice Srivastava.
Quindi, in che modo fornitori come GitHub potrebbero impedire agli sviluppatori di introdurre falle di sicurezza utilizzando i loro sistemi di intelligenza artificiale che generano codice? I coautori hanno alcune idee, incluso un meccanismo per "perfezionare" le istruzioni dell'utente per renderle più sicure, proprio come un supervisore che esamina e rivede bozze di codice. Suggeriscono inoltre che gli sviluppatori di librerie crittografiche assicurino che le loro configurazioni predefinite siano sicure, poiché i sistemi di generazione del codice tendono ad attenersi a impostazioni predefinite che non sono sempre prive di exploit.
“Gli strumenti di generazione del codice dell'assistente AI sono uno sviluppo davvero entusiasmante e comprensibilmente così tante persone sono ansiose di usarli. Tuttavia, ci sono problemi con questi strumenti che devono essere considerati in futuro... Il nostro obiettivo è fare una dichiarazione più ampia sull'uso dei modelli di generazione del codice.dice Perry. "Dobbiamo continuare a esplorare questi problemi e sviluppare tecniche per risolverli".
Secondo Perry, l'introduzione di vulnerabilità di sicurezza non è l'unico difetto nei sistemi di intelligenza artificiale che generano codice. Almeno parte del codice su cui Codex è stato addestrato è soggetto a una licenza restrittiva; Gli utenti hanno potuto chiedere a Copilot di generare codice Quake, frammenti di codice da codebase personali e codice di esempio da libri come "Mastering JavaScript" e "Think JavaScript". Alcuni esperti legali hanno sostenuto che Copilot potrebbe mettere in pericolo aziende e sviluppatori se incorporassero inavvertitamente suggerimenti protetti da copyright dello strumento nel loro software di produzione.
Il tentativo di GitHub di correggere questo è un filtro, introdotto per la prima volta sulla piattaforma Copilot a giugno, che controlla i suggerimenti di codice rispetto al codice circostante di circa 150 caratteri rispetto al codice pubblico di GitHub e nasconde i suggerimenti se c'è una corrispondenza o "quasi coincidenza". Ma è una misura imperfetta. Tim Davis, professore di informatica presso la Texas A&M University, ha scoperto che l'attivazione del filtro faceva sì che Copilot producesse grandi porzioni del suo codice protetto da copyright, inclusi tutti i testi di licenza e attribuzione.
"[Per questi motivi,] mettiamo in guardia contro l'uso di questi strumenti come sostituto per educare gli sviluppatori alle prime armi su pratiche di codifica valide", ha aggiunto Srivastava.