Il vibe coding, una pratica sempre più diffusa nello sviluppo software, si basa sull’utilizzo di modelli di intelligenza artificiale (AI) come ChatGPT, Bard o Codex per produrre interi frammenti di codice a partire da semplici istruzioni testuali. Nonostante la praticità e la velocità di esecuzione offerte da questa tecnica, il suo utilizzo non è esente da rischi significativi. Secondo Tanya Janca, esperta di sicurezza informatica, il passaggio a un modello di programmazione guidato dall’AI potrebbe compromettere la stabilità e la sicurezza dei sistemi tecnologici esistenti.

I rischi del coding automatizzato

Uno dei maggiori problemi del vibe coding è l’incapacità di comprendere a fondo il codice prodotto. Molti sviluppatori, attratti solo dall’efficienza, non fanno alcun controllo approfondito sui risultati generati. Questo potrebbe portare a vulnerabilità gravi come exploit SQL injection, accesso non autorizzato o errori di configurazione, che vengono facilmente replicati e amplificati su larga scala.

Inoltre, i modelli di intelligenza artificiale, pur essendo addestrati su enormi quantità di dati, non garantiscono una comprensione contestualizzata del problema da risolvere. Ad esempio, l’uso di un modello non aggiornato potrebbe produrre codice basato su vulnerabilità oggi conosciute e corredate di patch disponibili, ma non tenute in considerazione dagli algoritmi.

I casi pratici: dove non conviene affidarsi all’AI

Un esempio tangibile è stato osservato in uno studio condotto da una grande azienda di infrastrutture cloud, dove un modello di AI ha generato una funzione di autenticazione che non considerava i protocolli OAuth 2.0 come si dovrebbe e, invece, implementava credenziali hardcoded in testo chiaro. Il risultato? Un rischio enorme di fuga di dati compromettendo migliaia di utenti.

Un altro caso riguarda una piattaforma finanziaria startup che ha utilizzato un modello di intelligenza artificiale per automatizzare l’invio di transazioni criptate. I test successivi hanno rilevato una falla criptanalitica, causata da un errore nel codice generato, che ha esposto i sistemi a un attacco man-in-the-middle. L'implementazione senza controllo ha costretto l’azienda a un arresto totale di attività per giorni.

Potenziali vantaggi dell’AI nello sviluppo?

Nonostante i rischi, l’AI offre vantaggi evidenti come la riduzione del codice boilerplate, il miglioramento della produttività e la capacità di completare codice a partire da istruzioni poco specifiche. Questo è stato particolarmente utile nello sviluppo di prototipi o proof-of-concept.

Tuttavia, i benefici vengono vanificati ogni volta che si trascura l’importante fase di revisione e test manuale. Janca sottolinea che “nessun modello AI può sostituire l’esperienza e il giudizio umano”.

Strategie di difesa nel coding automatizzato

    • Usare strumenti di rilevamento di vulnerabilità in tempo reale, come SonarQube, Bandit o ZAP.
    • Implementare processi di code review rigorosi, con revisione manuale di ogni componente critico generato dall’AI.
    • Adottare linee guida interne che obbligano l’uso di controllo manuale per funzioni di gestione di dati sensibili, accesso utente o operazioni finanziarie.
    • Creare modelli AI addestrati su dati recenti e aggiornati periodicamente.
    • Formare gli sviluppatori a comprendere i principi di sicurezza del codice (secure coding standards) come OWASP.

Janca ha inoltre ribadito l’importanza di una cultura aziendale che metta la sicurezza al primo posto, specialmente in progetti che richiedono alto livello di compliance, come quelli del settore sanitario o finanziario.

L’importanza della formazione e della consapevolezza

I problemi non sono unilaterale solo dei modelli AI, ma riflettono una carenza di competenze tecniche e gestionali. Molti sviluppatori non sanno identificare i punti deboli nei frammenti di codice generato, né tantomeno sanno testarli adeguatamente. Janca sottolinea quindi la necessità di investire in formazione continua e in strumenti educativi specifici per insegnare a usare l’AI in modo sicuro.

Sebbene il vibe coding sembri offrire soluzioni rapide, senza preoccuparsi dei rischi, adottare una politica di uso critico e responsabile dell’AI nello sviluppo del software è la chiave per evitare danni irreparabili alle infrastrutture digitali globali.