Il tuo progetto di codifica Vibe è infestato da vulnerabilità!
Sviluppare software con l'intelligenza artificiale è passato dalla fantascienza alla realtà quotidiana. Il tuo progetto codificato con l'intelligenza artificiale potrebbe funzionare perfettamente... finché gli hacker non ne trovano i difetti. In questo articolo, illustreremo il percorso da un codice generato dall'intelligenza artificiale pieno di vulnerabilità e scoperte a un prodotto affidabile, illustrando un esperimento che abbiamo condotto per testare i flussi di lavoro di analisi e correzione automatica basati sull'intelligenza artificiale di Scribe su un progetto reale creato con la piattaforma di codifica Bolt.new Vibe.
Generazione del progetto
La sfida era semplice:
Crea un'applicazione web che monitora le linee GPIO hardware in tempo reale e ne visualizza lo stato su una pagina web aggiornata dinamicamente.
Con un singolo prompt, Bolt.new ha generato l'intero progetto: un progetto Node.js completo di server WebSocket, un front-end React.js e persino un file README.md per GitHub.
Il processo di generazione ha richiesto solo tre minuti e siamo riusciti a scaricare il codice in un ambiente Linux locale (Ubuntu 22.04 su WSL), installarlo ed eseguirlo.
Ha funzionato subito, cosa che ci ha sorpreso. Ecco lo screenshot dell'app in esecuzione:
Prime impressioni
Una volta implementato, abbiamo analizzato a fondo la struttura del progetto. L'app conteneva 20 file di codice sorgente, più 15 file di configurazione. L'installazione completa, incluse le dipendenze, contava oltre 10,000 file. Questo ha sollevato una domanda importante... Quanto è sicuro e affidabile questo codice generato dall'intelligenza artificiale?
Fase 1: Strumentazione tradizionale
Il nostro primo passo è stato eseguire la strumentazione classica di Scribe, raccogliendo attestazioni di sicurezza dal processo di build. Questo ci ha fornito:
– SBOM (Software Bills of Materials) dettagliati
– Segnalazioni di vulnerabilità (dipendenze dirette e transitive)
– Risultati SAST (analisi statica)
– Risultati di scansione segreti
Rapporto sulla vulnerabilità
- 4 vulnerabilità critiche
- 6 vulnerabilità di elevata gravità
Risultati SAST
- 3 risultati di elevata gravità
- 12 reperti di media gravità
Fase 2: Auto-rimediazione con Scribe AI
Successivamente, abbiamo caricato il progetto su GitHub e utilizzato Remo, flusso di lavoro agentico di auto-riparazione tramite intelligenza artificiale di Scribe. Remo, Infatti, una rete di quattro Agenti AI, è progettato per operare in modo autonomo e collaborativo. Ogni agente ha capacità specializzate, consentendo un approccio distribuito alla risoluzione di problemi complessi. Questa architettura consente allo strumento di gestire un'ampia gamma di attività, dall'analisi dei dati e dal riconoscimento di pattern al processo decisionale e alla modellazione predittiva.
corsa Remo ha portato a una richiesta di pull con correzioni mirate per le vulnerabilità e i problemi SAST precedentemente identificati.
Ecco un esempio di un commit suggerito automaticamente da Remo per correggere una vulnerabilità:
Dopo aver unito le PR, abbiamo ricostruito il progetto, verificato che funzionasse come prima e riesaminato il progetto per individuare eventuali problemi.
Risultati dopo Remo Bonifica
La trasformazione è stata spettacolare!
- Scansione delle vulnerabilità: è rimasto solo 1 problema di gravità media
- Risultati SAST: tutti corretti tranne un elemento di gravità media
Il flusso di lavoro di correzione agentica basato sull'intelligenza artificiale di Scribe ha risolto in modo efficace problemi critici e di elevata gravità, lasciando spazio solo ai problemi minori per l'intervento manuale, senza compromettere la funzionalità del prodotto.
Punti chiave
Questo esperimento ha dimostrato che:
- Sebbene il codice generato dall'intelligenza artificiale possa inizialmente apparire completamente funzionale, la sua funzionalità immediata comporta significativi rischi per la sicurezza e problemi di affidabilità. I progetti che utilizzano tale codice sono esposti a un rischio elevato da parte di attori malintenzionati.
- La strumentazione di sicurezza nella pipeline è essenziale. Il plugin GitHub di Scribe ha rivelato diverse vulnerabilità ad alto impatto nel progetto generato.
- Il flusso di lavoro agentico di correzione automatica basato sull'intelligenza artificiale di Scribe è potente: ha ridotto drasticamente il profilo di rischio del progetto con correzioni automatiche, lasciando il progetto pienamente funzionante.
Considerazioni finali
La combinazione di progetti generati dall'intelligenza artificiale e di soluzioni di ripristino basate sull'intelligenza artificiale suggerisce un futuro in cui il software viene creato e protetto più velocemente che mai. Sebbene la supervisione umana rimanga cruciale, strumenti come ScribeHub con i suoi flussi di lavoro AppSec agentici basati sull'intelligenza artificiale, dimostrano che la riparazione automatizzata del codice non è solo possibile, ma anche pratica.
Questo contenuto è offerto da Scribe Security, un fornitore leader di soluzioni di sicurezza end-to-end per la catena di fornitura di software, che offre sicurezza all'avanguardia per artefatti di codice e processi di sviluppo e distribuzione del codice attraverso le catene di fornitura di software. Per saperne di più.