Connect with us

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

Leader di pensiero

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

mm

La codifica nel 2025 non consiste più nel lavorare su frammenti o trascorrere lunghe ore sulla debug. È un’altra vibrazione. Il codice generato da AI rappresenta la maggior parte del codice nei prodotti futuri e si è trasformato in un toolkit 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 per ridurre il tempo di costruzione e aumentare l’efficienza. Ma la comodità del codice generato da AI rischia una minaccia più oscura? L’AI generativa aumenta le vulnerabilità nell’architettura di sicurezza o ci sono modi per gli sviluppatori per “vibe codice” 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 riceve una revisione umana 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à e la sicurezza del codice, Saurav ha citato l’hack di SolarWinds nel 2020 come il tipo di “evento di estinzione” che le aziende potrebbero affrontare se non hanno installato le giuste protezioni 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 tale minaccia contro le librerie è conosciuta come “allucinazioni”, dove il codice generativo da AI mostra una vulnerabilità utilizzando librerie fittizie. Un’altra minaccia più recente contro il codice generato da AI è chiamata “slopsquatting” dove gli attaccanti possono mirare direttamente alle librerie per infiltrarsi in un database.

Affrontare queste minacce potrebbe richiedere più consapevolezza di quanto potrebbe suggerire il 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 documento del 2023, il professor Khoury ha esaminato i risultati dell’aver chiesto a ChatGPT di produrre codice senza ulteriore contesto o informazioni, una pratica che ha portato a codice insicuro. Quelli erano i primi giorni di Chat GPT e Khoury è ora ottimista sul futuro. “Da allora c’è stata molta ricerca in corso e il futuro guarda a una strategia per l’utilizzo dell’LLM che potrebbe portare a migliori risultati”, ha detto Khoury, aggiungendo che “la sicurezza sta migliorando, ma non siamo in un posto in cui possiamo dare un prompt diretto e ottenere codice sicuro.”

Khoury ha poi descritto 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 è chiamato 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 all’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 vulnerabile agli attacchi. “Questo studio suggerisce che con cinque iterazioni, è possibile ridurre le vulnerabilità a zero.”

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

Mantenere l’umano nel ciclo

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

“Suddividere un grande progetto in piccoli pezzi che normalmente sarebbero commit o richieste di pull. Far costruire all’agente la scala più piccola, una funzionalità 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 approcciato 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 era consapevole del processo.

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

Il che è il motivo per cui, mentre il ” vibe coding” diventa più mainstream, gli umani nel ciclo devono essere più cauti delle sue vulnerabilità. Dalle minacce di “allucinazioni” a “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 risiede nel mantenere gli sviluppatori coinvolti, informati e in controllo. Con le giuste protezioni e una mentalità “fidati ma verifica”, 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.