Il Vibe coding, la pratica di creare software descrivendolo a un modello di intelligenza artificiale invece di scrivere e revisionare manualmente ogni riga, è diventato sempre più comune nel settore tecnologico. La sua velocità e accessibilità possono aiutare le persone a costruire prodotti con meno risorse, ma il codice che non viene compreso o ispezionato completamente può introdurre rischi per la sicurezza.

L’azienda di cybersicurezza Apiiro ha dichiarato che un’analisi delle aziende Fortune 50 ha rilevato che il vibe coding ha reso gli ingegneri quattro volte più produttivi, producendo però un numero di problemi di sicurezza dieci volte superiore. Per i principianti, le pratiche seguenti possono ridurre alcuni dei rischi.

1. Scrivere istruzioni precise e creare un file di sicurezza persistente

I modelli di intelligenza artificiale possono adottare scorciatoie per soddisfare una richiesta senza aggiungere protezioni adeguate. I prompt dovrebbero quindi specificare i requisiti di privacy, le restrizioni di accesso, la crittografia e altri controlli di sicurezza. Gli sviluppatori possono anche chiedere al modello di tenere conto dell’elenco OWASP delle principali vulnerabilità.

Molti strumenti supportano un contesto persistente o regole persistenti. Un file markdown può contenere i requisiti di sicurezza del progetto, in modo che il modello ne tenga conto durante le attività future. La fonte raccomanda inoltre di scegliere strumenti dotati di registri di audit, che rendono più semplice monitorare le modifiche al progetto.

2. Tenere le credenziali fuori dai prompt e dal codice sorgente

Le chiavi API e le password non dovrebbero essere inserite in una chat con l’intelligenza artificiale né incorporate direttamente nel codice. Se in seguito le credenziali venissero caricate su GitHub, potrebbero diventare visibili ad altre persone. Limitare l’accesso di uno strumento di intelligenza artificiale può inoltre contribuire a ridurre il rischio di attacchi di Prompt injection.

Per i principianti, l’approccio raccomandato consiste nel conservare le informazioni sensibili in un gestore di password e utilizzare le funzioni per i segreti o le variabili d’ambiente offerte da servizi come Replit, Lovable o Vercel. Quando queste funzioni non sono disponibili, si può usare un file backend .env, a condizione che venga escluso tramite .gitignore e non venga mai esposto nel frontend dell’applicazione. TruffleHog può aiutare a individuare i segreti divulgati accidentalmente.

3. Proteggere i dati dell’applicazione

Le applicazioni che gestiscono grandi quantità di dati possono affidarsi a database SQL, che possono essere presi di mira tramite SQL injection. Gli sviluppatori dovrebbero istruire l’intelligenza artificiale a parametrizzare le query, sanificare gli input, utilizzare Server Actions per le operazioni critiche e abilitare la sicurezza a livello di riga con criteri appropriati, ove applicabile.

La fonte consiglia inoltre di verificare che il progetto utilizzi versioni aggiornate delle proprie librerie. I sistemi di intelligenza artificiale possono suggerire pacchetti inesistenti o introdurre involontariamente dipendenze dannose, quindi le raccomandazioni generate dovrebbero essere controllate prima di essere adottate.

4. Aggiungere il rate limiting

Il rate limiting limita la frequenza con cui un utente o un sistema automatizzato può eseguire un’azione. Può contribuire a ridurre le attività di denial-of-service, gli attacchi di forza bruta alle password e i tentativi di credential stuffing.

I limiti appropriati dipendono dall’applicazione. Un chatbot di supporto, per esempio, potrebbe imporre limiti al numero di token consumati da ciascun utente ogni giorno. Ove possibile, la fonte raccomanda di limitare l’attività in base all’ID dell’account prima di utilizzare gli indirizzi IP, rendendo più difficile aggirare i controlli con una VPN. I flussi di verifica tramite email o telefono e i CAPTCHA possono fornire un’ulteriore protezione contro le attività indesiderate.

5. Esaminare e testare il codice generato

Una revisione professionale del software è preferibile, ma gli sviluppatori possono anche chiedere a un modello di intelligenza artificiale di cercare vulnerabilità e testare il progetto rispetto all’OWASP Top 10. Utilizzare un modello diverso per una seconda revisione può far emergere problemi che il primo modello non ha rilevato.

La fonte elenca diversi strumenti progettati per valutare i progetti generati dall’intelligenza artificiale, tra cui Claude Code Security, Codex Security, Wingman di Stackhawk, CheckVibe, SafeToShip e Vibe App Scanner. I controlli di sicurezza dovrebbero continuare anche dopo il lancio, poiché il monitoraggio è necessario per individuare nuovi problemi in un’applicazione distribuita.

Fonti: Engadget.