LLM e la Generazione di Codice Non Sicuro: Lo Scenario Predefinito
La più recente ricerca di Backslash Security ha rivelato una tendenza preoccupante: i Large Language Models (LLM) come GPT-4.1, insieme ad altri modelli ampiamente utilizzati, tendono a generare codice non sicuro per impostazione predefinita. Ciò significa che, senza istruzioni o linee guida specifiche incentrate sulla sicurezza, il codice prodotto da questi sistemi di intelligenza artificiale è spesso vulnerabile a debolezze ed exploit comuni. Tuttavia, la ricerca indica anche che la sicurezza del codice generato può essere significativamente migliorata fornendo ulteriori indicazioni sulla sicurezza o implementando una governance basata su regole.
Per esplorare ulteriormente questo problema, Backslash Security ha annunciato il lancio del Model Context Protocol (MCP) Server, insieme a Regole ed Estensioni progettate per gli ambienti di sviluppo integrati (IDE) Agentic. Questi strumenti mirano ad affrontare le vulnerabilità di sicurezza identificate nel codice generato da LLM e a fornire agli sviluppatori i mezzi per creare applicazioni più sicure.
Backslash Security ha condotto una serie di test su sette diverse versioni di LLM popolari, tra cui i modelli GPT di OpenAI, Claude di Anthropic e Gemini di Google. L’obiettivo era valutare in che modo varie tecniche di prompting influenzassero la capacità dei modelli di generare codice sicuro. La sicurezza dell’output del codice è stata valutata in base alla sua resilienza contro dieci casi d’uso di Common Weakness Enumeration (CWE), che rappresentano una serie di vulnerabilità software comuni.
I risultati di questi test hanno costantemente dimostrato che la sicurezza del codice generato migliorava con tecniche di prompting più sofisticate. Tuttavia, il tema generale era che tutti gli LLM testati generalmente producevano codice non sicuro quando lasciati a se stessi. Ciò suggerisce che questi modelli, nelle loro configurazioni predefinite, non danno priorità alla sicurezza e spesso non riescono ad affrontare le debolezze di codifica comuni.
Prompts Ingegni: Una Ricetta per la Vulnerabilità
Quando presentati con prompts semplici e “ingenui” che non menzionavano esplicitamente considerazioni sulla sicurezza, tutti gli LLM testati generavano codice non sicuro che era vulnerabile ad almeno quattro dei dieci CWE comuni. Ciò evidenzia l’intrinseca mancanza di consapevolezza della sicurezza in questi modelli quando operano senza una guida specifica.
L’Impatto dei Prompts Focalizzati sulla Sicurezza
I prompts che specificavano generalmente la necessità di sicurezza hanno portato a risultati più sicuri, indicando che gli LLM sono in grado di produrre codice più sicuro quando esplicitamente istruiti a farlo. Inoltre, i prompts che richiedevano codice conforme alle migliori pratiche dell’Open Web Application Security Project (OWASP) hanno prodotto risultati ancora migliori. OWASP è una fondazione senza scopo di lucro che lavora per migliorare la sicurezza del software. Tuttavia, anche con questi prompts più sofisticati, alcune vulnerabilità del codice persistevano in cinque dei sette LLM testati, sottolineando le sfide nella generazione coerente di codice sicuro con gli LLM.
Prompts Basati suRegole: Un Percorso verso il Codice Sicuro
L’approccio più efficace per generare codice sicuro prevedeva prompts vincolati a regole specificate da Backslash per affrontare specifici CWE. Questi prompts basati su regole hanno portato a codice sicuro e non vulnerabile ai CWE testati. Ciò suggerisce che fornire agli LLM una guida specifica e mirata è fondamentale per garantire la sicurezza del codice generato.
Variazioni di Prestazione tra LLM
Nel complesso, GPT-4o di OpenAI ha dimostrato le prestazioni più basse in tutti i prompts, ottenendo un risultato di codice sicuro di solo 1 su 10 quando si utilizzano prompts “ingenui”. Anche quando è stato richiesto di generare codice sicuro, ha comunque prodotto output non sicuri vulnerabili a otto problemi su dieci. GPT-4.1 non ha avuto prestazioni significativamente migliori con prompts ingenui, ottenendo un punteggio di 1,5 su 10.
Al contrario, Claude 3.7 Sonnet è emerso come il miglior performer tra gli strumenti GenAI testati. Ha ottenuto un punteggio di 6 su 10 utilizzando prompts ingenui e un perfetto 10 su 10 quando si utilizzano prompts focalizzati sulla sicurezza. Ciò suggerisce che alcuni LLM sono meglio attrezzati per gestire le considerazioni sulla sicurezza, anche in assenza di istruzioni esplicite.
Le Soluzioni di Backslash Security per una Codifica Vibe Sicura
Per affrontare i problemi rivelati dai suoi test di prompting LLM, Backslash Security sta introducendo diverse nuove funzionalità progettate per consentire una codifica vibe sicura. La codifica vibe si riferisce alla pratica di generare codice utilizzando strumenti di intelligenza artificiale come gli LLM.
Regole e Politiche AI di Backslash
Le Regole e Politiche AI di Backslash forniscono regole leggibili dalla macchina che possono essere iniettate nei prompts per garantire la copertura CWE. Queste regole possono essere utilizzate con strumenti come Cursor, un editor di codice popolare. Inoltre, le politiche AI controllano quali regole AI sono attive negli IDE attraverso la piattaforma Backslash, consentendo alle organizzazioni di personalizzare le proprie impostazioni di sicurezza.
Estensione IDE Backslash
L’Estensione IDE Backslash si integra direttamente nei flussi di lavoro esistenti degli sviluppatori, consentendo loro di ricevere revisioni di sicurezza Backslash sul codice scritto sia da umani che da AI. Questa integrazione è fondamentale per garantire che le considerazioni sulla sicurezza vengano affrontate durante tutto il processo di sviluppo.
Server Model Context Protocol (MCP) di Backslash
Il Server Model Context Protocol (MCP) di Backslash è un’API sensibile al contesto che è conforme allo standard MCP. Collega Backslash agli strumenti AI, consentendo la codifica, la scansione e le correzioni sicure. Lo standard MCP fornisce un framework comune per gli strumenti AI per comunicare e condividere informazioni, facilitando lo sviluppo di applicazioni sicure basate sull’intelligenza artificiale.
Affrontare le Sfide del Codice Generato dall’IA
Yossi Pik, co-fondatore e CTO di Backslash Security, sottolinea le sfide che il codice generato dall’IA pone ai team di sicurezza. Osserva che ‘il codice generato dall’IA - o la codifica vibe - può sembrare un incubo per i team di sicurezza. Crea un’ondata di nuovo codice e porta rischi LLM come allucinazioni e sensibilità del prompt.’ Le allucinazioni si riferiscono a casi in cui gli LLM generano informazioni errate o insensate, mentre la sensibilità del prompt si riferisce alla tendenza degli LLM a produrre output diversi in base a sottili variazioni nel prompt di input.
Tuttavia, Pik ritiene anche che l’IA possa essere uno strumento prezioso per i team AppSec se utilizzata con i giusti controlli. Sostiene che ‘con i giusti controlli - come regole definite dall’organizzazione e un server MCP sensibile al contesto collegato a una piattaforma di sicurezza appositamente costruita - l’IA può effettivamente dare ai team AppSec un maggiore controllo fin dall’inizio.’ Backslash Security mira a fornire questi controlli attraverso le sue regole dinamiche basate su politiche, il server MCP sensibile al contesto e l’estensione IDE, tutti progettati per la nuova era della codifica.
Le Implicazioni del Codice Generato dall’IA Non Sicuro
I risultati della ricerca di Backslash Security hanno implicazioni significative per il settore dello sviluppo software. Man mano che gli strumenti di generazione di codice basati sull’IA diventano sempre più prevalenti, è fondamentale comprendere i rischi associati all’affidamento a questi strumenti senza adeguate misure di sicurezza in atto.
Maggiore Vulnerabilità agli Attacchi Cibernetici
Il codice generato dall’IA non sicuro può creare nuove vulnerabilità che i criminali informatici possono sfruttare. Queste vulnerabilità possono portare a violazioni dei dati, compromissione del sistema e altri incidenti di sicurezza.
Difficoltà nell’Identificare e Rimediare le Vulnerabilità
L’enorme volume di codice generato dall’IA può rendere difficile l’identificazione e la rimozione delle vulnerabilità. I team di sicurezza potrebbero avere difficoltà a tenere il passo con il ritmo rapido della generazione di codice, portando a un arretrato di problemi di sicurezza.
Mancanza di Consapevolezza della Sicurezza tra gli Sviluppatori
Molti sviluppatori potrebbero non essere pienamente consapevoli dei rischi per la sicurezza associati al codice generato dall’IA. Questa mancanza di consapevolezza può portare gli sviluppatori a introdurre inavvertitamente vulnerabilità nelle loro applicazioni.
Sfide di Conformità Normativa
Le organizzazioni che fanno affidamento sul codice generato dall’IA possono affrontare sfide di conformità normativa. Molte normative richiedono alle organizzazioni di implementare adeguate misure di sicurezza per proteggere i dati sensibili. Il codice generato dall’IA non sicuro può rendere difficile soddisfare questi requisiti.
Best Practice per la Generazione di Codice Sicuro Alimentata dall’IA
Per mitigare i rischi associati al codice generato dall’IA non sicuro, le organizzazioni dovrebbero adottare le seguenti best practice:
Fornire Formazione sulla Sicurezza agli Sviluppatori
Gli sviluppatori dovrebbero ricevere una formazione sui rischi per la sicurezza associati al codice generato dall’IA. Questa formazione dovrebbe coprire argomenti come i CWE comuni, le pratiche di codifica sicura e come utilizzare gli strumenti di sicurezza.
Implementare Politiche e Procedure di Sicurezza
Le organizzazioni dovrebbero implementare politiche e procedure di sicurezza che affrontino l’uso del codice generato dall’IA. Queste politiche dovrebbero definire casi d’uso accettabili, requisiti di sicurezza e processi per la revisione e l’approvazione del codice generato dall’IA.
Utilizzare Strumenti di Sicurezza per Scansionare il Codice Generato dall’IA
Le organizzazioni dovrebbero utilizzare strumenti di sicurezza per scansionare il codice generato dall’IA alla ricerca di vulnerabilità. Questi strumenti possono aiutare a identificare i CWE comuni e altri problemi di sicurezza.
Implementare un Ciclo di Vita di Sviluppo Sicuro (SDLC)
Le organizzazioni dovrebbero implementare un ciclo di vita di sviluppo sicuro (SDLC) che incorpori considerazioni sulla sicurezza durante tutto il processo di sviluppo. Ciò include la conduzione di revisioni di sicurezza del codice generato dall’IA, l’esecuzione di penetration test e l’implementazione del monitoraggio della sicurezza.
Stabilire un Programma di Bug Bounty
Le organizzazioni dovrebbero stabilire un programma di bug bounty per incoraggiare i ricercatori di sicurezza a trovare e segnalare vulnerabilità nel codice generato dall’IA. Questo può aiutare a identificare le vulnerabilità che potrebbero essere state perse dai team di sicurezza interni.
Rimanere Informati sulle Ultime Minacce alla Sicurezza
Le organizzazioni dovrebbero rimanere informate sulle ultime minacce alla sicurezza e vulnerabilità che influiscono sul codice generato dall’IA. Questo può aiutarli ad affrontare in modo proattivo potenziali problemi di sicurezza.
Collaborare con Esperti di Sicurezza
Le organizzazioni dovrebbero collaborare con esperti di sicurezza per valutare la sicurezza del loro codice generato dall’IA e sviluppare strategie per mitigare i rischi.
Il Futuro della Generazione di Codice Sicuro Alimentata dall’IA
Man mano che gli strumenti di generazione di codice basati sull’IA continuano a evolversi, è fondamentale dare la priorità alla sicurezza. Implementando le migliori pratiche sopra descritte, le organizzazioni possono sfruttare i vantaggi della generazione di codice basata sull’IA mitigando al contempo i rischi associati al codice non sicuro.
Progressi nella Sicurezza dell’IA
Gli sforzi di ricerca e sviluppo in corso sono focalizzati sul miglioramento della sicurezza dei sistemi di intelligenza artificiale. Questi sforzi includono lo sviluppo di nuove tecniche per rilevare e prevenire attacchi contraddittori, migliorare la robustezza dei modelli di intelligenza artificiale e creare architetture di intelligenza artificiale più sicure.
Integrazione della Sicurezza nello Sviluppo dell’IA
La sicurezza sta diventando sempre più integrata nel processo di sviluppo dell’IA. Ciò include l’incorporazione di considerazioni sulla sicurezza nella progettazione dei modelli di IA, l’utilizzo di pratiche di codifica sicura e la conduzione di test di sicurezza durante tutto il ciclo di vita dello sviluppo.
Collaborazione tra Esperti di IA e Sicurezza
La collaborazione tra esperti di IA e sicurezza è essenziale per garantire la sicurezza dei sistemi di intelligenza artificiale. Questa collaborazione può aiutare a identificare potenziali rischi per la sicurezza e sviluppare strategie di mitigazione efficaci.
Maggiore Consapevolezza dei Rischi per la Sicurezza dell’IA
La maggiore consapevolezza dei rischi per la sicurezza dell’IA sta guidando lo sviluppo di nuovi strumenti e tecniche di sicurezza. Ciò include strumenti per rilevare attacchi contraddittori, analizzare la sicurezza dei modelli di IA e monitorare i sistemi di IA per attività sospette.
Affrontando le sfide di sicurezza associate al codice generato dall’IA, le organizzazioni possono sbloccare il pieno potenziale dello sviluppo basato sull’IA proteggendo al contempo i propri sistemi e dati dagli attacchi informatici. La sicurezza deve essere una priorità assoluta nello sviluppo e nell’implementazione di sistemi di intelligenza artificiale. Questo significa che gli sviluppatori devono essere consapevoli dei rischi per la sicurezza associati al codice generato dall’IA e prendere le misure necessarie per mitigarli.