
Un singolo attacco di prompt injection andato a buon fine può costare a un'azienda milioni. Secondo il Cybercrime Report 2025 di Cybersecurity Ventures, il costo globale della criminalità informatica raggiungerà i 10,5 trilioni di dollari. Una frazione crescente di questa cifra deriva da vulnerabilità specifiche dei modelli linguistici, dove il prompt injection regna sovrano. È il rischio numero uno nella classifica OWASP Top 10 for LLM Applications, confermato anche per il 2025.
Questo non è un problema di configurazione o un bug da correggere con una patch. È una vulnerabilità intrinseca nel modo in cui gli agenti AI processano le informazioni: non sono in grado di distinguere in modo affidabile tra le istruzioni fornite da uno sviluppatore e i dati (potenzialmente malevoli) che elaborano da fonti esterne. Il risultato è che un'istruzione nascosta in un'email o in un documento può dirottare un agente AI, spingendolo a esfiltrare dati sensibili o eseguire azioni non autorizzate.
Comprendere come prevenire il prompt injection negli agenti AI non è più una finezza tecnica, ma una necessità operativa. Significa proteggere i dati aziendali, garantire l'affidabilità dei processi automatizzati e mantenere la fiducia dei clienti. Ignorare questa minaccia equivale a lasciare una porta spalancata nel cuore dei propri sistemi.
L'approccio convenzionale alla sicurezza applicativa, basato su firewall e analisi di input statici, si rivela inadeguato. Un attacco di prompt injection non sfrutta una vulnerabilità del codice nel senso classico; manipola la logica stessa del modello linguistico. La superficie di attacco è vasta e comprende qualsiasi dato esterno che l'agente può processare: email, PDF, pagine web, persino le descrizioni degli strumenti a cui si collega.
Per questo motivo, pensare di risolvere il problema con un filtraggio basato su liste di parole chiave o con la sola validazione degli input è un'illusione. Gli aggressori usano tecniche sempre più sofisticate, come istruzioni multilingua o codificate, per aggirare queste difese superficiali. Il vero cambio di rotta sta nell'accettare che qualsiasi dato esterno è potenzialmente un'istruzione ostile. Un agente AI deve operare in un ambiente che perimetra le sue azioni a prescindere dalla sua presunta "comprensione" delle istruzioni.
Nel corso dei miei progetti più recenti, ho visto team implementare agenti potentissimi, in grado di interagire con database e CRM, ma con difese contro il prompt injection che si limitavano a un lungo e complesso system prompt. Questo equivale a dare le chiavi di un'auto da corsa a qualcuno, sperando che rispetti il limite di velocità solo perché glielo abbiamo chiesto gentilmente. La sicurezza deve essere imposta dall'architettura, non delegata alla buona volontà del modello.
Avendo stabilito che non possiamo fidarci completamente del modello per auto-regolarsi, la strategia di difesa deve spostarsi sull'ambiente in cui l'agente opera. L'obiettivo è limitare il "raggio d'azione" di un potenziale attacco, rendendo impossibile per un agente compromesso causare danni significativi. Questo si traduce in un approccio a più livelli che combina isolamento, controllo degli accessi e monitoraggio.
Questo approccio strutturato sposta il focus dalla prevenzione del singolo prompt alla gestione del rischio complessivo. questo riguarda costruire un muro invalicabile (un'impresa quasi impossibile data la natura degli LLM), ma di creare un sistema di compartimenti stagni. Se un attacco dovesse avere successo, il suo impatto rimarrebbe confinato a un'area sicura e monitorata, senza compromettere l'intera infrastruttura. Un'attenta valutazione delle [metriche di performance degli agenti AI](https://riccardogalli.com/journal/metriche-performance-agenti-ai/) diventa quindi cruciale per identificare deviazioni sospette dal comportamento atteso.
La tecnica più efficace per limitare i danni è il sandboxing. Un sandbox è un ambiente di esecuzione isolato che limita drasticamente ciò che un agente AI può fare. Se un agente viene compromesso da un'iniezione di prompt, le sue capacità malevole restano confinate all'interno di questo perimetro virtuale, incapaci di accedere al sistema host o alla rete aziendale. Esistono diverse tecnologie per implementare questo isolamento, come le micro-VM (es. Firecracker) o soluzioni basate su gVisor, che offrono un buon compromesso tra sicurezza e performance.
Un agente AI dovrebbe avere accesso solo ed esclusivamente agli strumenti e ai dati strettamente necessari per svolgere il suo compito. Se un agente è progettato per analizzare le recensioni dei clienti, non deve avere i permessi per accedere ai database finanziari. Questo principio, noto come Principio del Minimo Privilegio (PoLP), conta. Ogni strumento o API collegato all'agente deve avere permessi granulari e ogni azione deve essere registrata. In questo modo, anche se un aggressore prende il controllo, le azioni che può compiere sono estremamente limitate.
Pensare a questi attacchi in astratto è difficile. Vediamo un esempio reale. Una startup edutech di medie dimensioni, nel 2025, ha implementato un agente AI per analizzare i feedback testuali degli studenti e assegnare in automatico ticket di supporto tecnico. L'agente aveva accesso in lettura ai feedback e in scrittura al sistema di ticketing. Un ricercatore di sicurezza ha scoperto che inserendo un'istruzione nascosta nel testo di un feedback, poteva forzare l'agente a interrogare il sistema di ticketing per ottenere dati su altri utenti e a pubblicarli in un nuovo ticket pubblico.
L'attacco, di tipo indirect prompt injection, ha sfruttato la fiducia dell'agente verso la fonte dati (i feedback). La soluzione non è stata "migliorare il prompt", ma implementare un doppio livello di controllo. Primo, l'agente è stato spostato in un ambiente sandbox. Secondo, è stato introdotto un flusso di lavoro che prevedeva un secondo agente, più semplice e con permessi diversi, con il solo scopo di validare le azioni del primo. Questa architettura "Human-in-the-Loop supervisionata", di cui parlo in dettaglio nella guida al [Workflow Human-in-the-Loop con Agenti AI](https://riccardogalli.com/journal/workflow-human-in-the-loop/), ha ridotto la superficie di attacco del 95% secondo i test di penetration successivi.
Ecco le strategie di difesa multilivello che ogni sviluppatore dovrebbe implementare:
Adottare questo approccio stratificato è l'unica via per costruire sistemi AI robusti e sicuri. Non esiste una singola soluzione magica, ma una combinazione intelligente di architettura, permessi e monitoraggio consente di prevenire il prompt injection negli agenti AI in modo efficace.
No, il fine-tuning non risolve la vulnerabilità fondamentale. Può rendere un modello più incline a seguire le istruzioni desiderate, ma non elimina la sua incapacità di distinguere tra dati e comandi. Un aggressore può ancora creare prompt specifici per aggirare il comportamento appreso durante il fine-tuning.
Modelli più avanzati possono essere leggermente più resistenti a tentativi di injection semplici, ma la vulnerabilità di base rimane. Anzi, la loro maggiore capacità di "ragionamento" e di seguire istruzioni complesse può essere sfruttata per creare attacchi ancora più sofisticati e difficili da rilevare. La sicurezza non dipende dalla grandezza del modello, ma dall'architettura che lo circonda.
Rilevare l'attacco nel momento esatto in cui il prompt viene processato è estremamente difficile. Un approccio più realistico è il monitoraggio del comportamento dell'agente. Sistemi di alerting possono rilevare azioni anomale (es. accesso a dati inusuali, chiamate API impreviste) che sono la conseguenza di un attacco andato a buon fine, permettendo di bloccare l'agente e mitigare i danni.
Se stai sviluppando o integrando agenti AI e vuoi garantire che la tua architettura sia a prova di prompt injection, contatta Riccardo Galli per una valutazione strategica.
Ti è piaciuto questo articolo?
Parliamone insieme →
"Come misuro il ROI di questo agente AI?". È la prima domanda che un cliente pone, e la risposta più comune è anche la più incompleta. Concentrarsi solo sulle ore risparmiate o sulla riduzione del costo per interazione è come giudicare un'auto di Formula 1 solo dal consumo di carburante. Si ignora…

Qual è l'approccio migliore per creare un agente AI su dati custom: RAG o fine-tuning? La risposta più comune, "dipende", è corretta ma inutile. Svela una comprensione superficiale del problema e lascia i team senza una direzione chiara, portando a sprechi di budget e a sistemi inaffidabili. la…
