Cos’è la prompt injection?

Alessandro FumagalliIntelligenza artificiale

La prompt injection è una tecnica di attacco contro i sistemi basati su LLM: consiste nell’inserire nei contenuti che il modello elabora (testi, ma anche immagini, audio o documenti nel caso dei modelli multimodali) delle istruzioni capaci di modificarne il comportamento, che prevalgono su quelle di chi ha progettato il sistema. Le conseguenze dipendono da come è costruito il sistema e da che cosa è autorizzato a fare, per esempio leggere documenti, inviare email o accedere ad altri programmi; tra le più comuni ci sono una risposta indesiderata, l’esfiltrazione di dati riservati (data exfiltration), cioè il loro trasferimento non autorizzato all’esterno, dove possono essere diffusi o usati per un ricatto, o, nei sistemi che possono agire, un’azione non autorizzata.

L’attacco sfrutta una caratteristica di fondo di questi modelli: istruzioni e dati arrivano nello stesso flusso, e il modello non sempre riesce a distinguere i comandi legittimi da quelli inseriti da altri. Per questo l’OWASP, la fondazione internazionale che si occupa di sicurezza del software, colloca la prompt injection al primo posto tra i rischi per le applicazioni basate su LLM nella sua classifica 2025. A giugno 2026 anche Gartner l’ha inserita tra le quattro minacce critiche in cui chi attacca ha oggi un vantaggio significativo sulle organizzazioni.

Il nome “prompt injection” ha cominciato a diffondersi con un post del programmatore britannico Simon Willison, che lo ha proposto nel settembre 2022, dopo che il data scientist Riley Goodside aveva mostrato come bastasse scrivere a GPT-3 di “ignorare le istruzioni precedenti” per fargli eseguire un compito diverso da quello previsto. La scelta del nome si richiama, per analogia, alla SQL injection, un attacco noto da tempo in informatica, che consiste nell’inserire comandi dannosi nei dati inviati a un database.

La prompt injection è un concetto vicino al jailbreak, con cui viene spesso confusa: il jailbreak punta a far aggirare al modello le sue regole di sicurezza, per esempio per ottenere contenuti che di norma rifiuterebbe; la prompt injection, più in generale, mira a sostituire le istruzioni previste con altre. I due fenomeni si sovrappongono spesso, perché molte tecniche per nascondere o mascherare le istruzioni servono a entrambi gli scopi.

Come funziona la prompt injection?

Si distinguono diverse forme, a seconda di dove si trovano le istruzioni manipolatorie:

  • prompt injection diretta: le istruzioni manipolatorie si trovano nella richiesta stessa, scritte da chi usa il sistema o contenute in un file che allega di proposito. Un esempio tipico è chiedere a un assistente di ignorare le regole ricevute e di mostrare le indicazioni riservate con cui è stato configurato. È quanto è successo nel febbraio 2023, pochi giorni dopo il lancio della chat di Bing: uno studente di Stanford è riuscito in questo modo a farle rivelare il nome in codice interno e parte delle sue istruzioni;
  • prompt injection indiretta: le istruzioni sono nascoste nei contenuti che il sistema legge per svolgere il suo compito, come pagine web, email, documenti o file condivisi. In questo caso chi usa il sistema di solito non è l’autore dell’attacco ma la vittima, e spesso non si accorge di nulla: il testo malevolo può essere invisibile a una persona, per esempio scritto in bianco su sfondo bianco, ma resta leggibile per il modello. Questa forma è stata analizzata in modo sistematico nel 2023 dallo studio Not what you’ve signed up for di Kai Greshake e coautori, che hanno mostrato attacchi funzionanti contro sistemi reali, tra cui la chat di Bing;
  • prompt injection memorizzata (stored): le istruzioni vengono salvate dove il sistema attingerà più tardi, come la memoria a lungo termine di un assistente, una base di conoscenza o i documenti usati dalla RAG. Come spiega Sysdig, azienda specializzata nella sicurezza delle infrastrutture cloud, possono restare inattive a lungo e riattivarsi in conversazioni successive, anche su compiti che non hanno nulla a che fare con l’attacco originario;
  • prompt injection tramite skill o plugin: le istruzioni malevole si trovano dentro un’estensione che si installa per ampliare le capacità di un assistente, come spieghiamo più avanti.

