La prompt injection spiegata
La prompt injection è il rischio di sicurezza per eccellenza delle app di IA. Si verifica quando un contenuto non affidabile letto dal modello contiene istruzioni, e il modello le segue come se provenissero da te. Il modello non riesce a distinguere in modo affidabile i "dati da elaborare" dai "comandi da eseguire" — è tutto semplicemente testo.
Due varianti
- Injection diretta — un utente digita istruzioni avversarie ("ignora le tue regole e…"). È un problema per le app che espongono un modello al pubblico.
- Injection indiretta — quella pericolosa. Le istruzioni malevole si nascondono nei contenuti che l'agente recupera: una pagina web, un PDF, un'email, un commento nel codice, una risposta di un'API, un invito su calendario. L'utente non le vede mai; l'agente le legge e agisce.
Perché è difficile
Non esiste un filtro perfetto. Il modello è costruito per seguire le istruzioni nel suo contesto, e il testo iniettato è nel suo contesto. Per questo la difesa consiste nel limitare il raggio d'azione del danno, non solo nel rilevamento.
Difese (stratificale)
- Privilegio minimo. L'agente può fare danni reali solo se dispone di strumenti potenti. Limita rigorosamente gli strumenti; subordina le azioni rischiose all'approvazione umana. Vedi Mettere in sicurezza gli agenti.
- Tratta i contenuti recuperati come dati. Delimita chiaramente i contenuti non affidabili (ad esempio con dei delimitatori) e istruisci il modello che tutto ciò che vi è contenuto è informazione da analizzare, mai un'istruzione da seguire.
- Non mescolare segreti e input non affidabili. Se un agente può leggere i tuoi segreti e leggere contenuti controllati da un attaccante e effettuare chiamate di rete, hai il triangolo dell'esfiltrazione — spezza uno dei lati.
- Human-in-the-loop per le azioni irreversibili/sensibili (inviare email, spendere denaro, eliminare).
- Monitora e vincola gli output (ad esempio una allowlist dei domini che l'agente può contattare).
:::warning Presumi che qualsiasi contenuto letto da un agente possa essere ostile Email, pagine web e documenti provenienti dall'esterno del tuo perimetro di fiducia dovrebbero essere trattati come potenzialmente avversari per impostazione predefinita. :::