Se con “hacker degli LLM” intendi persone che cercano di attaccare o manipolare sistemi basati su modelli linguistici, devi distinguere almeno quattro minacce.
Qualcuno inserisce un testo apparentemente innocuo che contiene istruzioni per il modello, ad esempio:
«Ignora le istruzioni precedenti e fai X.»
È particolarmente pericoloso quando l'LLM può accedere a file, database, email, browser o altri strumenti.
Difesa: considera qualsiasi testo proveniente dall'esterno come dato non affidabile, non come istruzione.
Una chiave API dell'LLM rubata può permettere a qualcuno di utilizzare il tuo account a tue spese.
Difesa:
È il rischio più serio.
Un LLM che può soltanto rispondere ha una superficie d'attacco relativamente limitata.
Un LLM che può:
leggere file ↓ eseguire programmi ↓ accedere a Internet ↓ modificare dati ↓ inviare email
può invece diventare un intermediario attraverso cui un attaccante cerca di raggiungere il sistema.
La regola fondamentale è:
non dare al modello più potere di quello strettamente necessario.
E soprattutto non affidargli direttamente operazioni irreversibili o amministrative.
Anche senza parlare direttamente con l'LLM, un aggressore può cercare di inserire istruzioni nascoste dentro:
Il modello potrebbe leggerle e interpretarle erroneamente come istruzioni.
Per questo bisogna mantenere una separazione rigorosa:
istruzioni del sistema → dati dell'utente → dati recuperati da Internet/documenti.
Non devono avere automaticamente lo stesso livello di autorità.
Io userei questo principio:
Non fidarti dell'LLM, anche quando è il tuo LLM.
Non perché sia necessariamente “cattivo”, ma perché può essere manipolato, può sbagliare e può interpretare un dato come un'istruzione.
Quindi:
LLM │ ┌──────┴──────┐ │ │ input output │ │ VALIDAZIONE VALIDAZIONE │ │ └──────┬──────┘ │ SISTEMA
Il modello suggerisce; il programma che sta intorno al modello controlla.
Pensa a cinque barriere:
Anche se una barriera viene aggirata, le altre dovrebbero impedire che l'attacco diventi una compromissione completa.