Oltre ai diversi canali di attacco, esistono molte tecniche per costruire e nascondere le istruzioni malevole: CrowdStrike ne cataloga più di 200 nella sua tassonomia. Tra quelle più citate ci sono:

  • Algorithmic Payload Decomposition (scomposizione del payload): il comando dannoso viene diviso in più parti o messaggi che, presi singolarmente, sembrano innocui, così da sfuggire ai filtri basati su parole chiave;
  • Trigger-Activated Rule Addition (istruzioni dormienti): una regola nascosta resta inattiva finché una frase, un evento o una condizione stabiliti da chi attacca non la attivano;
  • Special Token Injection: l’imitazione dei delimitatori e dei segnali di controllo che il modello associa alle istruzioni di sistema, per confondere il confine tra istruzioni e dati;
  • Cognitive Token Suppression: tecniche che allontanano il modello dalle parole e dagli schemi che usa di solito per rifiutare una richiesta, aggirandone così le protezioni;
  • offuscamento: caratteri invisibili, lingue diverse, codifiche particolari o testo capovolto, come nella tecnica FlipAttack, che inverte l’ordine di lettere o parole e chiede poi al modello di ricostruire la richiesta;
  • Multimodal Injection: comandi nascosti in immagini, anche con tecniche di steganografia, o in file audio trascritti dai sistemi di riconoscimento vocale.

Che cos’è la prompt injection tramite skill o plugin?

Molti assistenti e agenti di IA possono essere estesi con skill, plugin o connettori: pacchetti che aggiungono nuove capacità e che contengono in genere una descrizione, un documento di istruzioni ed eventualmente degli script da eseguire. Quando una skill viene installata, il sistema carica queste istruzioni nel proprio contesto e le tratta come indicazioni affidabili, spesso con permessi più ampi di quelli concessi ai contenuti esterni. Chi controlla o manomette una skill, magari distribuendola come strumento utile in un catalogo o in un archivio pubblico, può quindi inserirvi istruzioni malevole che il sistema eseguirà come se fossero legittime. Per questo il rischio riguarda la catena di fornitura del software, come già accade con le librerie e i pacchetti di codice.

Le ricerche pubblicate tra il 2025 e il 2026 descrivono attacchi di diverso tipo: il trasferimento non autorizzato di file e credenziali, la cancellazione o la cifratura di dati, l’installazione di accessi nascosti, l’ampliamento dei permessi del sistema. Le istruzioni dannose possono essere mescolate a passaggi del tutto innocui, nascoste negli script collegati o scritte in modo da imitare il tono di istruzioni esperte, che il modello tende a considerare più autorevoli. Un altro punto debole riguarda le approvazioni: se chi usa l’assistente autorizza una volta per tutte una certa operazione, scegliendo per esempio di non ricevere più richieste di conferma, le azioni malevole successive possono passare senza ulteriori controlli.

Uno studio del 2025 ha mostrato che le skill rendono possibile una nuova classe di prompt injection realistiche e molto semplici da realizzare, e il successivo benchmark Skill-Inject ha misurato la vulnerabilità di diversi agenti a questo tipo di attacco. Le difese indicate dai ricercatori combinano più livelli: installare solo skill di provenienza verificata, possibilmente firmate dallo sviluppatore; limitarne i permessi a quelli strettamente necessari ed eseguirle in ambienti isolati; chiedere una conferma esplicita prima delle azioni con effetti rilevanti; tenere traccia dell’origine di ogni istruzione caricata dal sistema.

Perché la prompt injection è un rischio?

In un semplice chatbot le conseguenze restano spesso limitate a una risposta sbagliata o fuori luogo. Il rischio cresce quando il modello è collegato a dati e strumenti, come accade negli agenti di intelligenza artificiale che leggono la posta, consultano documenti aziendali, navigano sul web o eseguono operazioni per conto di chi li usa. In questi casi un’istruzione nascosta può spingere il sistema a esfiltrare informazioni riservate, modificare dati o compiere azioni non richieste.

Simon Willison ha descritto la combinazione più pericolosa come una “triade letale” (lethal trifecta): un sistema che ha accesso a dati privati, legge contenuti di cui non si conosce la provenienza e può comunicare verso l’esterno. Basta che un’email ricevuta contenga istruzioni malevole perché un assistente con accesso alla casella di posta possa essere indotto a inoltrare dati riservati a chi lo attacca.

