Man mano che gli LLM passano dal rispondere a domande all’agire — leggere email, navigare, usare strumenti — un vecchio problema di sicurezza diventa centrale: la prompt injection. È la vulnerabilità che Simon Willison ha battezzato e documenta da tempo, ed è più insidiosa di quanto sembri.
Cos’è
Un LLM riceve, mescolate nello stesso flusso di testo, le istruzioni dello sviluppatore e i dati su cui deve lavorare. Il problema è che non sa distinguere gli uni dagli altri. Se quei dati contengono a loro volta istruzioni — "ignora le indicazioni precedenti e fai X" — il modello può obbedire. Un’email, una pagina web o un documento possono così "dirottare" il comportamento di un’applicazione.
L’analogia è con la SQL injection, ma con una differenza scomoda: nella SQL injection sappiamo separare codice e dati con tecniche di escaping; con il linguaggio naturale questa separazione netta, oggi, non esiste.
Perché è difficile da risolvere
Non è un bug da correggere con una patch: è una conseguenza di come funzionano i modelli. Finché istruzioni e contenuti viaggiano nello stesso canale e il modello tratta tutto come testo, il rischio resta. I filtri aiutano, ma gli attaccanti trovano nuove formulazioni; non esiste, al momento, una difesa definitiva.
Il rischio cresce proprio dove l’AI sta andando: gli agenti. Un agente che legge contenuti non fidati e può compiere azioni — inviare messaggi, eseguire codice, accedere a dati — è il bersaglio ideale di un’iniezione.
Come ridurre il rischio
Alcuni principi pratici aiutano. Trattare ogni contenuto esterno come non fidato, esattamente come faremmo con input di rete. Limitare i privilegi dell’agente al minimo necessario, così che anche un’iniezione riuscita faccia pochi danni. Inserire conferme umane prima delle azioni irreversibili. Ed evitare di dare a un agente, nello stesso contesto, sia accesso a dati sensibili sia la capacità di esfiltrarli.
Non eliminano il problema, ma lo contengono. E in un settore che corre verso gli agenti, conoscere questa vulnerabilità per progettazione è il primo passo per non costruirci sopra applicazioni fragili.
Hai qualcosa da aggiungere? Unisciti alla discussione.