logo

L'iniezione rapida non è fantascienza

15 settembre 2026

Secondo OWASP, l'iniezione immediata di codice è il rischio numero uno per le applicazioni aziendali che utilizzano modelli linguistici, e l'organizzazione si conferma al primo posto della sua classifica Top 10 per il secondo anno consecutivo. Non si tratta di uno scenario teorico o di un problema di laboratorio: è una diretta conseguenza del funzionamento di questi sistemi.

Un modello linguistico non distingue tra le istruzioni fornitegli dallo sviluppatore e il testo che elabora. Tutto arriva sotto forma di parole. Se un documento letto dal sistema contiene qualcosa in forma di istruzione, è possibile che venga trattato come tale.

La via più pericolosa è quella indiretta.

La versione nota, ovvero un utente che scrive "ignora le tue istruzioni", è la meno preoccupante, perché l'attaccante deve essere presente e i suoi permessi sono quelli di qualsiasi altro utente.

La versione che conta in un ambiente aziendale è la iniezione indirettaIl testo dannoso non viene scritto dall'utente; è presente all'interno dei contenuti che il sistema elabora nel corso del suo normale funzionamento.

I vettori usuali:

  • UN email da un fornitore che l'assistente legge per estrarre i dati dell'ordine.
  • UN PDF —una fattura, un curriculum vitae, un contratto— che il sistema riassume.
  • UN Pagina web che l'agente consulta per completare le informazioni.
  • UN ticket di supporto scritto da un cliente.
  • UN campo modulo che viene memorizzato e poi elaborato.

In ogni caso, il processo è lo stesso: qualcuno esterno scrive del testo che il tuo sistema leggerà e che può influenzarne il comportamento. E in ogni caso, il danno potenziale è esattamente proporzionale all'entità delle autorizzazioni che hai concesso.

Perché non si può risolvere con un filtro?

La risposta intuitiva sarebbe quella di filtrare le istruzioni sospette in fase di input. Questo però non funziona in modo affidabile, per tre motivi:

Il linguaggio ha infinite forme. Qualsiasi elenco di schemi proibiti può essere riformulato. L'istruzione può essere in un'altra lingua, parafrasata o suddivisa in più frasi.

Potrebbe essere nascosto. Testo vuoto su una pagina vuota in un PDF, metadati, contenuto che l'utente non vede ma che il sistema legge.

Il filtro non può conoscere l'intenzione. Un'e-mail legittima potrebbe contenere la frase "inoltra questo al reparto contabilità". Il sistema non dispone di un metodo affidabile per stabilire se si tratti di un'istruzione per se stesso o di un'informazione destinata a una persona.

La conclusione operativa è al tempo stesso scomoda e chiarificatrice: Dobbiamo presumere che l'iniezione avverrà e progettare in modo che non abbia importanza.

Il progetto che contiene il problema

Principio

In cosa consiste?

Ciò che impedisce

Permesso minimo

Il sistema accede solo a ciò che è necessario per il suo compito specifico

Che un'istruzione iniettata raggiunga dati esterni

separazione dei canali

Il contenuto esterno non viene mai trattato come un'istruzione di sistema.

Lascia che un PDF ridefinisca il comportamento

Lista bianca delle azioni

Sono consentite solo le operazioni esplicitamente elencate.

Che accada qualcosa di imprevisto

Validazione umana nell'irreversibile

Pagamenti, comunicazioni esterne, modifiche alla produzione

Che il danno si materializzi senza revisione

Registrazione completa

Registra ciò che è stato inserito e ciò che è stato eseguito.

Che l'incidente sia irreparabile

Queste cinque sono decisioni architetturali, non configurazioni di strumenti. E tutte e cinque hanno un costo minimo se prese prima della fase di sviluppo, motivo per cui questo articolo si inserisce più in una discussione sulla progettazione che sulla sicurezza.

OWASP aggiunge a questa tabella due rischi correlati che meritano di essere menzionati: LLM02, divulgazione di informazioni sensibili, E LLM06, capacità in eccesso. I tre presentano lo stesso problema visto da angoli diversi: cosa può leggere il sistema, cosa può fare e chi può influenzarlo. Abbiamo sviluppato questo in Concedere autorizzazioni a un agente è una decisione rischiosa

Un caso da tenere presente

