Da Prompt Injection a XSS (Cross Site Scripting) e oltre!

Vulnerability
Artificial Intelligence
XSS
Prompt Injection

In breve

Abbiamo effettuato alcuni test a campione in diversi siti web e applicazioni di terze parti che integrano i modelli di intelligenza artificiale DeepSeek e\o Claude individuando, in molti troppi casi, una vulnerabilità “critica”.

Il problema risiede in una insufficiente sanificazione dell’output generato dall’IA. Questa lacuna permette a un potenziale attaccante di sfruttare la capacità dei modelli di generare codice. Creando prompt specifici (tecnica nota come prompt injection indiretta o diretta a seconda del contesto), è possibile indurre DeepSeek e Claude a produrre payload malevoli, tipicamente codice Cross-Site Scripting (XSS).

Se l’applicazione che riceve questo output lo renderizza direttamente nel browser dell’utente senza adeguata validazione o codifica (escaping), il codice malevolo viene eseguito. Questo apre la porta a diversi rischi, tra cui il dirottamento della sessione utente (session hijacking), il furto di credenziali, e altre azioni che possono portare alla completa compromissione dell’account sulla piattaforma vulnerabile.

Dettagli Tecnici e Meccanismo della Vulnerabilità

Il nucleo della vulnerabilità sfrutta una caratteristica intrinseca dei modelli DeepSeek e Claude : la capacità di generare frammenti di codice, inclusi HTML e JavaScript, quando richiesto tramite prompt specifici.

Sebbene questa sia una funzionalità potente e utile per molti casi d’uso legittimi (es. assistenza alla programmazione, generazione di contenuti web), diventa un vettore di attacco critico se l’output non è gestito in modo sicuro dall’applicazione che lo utilizza.

La vulnerabilità si concretizza quando l’applicazione di terze parti:

  1. Accetta input dall’utente (o da altre fonti non fidate) per costruire un prompt.
  2. Invia il prompt al modello AI.
  3. Riceve la risposta generata.
  4. Incorpora questa risposta direttamente o con insufficiente sanificazione all’interno della pagina HTML che viene poi inviata al browser dell’utente finale.

 

Test condotti su diverse piattaforme pubbliche che utilizzano agenti basati su DeepSeek e Claude hanno rivelato che, in una percentuale significativa di casi, richiedere al modello di generare o riformulare payload XSS noti produce un output che viene successivamente renderizzato in modo non sicuro, abilitando di fatto la vulnerabilità lato client.



Qualche Esempio

Il Percorso dell'Attaccante (Vettore di Attacco XSS)

  1. Identificazione: L’attaccante individua un’applicazione web che utilizza DeepSeek e\o Claude.
  2. Creazione del Prompt: L’attaccante formula un prompt progettato per far sì che generi o riscriva un payload XSS. 
  3. Iniezione: L’attaccante invia il prompt malevolo all’applicazione vulnerabile.
  4. Generazione e Rendering: Il modello genera l’output contenente il payload XSS. L’applicazione di terze parti, fallendo nella sanificazione, lo include nella pagina HTML restituita alla vittima.
  5. Esecuzione: Il browser della vittima carica la pagina, interpreta il codice HTML e JavaScript, ed esegue lo script malevolo iniettato dall’attaccante nel contesto del dominio dell’applicazione vulnerabile.

Rischi e Impatto

L’esecuzione di codice XSS nel browser di una vittima può avere conseguenze gravi:

  • Furto di Cookie di Sessione: L’attaccante può rubare il cookie di sessione della vittima e impersonificarla (Session Hijacking), ottenendo pieno accesso al suo account.
  • Furto di Credenziali: Lo script può intercettare credenziali inserite in form di login o altri dati sensibili.
  • Azioni Non Autorizzate: L’attaccante può eseguire azioni sull’applicazione a nome della vittima (es. modificare impostazioni, inviare messaggi, effettuare transazioni).
  • Phishing Mirato: Reindirizzare la vittima verso siti di phishing controllati dall’attaccante.
  • Defacement: Modificare l’aspetto o il contenuto del sito web visualizzato dalla vittima.
  • Distribuzione di Malware: Utilizzare la vulnerabilità come punto di partenza per distribuire malware sul dispositivo della vittima.

Considerazioni sulla Responsabilità

È fondamentale chiarire un punto: sebbene sia il modello AI a generare il contenuto potenzialmente dannoso su istruzione, la responsabilità primaria della vulnerabilità risiede nell’applicazione di terze parti che lo integrano. È compito degli sviluppatori dell’applicazione implementare misure di sicurezza robuste per gestire qualsiasi input o dato proveniente da fonti esterne, inclusi i modelli AI.

La pratica corretta richiede di trattare sempre l’output generato dall’IA come non attendibile e di applicare meccanismi rigorosi di sanificazione e/o output encoding (come la codifica HTML delle entità) prima di inserirlo in una pagina web. Attribuire la colpa unicamente al modello AI è un’interpretazione imprecisa; la vulnerabilità emerge dalla gestione insicura del suo output da parte dell’applicazione.

Contattaci

Se hai bisogno di altre informazioni contattaci alla mail: [email protected]