“Costruisci un castello, non un muro. I muri cadono; gli strati ti danno il tempo di accorgertene e reagire.”
Difesa in profondità, perché il modello ti tradirà
Non puoi fidarti del modello. Non perché sia malevolo, ma perché segue istruzioni provenienti da contenuto non attendibile e non puoi impedirlo in modo affidabile. Quindi lo avvolgi in strati, ciascuno presupponendo che lo strato interno possa fallire: filtra ciò che entra, vincola ciò che il modello può fare, filtra ciò che esce, e sorveglia tutto. Nessuno strato regge da solo.
Strato 1: controllare l'input
Prima che il contenuto raggiunga il modello, hai l'occasione di ridurre il rischio. Valida e vincola l'input dell'utente dove il formato lo consente. Analizza il contenuto recuperato e fornito dall'utente alla ricerca di pattern di injection evidenti e di payload malevoli noti. Rimuovi o neutralizza il testo nascosto (caratteri invisibili, bianco su bianco, metadati sospetti) nei documenti. Questo intercetta gli attacchi pigri e alza il costo degli altri, ma trattalo come attrito, mai come un muro, perché un payload determinato passa comunque.
Strato 2: vincolare ciò che il modello può fare
È lo strato più robusto, e quello che regge a prescindere da quanto è astuto l'attacco. Se il modello può fare solo poco, un modello compromesso può fare solo poco. Tutto qui riguarda la capacità, non il rilevamento.
- Privilegio minimo: ogni tool e fonte di dati delimitati esattamente a ciò che l'attività richiede, niente "per ogni evenienza".
- Zone di fiducia separate: contenuto non attendibile e azioni privilegiate non si incontrano mai in una singola chiamata al modello senza una barriera (l'idea del dual-LLM).
- Umano nel ciclo: le azioni irreversibili o ad alto rischio richiedono un'approvazione; il modello propone, una persona dispone.
- Sandbox: l'esecuzione dei tool e ogni codice generato dal modello vengono eseguiti in isolamento, senza un percorso verso il resto del tuo sistema.
- Limiti di frequenza e di budget: tetti per utente in modo che l'abuso non possa esaurire le risorse né far lievitare la fattura.
Strato 3: verificare l'output
Prima che l'output del modello raggiunga un utente o inneschi un'azione, ispezionalo. Validalo rispetto allo schema atteso, e rifiuta tutto ciò che è malformato. Analizza gli output alla ricerca di secret divulgati, dati personali o altri dati che non dovrebbero comparire nella risposta. Per le azioni, conferma che la chiamata al tool proposta rientri nell'insieme consentito con i parametri corretti. Il filtro di output è la tua ultima occasione per intercettare una compromissione che gli strati di input e di capacità hanno mancato.
Strato 4: sorvegliare e reagire
Non impedirai ogni attacco, quindi devi essere in grado di vederli. Registra ogni prompt, recupero, chiamata di tool, output e decisione (le stesse tracce richieste dal capitolo sulle valutazioni del corso sulla costruzione, che fanno doppio servizio come pista di audit di sicurezza). Sorveglia le anomalie: picchi di rifiuti, pattern insoliti di chiamate ai tool, tentativi di estrarre il prompt di sistema, costi fuori controllo. E disponi di un percorso per gli incidenti: come rilevi, contieni e rispondi quando (non se) qualcosa passa?
La sorveglianza è anche il modo in cui impari. Ogni vero attacco che intercetti diventa un caso di valutazione avversariale e un segnale di taratura per i tuoi filtri. La postura di sicurezza di un sistema di IA in produzione non è uno stato che raggiungi; è un ciclo che fai girare.
Red team: attacca te stesso per primo
Non aspettare che un attaccante trovi le falle. Fare red team significa attaccare deliberatamente il tuo stesso sistema: provare ogni injection, jailbreak e abuso di capacità a cui riesci a pensare, prima del rilascio e di continuo dopo. Il risultato non è solo un elenco di bug; è un insieme crescente di valutazioni avversariali che previene le regressioni.
Rendilo un ciclo, non un evento isolato. Ogni scoperta ottiene una correzione e un test permanente, in modo che la stessa falla non possa mai riaprirsi inosservata. È esattamente la disciplina di valutazione del corso sulla costruzione, puntata sulla sicurezza anziché sulla qualità, ed è la differenza tra un sistema sicuro oggi e uno che resta sicuro man mano che lo modifichi.
Una riga per ciascuno
- Difendi in profondità: presupponi che il modello seguirà istruzioni ostili e avvolgilo in strati che ciascuno recupera il guasto del precedente.
- Controlla gli input (attrito), vincola le capacità (lo strato robusto), verifica gli output (ultima rete), e sorveglia tutto (vedi gli attacchi).
- Il vincolo di capacità batte il rilevamento: la domanda è cosa può fare un modello compromesso, non se può essere ingannato.
- Fai red team di continuo, trasformando ogni scoperta in una correzione più una valutazione avversariale permanente: la sicurezza è un ciclo, non una casella da spuntare.
Dove andare ora