La battaglia tra i ricercatori di sicurezza e i sistemi di intelligenza artificiale entra in una nuova fase critica. Radware ha dimostrato come sia possibile aggirare le protezioni implementate da OpenAI in ChatGPT contro l'esfiltrazione di dati sensibili attraverso agenti AI, utilizzando una variante raffinata dell'attacco ShadowLeak denominata ZombieAgent. Il caso evidenzia una problematica strutturale che affligge l'intero settore dell'intelligenza artificiale: le contromisure tradizionali basate su guardrail si rivelano inadeguate contro le tecniche di prompt injection, creando un ciclo senza fine di vulnerabilità e patch simile a quanto accade con SQL injection e memory corruption.
L'attacco originale ShadowLeak sfruttava la capacità degli agenti AI di costruire dinamicamente URL personalizzati concatenando parole, aggiungendo parametri di query o inserendo dati derivati dall'utente in un URL di base. OpenAI aveva risposto limitando ChatGPT all'apertura esclusiva di URL forniti esattamente come specificati, impedendo qualsiasi modifica o aggiunta di parametri anche quando esplicitamente richiesto. Una contromisura che sulla carta sembrava efficace, ma che si è dimostrata facilmente aggirabile con un approccio alternativo.
I ricercatori di Radware hanno sviluppato ZombieAgent modificando la strategia di attacco in modo sorprendentemente semplice. Invece di chiedere all'agente AI di costruire URL dinamicamente, il prompt injection rivisto fornisce una lista completa di URL pre-costruiti. Ogni indirizzo contiene l'URL di base seguito da un singolo carattere alfanumerico: example.com/a, example.com/b e così via per tutte le lettere dell'alfabeto, oltre a example.com/0 fino a example.com/9. Il prompt istruisce inoltre l'agente a sostituire gli spazi con un token speciale, permettendo l'esfiltrazione carattere per carattere.
La tecnica funziona perché gli sviluppatori di OpenAI non avevano previsto restrizioni sull'aggiunta di un singolo carattere a un URL. Questa svista ha permesso agli attaccanti di estrarre informazioni sensibili attraverso un processo iterativo, aggirando completamente i controlli implementati. L'attacco dimostra come le protezioni basate su regole specifiche siano intrinsecamente fragili quando applicate a sistemi complessi come i large language model.
OpenAI ha successivamente mitigato l'attacco ZombieAgent implementando una nuova restrizione: ChatGPT ora rifiuta di aprire qualsiasi link proveniente da email a meno che non sia presente in un indice pubblico conosciuto o sia stato fornito direttamente dall'utente in una chat. La modifica mira a bloccare l'accesso a URL di base che conducono a domini controllati dagli attaccanti, alzando ulteriormente l'asticella delle protezioni.
Pascal Geenens, vicepresidente della divisione threat intelligence di Radware, sottolinea tuttavia il problema fondamentale: "I guardrail non dovrebbero essere considerati soluzioni fondamentali per i problemi di prompt injection. Rappresentano invece una soluzione rapida per fermare un attacco specifico. Fino a quando non esisterà una soluzione fondamentale, il prompt injection rimarrà una minaccia attiva e un rischio reale per le organizzazioni che implementano assistenti e agenti AI."
La situazione rispecchia pattern consolidati nella sicurezza informatica. Negli ultimi cinque anni, vulnerabilità come SQL injection e memory corruption hanno continuato a fornire agli hacker gli strumenti necessari per compromettere software e siti web, nonostante decenni di contromisure. Le tecniche di prompt injection sembrano destinate a seguire lo stesso percorso, con un ciclo perpetuo di attacchi e mitigazioni che non risolve il problema alla radice.