Immagine in evidenza da Pexels
Tra i tanti timori legati alla crescita esponenziale di servizi di AI generativa, quello della sicurezza ha un ruolo di primo piano. Dopo il primo hype legato alla (concreta) possibilità che i cyber criminali possano sfruttare gli strumenti di intelligenza artificiale per affinare i loro attacchi, gli esperti del settore si stanno concentrando sulle vulnerabilità dei sistemi di GenAI (Generative AI, intelligenza artificiale generativa).
Lo scenario, già a breve termine, appare terribilmente complicato. Un po’ perché i sistemi di intelligenza artificiale sono (e rimarranno) black box, ovvero “scatole nere” di cui è molto difficile analizzare nel dettaglio le dinamiche e il funzionamento. Un po’ perché l’accelerazione nell’implementazione dei sistemi di GenAI in tutti i settori sta mettendo a dura prova la capacità di analisti e ricercatori di mettere a punto strategie credibili per mitigare le vulnerabilità.
Il rischio prompt injection
Il tema della sicurezza nei Large Language Model (LLM) (modelli linguistici di grandi dimensioni) è strettamente legato al concetto di prompt injection, cioè dell’immissione di istruzioni malevole che portano il sistema di AI generativa a compiere operazioni indesiderate. La prompt injection si distingue nettamente dal jailbreak (prompt injection diretta). Quest’ultimo viene normalmente definito come l’attività con cui l’utente riesce ad aggirare i “guardrail” (pre-prompt) integrati nei sistemi di GenAI, come quelli che impediscono di accedere a informazioni illecite. Ad esempio, le istruzioni per fabbricare una bomba artigianale, che normalmente un chatbot come ChatGPT non dovrebbe fornire.
Quando si parla di prompt injection indiretta (una descrizione del concetto e relativa classificazione è spiegata in queste pagine) l’utente non è l’esecutore dell’attacco, ma la vittima. In sostanza, un attacco basato su prompt injection indiretta punta a “sovrascrivere” le istruzioni inviate alla GenAI in modo da alterarne il comportamento. Lo scenario più credibile per un’operazione del genere è che l’attaccante riesca a inserire il prompt malevolo all’interno di un documento che viene “dato in pasto” all’AI dalla vittima stessa. Per farlo è sufficiente inserire un testo che l’agente interpreta come istruzioni, anche in una semplice email.
Naturalmente le ipotesi di scuola prevedono l’uso di tecniche che permettono di nascondere il testo incriminato, per esempio inserendolo come testo “bianco su bianco” all’interno di un documento, una pagina web o un’immagine, in modo che sia invisibile all’occhio umano ma venga comunque elaborato dall’algoritmo.
Se si considera che gli strumenti basati sulla GenAI, come Microsoft Copilot, sono pensati per interagire con ogni tipo di applicazione e, di conseguenza, ogni tipo di documento, la superficie di attacco risultante è enorme.
Ingegneria sociale in salsa AI
Che si tratti di prompt injection diretta o indiretta, la chiave delle vulnerabilità su cui è possibile fare leva hanno sempre una caratteristica in comune: una forte “umanizzazione” dell’attacco. A differenza di quanto avviene con gli exploit tradizionali, che puntano a sfruttare vulnerabilità nel codice, in questo caso viene utilizzata una tecnica che ricorda quella normalmente adottata per ingannare o truffare un essere umano.
A confermare questo aspetto è l’approccio adottato da Lakera, azienda specializzata nel settore della security dei LLM che ha recentemente raccolto investimenti di venture capital per 20 milioni di dollari.
La startup svizzera, che propone una sorta di firewall per proteggere i sistemi di GenAI da prompt malevoli, ha adottato una strategia che prevede l’addestramento dei suoi prodotti attraverso una forma di collaborazione “diffusa” e una tecnica di gamification che permette all’azienda di individuare nuove vulnerabilità e tecniche di attacco.
Il protagonista del gioco è Gandalf, una chatbot con cui chiunque può confrontarsi per metterne alla prova le capacità di difesa. La sfida con l’AI si sviluppa su diversi livelli, nel corso dei quali il giocatore deve riuscire a raggiungere un obiettivo (per esempio indurre la chatbot a rivelare una password che non dovrebbe condividere) sempre più impegnativo. In una variante del gioco, l’obiettivo è invece quello di portare Gandalf a parlare di un tema “proibito”.
Il gioco, naturalmente, è funzionale ad arrivare all’individuazione di nuove tecniche di prompt injection e, di conseguenza, al miglioramento delle tecniche di difesa nei confronti di questo tipo di attacchi attraverso quello che i fondatori di Lakera definiscono un “low-latency AI application firewall” in grado di impedire il furto di informazioni o la generazione di contenuti inappropriati.
Il ruolo dei dati
L’efficacia e l’accuratezza della GenAI è determinata, oltre che dalla qualità dei modelli, dai dataset a cui possono accedere. Il principio, alla base della “corsa ai dati” che negli ultimi anni ha preso sempre maggiore slancio, ha un impatto anche a livello di sicurezza. Un impatto che, manco a dirlo, è negativo. Le applicazioni commerciali di GenAI in ambito aziendale, per esempio, cercano di fare leva sulla condivisione di documenti contenenti dati di elevata qualità per migliorare le prestazioni degli strumenti di AI.
La parola chiave, in questo caso, è RAG (Retrieval-Augmented Generation). Si tratta di una tecnica che Amazon descrive come “il processo di ottimizzazione dell’output di un modello linguistico di grandi dimensioni, in modo che faccia riferimento a una base di conoscenza autorevole al di fuori delle sue fonti di dati di addestramento prima di generare una risposta”.
In sostanza, attraverso RAG l’algoritmo può rintracciare le informazioni che non conosce (quelle cioè che non le sono state fornite in fase di addestramento) da un dataset personalizzato. Negli ecosistemi aziendali, questo avviene mettendo a disposizione del LLM tutti (o buona parte) dei documenti memorizzati sui sistemi.
Naturalmente, questo tipo di approccio porta a indubitabili vantaggi (un’AI che può contare su dati verificati, puntuali e particolarmente “utili”) ma anche a qualche rischio. Il primo e più intuitivo è che, una volta a regime, il sistema di GenAI avrà accesso a un gran numero di informazioni riservate, o comunque sensibili, e un potenziale leak attraverso prompt injection assume un peso maggiore. I problemi, però, non finiscono qui.
Quando il pozzo viene avvelenato
La maggiore vulnerabilità dei sistemi di questo tipo è il RAG poisoning (qui è possibile consultare un corposo paper sull’argomento), cioè la possibilità di “avvelenare” il processo attraverso l’inserimento di un singolo documento con un contenuto malevolo.
Le conseguenze di un attacco di questo genere sono imprevedibili. L’ipotesi più semplice, illustrata in un post di Tamir Ishay Sharbat di Zenity Labs, è quella in cui un utente può facilmente indurre l’AI (nel caso specifico Microsoft Copilot) a fornire a un collega informazioni completamente false a una sua precisa domanda.
Per ottenere il risultato, Sharbat ha fatto leva su una specifica caratteristica delle applicazioni RAG: il fatto che utilizzino per le loro ricerche un principio di similitudine semantica. Se individuano un documento nel quale la domanda stessa è all’inizio del testo, il livello di similitudine arriva al 100% e il documento viene considerato come la fonte più attendibile. L’aspetto particolarmente divertente dell’esperimento è che il ricercatore ha utilizzato ChatGPT per creare il documento in questione.
Una volta salvato il documento all’interno dei sistemi aziendali, questo entra a far parte del “patrimonio” di contenuti condiviso con gli altri utenti e, di conseguenza, verrà utilizzato da Copilot per generare la risposta (falsa) a quella specifica domanda.
Lo stesso concetto di condivisione illustrato nel caso di Copilot è alla base di una vulnerabilità individuata dai ricercatori di PromptArmor nei sistemi basati su AI di Slack. In questo caso, però, si tratta di una prompt injection indiretta, che richiede il semplice accesso alla chat interna di un’organizzazione. Nei proof of concept illustrati da PromptArmor, la tecnica viene sfruttata sia per esfiltrare informazioni sensibili, sia per avviare un attacco di phishing ai danni di un altro utente di Slack.
Prompt Injection e compromissione dei sistemi
Se il possibile furto di informazioni sensibili e, in una certa misura, gli attacchi di phishing favoriti dall’uso di GenAI rientrano tra gli scenari immaginati dagli esperti di sicurezza già al momento degli esordi dei LLM, gli ultimi sviluppi in tema di applicazione dell’intelligenza artificiale aprono a ipotesi in cui i rischi per la sicurezza aumentano esponenzialmente.
Sotto i riflettori è l’utilizzo della GenAI come strumento per rendere più “potabili” strumenti di elaborazione che, normalmente, richiedono conoscenze tecniche evolute per il loro utilizzo. In molti casi, infatti, l’implementazione dell’AI in questi ambiti comporta la generazione di codice e apre, di conseguenza, allo sfruttamento di exploit decisamente più pericolosi.
Nel caso in cui l’output generato da un LLM non venga opportunamente sanitizzato e sia utilizzato in maniera insicura all’interno di un software, può verificarsi anche l’esecuzione di codice remoto (RCE) e, di conseguenza, la compromissione del software stesso.
Un recente esempio di questo tipo è stato individuato dai ricercatori di JFrog Security, i quali hanno scoperto tale vulnerabilità in Vanna.AI.
Vanna.AI è una libreria che mette a disposizione un’interfaccia text-to-SQL, consentendo così agli utenti di usare il linguaggio naturale per interrogare un database. La tecnica (la descrizione completa è disponibile in questa pagina) sfrutta le caratteristiche della libreria, e in particolare la funzionalità che permette di ottenere una forma di visualizzazione grafica della query. E proprio qui si nasconde la vulnerabilità: tale implementazione ha consentito ai ricercatori di eseguire porzioni di codice Python eventualmente riportate nelle risposte dell’LLM. In altre parole, tramite una prompt injection si potrebbe anche riuscire ad installare un malware. Un salto notevole, che dovrebbe preoccupare (e preoccupa) gli addetti ai lavori. La sensazione, però, è che guardando al quadro completo ci si trovi solo all’inizio.