Il problema è difficile da risolvere alla radice. Nella SQL injection esistono tecniche consolidate che impediscono al database di interpretare i dati come comandi. Nei modelli linguistici, invece, istruzioni e dati non sono separati: per questo il National Cyber Security Centre britannico, in un articolo del dicembre 2025, osserva che la prompt injection potrebbe non essere mai eliminata del tutto e va trattata come un rischio residuo da ridurre e gestire.

Come prevenire i rischi associati alla prompt injection?

Non esiste una soluzione definitiva: gli sviluppatori addestrano i modelli a riconoscere e ignorare le istruzioni sospette, ma nessuna difesa è infallibile. Le indicazioni di OWASP, NCSC e Gartner si muovono quindi su due piani: prevenire gli attacchi, per quanto possibile, e limitarne le conseguenze quando vanno a segno. Per la prevenzione, tra le misure più citate:

  • adottare un approccio zero trust: nessun contenuto esterno, come pagine web, email e documenti, e nessuna risposta del modello vanno considerati affidabili per definizione. I contenuti vanno tenuti distinti dalle istruzioni e i risultati verificati prima di usarli, come raccomanda anche l’EC-Council;
  • concedere al sistema solo gli accessi e i permessi strettamente necessari al suo compito;
  • installare skill, plugin e connettori solo da fonti verificate, controllandone il contenuto e i permessi richiesti;
  • filtrare e validare gli input, sapendo che i filtri bloccano i casi più semplici ma non quelli più sofisticati;
  • integrare i test di prompt injection nello sviluppo del sistema e ripetere nel tempo esercitazioni che simulano attacchi (red teaming), perché le tecniche cambiano rapidamente.

Anche chi usa un assistente può ridurre il rischio: collegare solo gli strumenti e i dati che servono davvero, fare attenzione quando gli si chiede di elaborare contenuti di provenienza sconosciuta e verificare le azioni che propone prima di approvarle.

Come mitigare le conseguenze di una prompt injection?

Poiché nessuna misura preventiva è completa, conta anche ridurre i danni di un attacco riuscito. Tra le pratiche indicate:

  • chiedere una conferma umana prima delle azioni con effetti rilevanti, come inviare messaggi, effettuare pagamenti o modificare dati;
  • monitorare in tempo reale le azioni del sistema per individuare comportamenti anomali, come l’accesso a dati non pertinenti o l’invio di informazioni verso l’esterno;
  • fissare limiti alle operazioni che il sistema può compiere senza approvazione, per esempio un tetto alle spese o ai dati che può trasferire;
  • eseguire le azioni del sistema in ambienti isolati, così che un’istruzione malevola non possa raggiungere il resto dell’infrastruttura;
  • conservare i registri delle attività in archivi separati, che il sistema non può modificare, per poter ricostruire che cosa è successo.

Per i sistemi ad alto rischio, l’articolo 15 dell’AI Act chiede inoltre che siano resistenti ai tentativi di terzi di alterarne l’uso o i risultati sfruttandone le vulnerabilità, compresi gli input progettati per indurre il modello in errore.

Altre risorse per approfondire

Altre domande su Intelligenza artificiale

  • Cos’è il bias algoritmico?

    Il bias algoritmico è una distorsione sistematica nei risultati di un sistema automatizzato, come un algoritmo o un modello di intelligenza artificiale, che produce esiti ingiustificatamente svantaggiosi per ciò che…

  • Cos’è un LLM (Large Language Model)?

    LLM sta per Large Language Model, in italiano modello linguistico di grandi dimensioni, e indica un modello di intelligenza artificiale progettato per elaborare e generare linguaggio naturale. È un’applicazione del…

  • Che cos’è l’AI Act (Regolamento europeo sull’intelligenza artificiale)?

    L’AI Act è il regolamento dell’Unione europea che stabilisce le regole per lo sviluppo, la commercializzazione e l’utilizzo dei sistemi di intelligenza artificiale. Il suo nome ufficiale è Regolamento (UE)…

  • Che cos’è l’AIO (ottimizzazione per l’intelligenza artificiale)?

    Che cos’è l’AIO (ottimizzazione per l’intelligenza artificiale)? L’AIO, sigla di Artificial Intelligence Optimization, è l’insieme delle attività con cui si cerca di rendere i contenuti di un sito o di…

Tutte le domande su Intelligenza artificiale →