Leader di pensiero

Il codice generato da AI è qui per rimanere. Siamo meno sicuri a causa di questo?

mm

La programmazione nel 2025 non consiste più nel lavorare su frammenti o trascorrere lunghe ore sulla debug. È un’altra atmosfera. Il codice generato da AI sarà la maggior parte del codice nei prodotti futuri ed è diventato uno strumento essenziale per lo sviluppatore moderno. Conosciuto come “vibe coding”, l’utilizzo del codice generato da strumenti come Github Copilot, Amazon CodeWhisperer e Chat GPT sarà la norma e non l’eccezione nel ridurre il tempo di costruzione e aumentare l’efficienza. Ma la comodità del codice generato da AI rischia di nascondere una minaccia più oscura? Il codice generato da AI aumenta le vulnerabilità nell’architettura di sicurezza o ci sono modi per gli sviluppatori di “vibe code” in sicurezza?

“Gli incidenti di sicurezza a causa di vulnerabilità nel codice generato da AI è uno degli argomenti meno discussi oggi,” ha detto Sanket Saurav, fondatore di DeepSource. “C’è ancora molto codice generato da piattaforme come Copilot o Chat GPT che non viene revisionato dagli esseri umani, e le violazioni della sicurezza possono essere catastrofiche per le aziende interessate.”

Lo sviluppatore di una piattaforma open source che utilizza l’analisi statica per la qualità del codice e la sicurezza, Saurav ha citato l’attacco a SolarWinds nel 2020 come il tipo di “evento di estinzione” che le aziende potrebbero affrontare se non hanno installato le giuste barriere di sicurezza quando utilizzano il codice generato da AI. “L’analisi statica consente l’identificazione di modelli di codice insicuri e cattive pratiche di codifica,” ha detto Saurav.

Attaccati attraverso la libreria

Le minacce di sicurezza per il codice generato da AI possono assumere forme inventive e possono essere dirette alle librerie. Le librerie nella programmazione sono codici riutilizzabili utili che gli sviluppatori utilizzano per risparmiare tempo durante la scrittura.

Spesso risolvono compiti di programmazione regolari come la gestione delle interazioni con il database e aiutano i programmatori a non dover riscrivere il codice da zero.

Una minaccia contro le librerie è nota come “allucinazioni”, dove il codice generativo da AI mostra una vulnerabilità utilizzando librerie fittizie. Un’altra linea di attacchi più recente contro il codice generato da AI è chiamata “slopsquatting” dove gli aggressori possono bersagliare direttamente le librerie per infiltrarsi in un database.

Affrontare queste minacce potrebbe richiedere più consapevolezza di quanto suggerito dal termine “vibe coding”. Parlando dal suo ufficio all’Université du Québec en Outaouais, il professor Rafael Khoury ha seguito da vicino gli sviluppi nella sicurezza del codice generato da AI e è fiducioso che nuove tecniche miglioreranno la sua sicurezza.

In un articolo del 2023, il professor Khoury ha indagato i risultati dell’aver chiesto a ChatGPT di produrre codice senza ulteriore contesto o informazione, una pratica che ha portato a codice insicuro. Quelli erano i primi giorni di Chat GPT e Khoury è ora ottimista sul futuro. “Da allora ci sono state molte ricerche in corso e il futuro si sta guardando a una strategia per l’utilizzo del LLM che potrebbe portare a risultati migliori,” ha detto Khoury, aggiungendo che “la sicurezza sta migliorando, ma non siamo in una posizione in cui possiamo fornire un prompt diretto e ottenere codice sicuro.”

Khoury ha continuato a descrivere uno studio promettente in cui hanno generato codice e poi inviato questo codice a uno strumento che lo analizza per vulnerabilità. Il metodo utilizzato dallo strumento è noto come Finding Line Anomalies with Generative AI (o FLAG per brevità).

“Questi strumenti inviano FLAG che potrebbero identificare una vulnerabilità nella riga 24, ad esempio, che uno sviluppatore può quindi inviare indietro al LLM con le informazioni e chiedere di esaminarlo e risolvere il problema,” ha detto.

Khoury ha suggerito che questo andirivieni potrebbe essere cruciale per risolvere il codice che è vulnerabile all’attacco. “Questo studio suggerisce che con cinque iterazioni, è possibile ridurre le vulnerabilità a zero.”

Ciò detto, il metodo FLAG non è senza problemi, in particolare poiché può dare origine a falsi positivi e falsi negativi. Inoltre, ci sono anche limiti nella lunghezza del codice che i LLM possono creare e l’atto di unire frammenti può aggiungere un altro livello di rischio.

Mantenere l’essere umano nel loop

Alcuni giocatori all’interno del “vibe coding” raccomandano di frammentare il codice e assicurarsi che gli esseri umani restino al centro nelle modifiche più importanti di una base di codice. “Quando si scrive il codice, pensare in termini di commit,” ha detto Kevin Hou, capo dell’ingegneria del prodotto in Windsurf, esaltando la saggezza dei pezzi di piccole dimensioni.

“Dividere un grande progetto in piccoli pezzi che normalmente sarebbero commit o richieste di pull. Fare in modo che l’agente costruisca la scala più piccola, una funzione isolata alla volta. Ciò può assicurare che il codice di output sia ben testato e ben compreso,” ha aggiunto.

Al momento della scrittura, Windsurf ha affrontato oltre 5 miliardi di linee di codice generato da AI (attraverso il suo nome precedente Codeium). Hou ha detto che la domanda più pressante a cui stavano rispondendo era se lo sviluppatore fosse consapevole del processo.

“L’AI è in grado di apportare molte modifiche su molti file contemporaneamente, quindi come possiamo assicurarci che lo sviluppatore stia effettivamente comprendendo e revisionando ciò che sta accadendo invece di accettare semplicemente tutto in modo acritico?” ha chiesto Hou, aggiungendo che avevano investito molto nell’esperienza utente di Windsurf “con un sacco di modi intuitivi per rimanere completamente in sincronia con ciò che sta facendo l’AI e per mantenere l’essere umano completamente nel loop.”

Ecco perché, man mano che il “vibe coding” diventa più mainstream, gli esseri umani nel loop devono essere più cauti delle sue vulnerabilità. Dalle “allucinazioni” alle minacce di “slopsquatting”, le sfide sono reali, ma anche le soluzioni.

Strumenti emergenti come l’analisi statica, metodi di raffinamento iterativo come FLAG e una progettazione UX attenta mostrano che la sicurezza e la velocità non devono essere mutuamente esclusive.

La chiave sta nel mantenere gli sviluppatori coinvolti, informati e in controllo. Con le giuste barriere di sicurezza e una mentalità “fidarsi ma verificare”, la codifica assistita da AI può essere sia rivoluzionaria che responsabile.

Arjun Harindranath è un giornalista freelance con sede a Medellin, Colombia, che copre storie su conflitto, migrazione e tecnologia per un pubblico globale. I suoi precedenti contributi includono Al Jazeera, TechCrunch, The Next Web e il New York Times.