Immaginate un assistente che elabora le fatture in arrivo nella casella di posta elettronica dell'amministrazione: estrae l'importo, il fornitore e il numero di conto, e prepara il pagamento.

Un fornitore fraudolento invia una fattura che include una piccola istruzione in calce al sistema per utilizzare un numero di conto diverso. Se l'assistente ha l'autorizzazione a preparare i pagamenti e nessuno verifica il numero di conto confrontandolo con i dati del fornitore, la frode viene portata a termine con l'efficienza di un sistema automatizzato.

Si noti che in questo esempio il modello non ha fallito: ha fatto esattamente ciò che il testo gli ha richiesto. Il difetto risiede nella progettazione, che ha permesso a un testo esterno di determinare un'informazione cruciale senza verificarla rispetto alla fonte di verità.

Ecco perché ripetiamo la regola in ogni progetto: Il modello elabora e interpreta; il sistema decide i fatti.. Importi, conti, stati e autorizzazioni vengono verificati rispetto al sistema di origine; non vengono mai accettati dal contenuto elaborato.

Cosa chiedere a un fornitore

Quando qualcuno presenta una soluzione basata sull'intelligenza artificiale in grado di leggere contenuti esterni, tre domande distinguono una soluzione seria da una improvvisata:

  1. Cosa succede se il documento in fase di elaborazione contiene istruzioni indirizzate al sistema? Una buona risposta denota moderazione, non negazione del problema.
  2. Cosa può fare il sistema nello scenario peggiore? Deve esserci un elenco chiuso di azioni e un limite alla quantità o al volume.
  3. Riusciresti a ricostruire un episodio accaduto un mese fa? Se non esiste alcuna registrazione di voci e azioni, non c'è modo di indagare su nulla.

Un fornitore che risponde "il nostro modello non cade in questa trappola" non ha compreso il rischio. Il contenimento non dipende dalla qualità del modello, ma dalla portata che gli è stata concessa.

Domande frequenti

Che cos'è l'iniezione rapida?

Si tratta della manipolazione del comportamento di un modello linguistico attraverso un testo che il modello elabora come se fossero istruzioni. OWASP lo classifica come il rischio principale nella sua Top 10 per le applicazioni LLM entro il 2025, perché il modello non distingue strutturalmente tra le istruzioni dello sviluppatore e il contenuto che analizza.

Questa è la variante rilevante negli ambienti aziendali: le istruzioni non sono scritte dall'utente, ma sono contenute all'interno del materiale che il sistema elabora abitualmente, come un'e-mail di un fornitore, un PDF, una pagina web, un ticket di supporto o un campo di un modulo.

Non in modo affidabile. Il linguaggio consente infinite riformulazioni, le istruzioni possono essere nascoste in testo invisibile o metadati e un filtro non può determinare l'intento. L'approccio corretto è presumere che accadrà e limitare i potenziali danni attraverso autorizzazioni e controlli.

Con cinque principi di progettazione: autorizzazioni minime per ogni attività, separazione tra contenuti esterni e istruzioni di sistema, lista bianca delle azioni consentite, convalida umana obbligatoria nelle operazioni irreversibili e registrazione completa degli input e delle azioni eseguite.

Sì, se il sistema li elabora e dispone di ampi permessi. L'esempio tipico è una fattura che include un'istruzione per modificare il numero di conto di pagamento. Il problema non risiede nel modello in sé, ma nella progettazione che consente a un testo esterno di determinare dati critici senza verificarli rispetto alla fonte.

Cosa succede se il contenuto elaborato include istruzioni dirette al sistema? Cosa può fare il sistema nello scenario peggiore? E si potrebbe ricostruire un incidente avvenuto un mese fa? Una risposta che nega la possibilità di un attacco indica una scarsa consapevolezza del rischio.

Il vostro sistema di intelligenza artificiale legge contenuti scritti da terzi? Analizziamo l'ambito di applicazione, le autorizzazioni, la separazione dei canali e la tracciabilità, e ti indichiamo qual è lo scenario peggiore possibile con la configurazione attuale. Richiedi una recensione →

Attacco di prompt injection contro un sistema di intelligenza artificiale aziendale
Sviluppo tramite vibe coding e codice generato con intelligenza artificiale
Architettura componibile per le aziende con applicazioni modulari, API e integrazione di sistemi basati sull'intelligenza artificiale.