Proteggere gli agenti AI e l'uso dei tool
Limitare le azioni degli agenti autonomi.
Proteggere gli agenti AI e l'uso dei tool è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.
Perché gli agenti sono rischiosi
Un agente AI è un LLM collegato a strumenti e a un ciclo: ragiona, chiama funzioni (ricerca, esecuzione di codice, API, accesso ai file), osserva i risultati e ripete il processo finché non raggiunge un obiettivo. Questa autonomia è potente e pericolosa.
Il cambiamento fondamentale per la sicurezza è il seguente: con un chatbot semplice, un output errato è soltanto testo. Con un agente, una decisione errata diventa una azione reale: un record eliminato, un'e-mail inviata, un dollaro speso, un segreto divulgato.
Poiché contenuti non attendibili possono entrare nel ciclo di ragionamento, ogni strumento a disposizione dell'agente costituisce una superficie di attacco per l'iniezione del prompt.
Privilegio minimo per gli strumenti
Il controllo più importante in assoluto è il privilegio minimo. Assegni a ogni strumento l'ambito più ristretto che consenta comunque di svolgere il lavoro.
- Preferisca l'accesso in sola lettura a quello in lettura e scrittura; limiti le letture ai dati dell'utente corrente.
- Suddivida gli strumenti generici in strumenti più mirati (uno strumento
get_invoice, non uno strumento SQL grezzo). - Associ le credenziali dello strumento all'identità dell'utente finale, non a un account di servizio condiviso, in modo che l'agente erediti soltanto le autorizzazioni dell'utente.
# Scope queries to the authenticated user, never raw SQL
def get_invoice(invoice_id: str, *, user_id: str):
return db.query(
"SELECT * FROM invoices WHERE id=%s AND owner=%s",
(invoice_id, user_id),
)Checkpoint con intervento umano
Per le azioni ad alto impatto o irreversibili, richieda l'approvazione umana esplicita prima dell'esecuzione. L'agente propone; una persona conferma.
- Invio di e-mail o messaggi esterni.
- Transazioni finanziarie o acquisti.
- Eliminazione o sovrascrittura di dati.
- Distribuzione del codice o modifica dell'infrastruttura.
Mostri all'utente l'azione e gli argomenti esatti in un linguaggio semplice, così potrà individuare un comando iniettato o allucinato prima che venga eseguito.
Sandbox per codice e comandi
Gli agenti che eseguono codice o comandi shell devono farlo in un sandbox isolato, mai sull'host.
- Utilizzi container effimeri o microVM senza montaggi dell'host.
- Disabiliti l'accesso alla rete per impostazione predefinita; consenta soltanto il traffico in uscita esplicitamente autorizzato da un'allowlist.
- Imposti limiti di CPU, memoria e tempo per contenere codice fuori controllo o malevolo.
- Esegua il processo come utente non-root e senza privilegi, con un filesystem root in sola lettura.
docker run --rm \
--network none \
--read-only \
--user 1000:1000 \
--memory 256m --cpus 0.5 \
--pids-limit 64 \
agent-sandbox:latest python /work/task.pyInterrompere la trifecta letale
Un agente diventa uno strumento di esfiltrazione dei dati quando dispone contemporaneamente di accesso a dati privati, esposizione a contenuti non attendibili e capacità di comunicare esternamente. Questa combinazione è la trifecta letale.
Progetti il sistema in modo da rimuovere almeno uno di questi elementi in ogni flusso di lavoro:
- Isoli le sessioni che trattano contenuti non attendibili da quelle che contengono dati sensibili.
- Limiti il traffico di rete in uscita a un'allowlist rigorosa.
- Richieda l'approvazione prima di qualsiasi invio esterno quando nel contesto sono presenti dati privati.
Output non attendibile degli strumenti
I risultati degli strumenti rientrano nel contesto del modello, quindi l'output degli strumenti è un input non attendibile. Una pagina web, un file recuperato o una risposta API possono contenere istruzioni iniettate destinate alla fase di ragionamento successiva.
- Racchiuda l'output degli strumenti in delimitatori chiari e lo contrassegni come dati, non come comandi.
- Rimuova o neutralizzi il testo nascosto (commenti HTML, caratteri a larghezza zero, CSS fuori schermo).
- Limiti le dimensioni dei contenuti iniettati per ridurre lo spazio disponibile per il payload.
Non permetta mai che l'output grezzo degli strumenti determini silenziosamente la chiamata successiva senza controlli delle policy.
Allowlist delle azioni e applicazione delle policy
Non faccia affidamento sul modello perché controlli autonomamente il proprio comportamento. Applichi un livello di policy nel codice tra l'agente e ogni strumento.
- Convalidi ogni chiamata a uno strumento rispetto a un'allowlist delle azioni consentite e delle strutture degli argomenti.
- Rifiuti le chiamate che esulano dall'ambito dell'attività corrente.
- Applichi limiti di frequenza e budget per ogni strumento e per ogni utente.
Questo controllo deterministico viene eseguito indipendentemente dalla decisione del modello, quindi anche un'iniezione riuscita incontra una barriera invalicabile.
def authorize(call):
if call.name not in ALLOWED_TOOLS:
raise PolicyError("tool not allowed")
if not SCHEMA[call.name].validate(call.args):
raise PolicyError("bad arguments")
if exceeds_budget(call):
raise PolicyError("rate limit")Limitare il ciclo
I cicli autonomi possono degenerare: tentativi infiniti, chiamate ricorsive agli strumenti, spesa fuori controllo (denial-of-wallet). Li limiti.
- Imposti un numero massimo di passaggi e un numero massimo complessivo di token per attività.
- Imposti timeout basati sul tempo trascorso per l'intera esecuzione.
- Monitori il costo cumulativo e interrompa l'esecuzione al superamento della soglia.
- Rilevi i cicli (chiamate identiche ripetute) e li interrompa.
Questi limiti contrastano anche gli attacchi DoS e di consumo senza limiti (OWASP LLM10).
Rischi della memoria e dei sistemi multi-agente
La memoria persistente dell'agente e i sistemi multi-agente aggiungono una nuova superficie di attacco:
- Avvelenamento della memoria: un'iniezione scritta nella memoria a lungo termine durante una sessione influenza le sessioni successive. Convalidi e limiti l'ambito di ciò che viene persistito.
- Fiducia tra agenti: un agente compromesso può iniettare contenuti in un altro. Tratti i messaggi tra agenti come non attendibili.
- Confused deputy: un agente con privilegi agisce su richiesta di un agente con un livello di attendibilità inferiore. Trasferisca lungo la catena l'autorizzazione del principal originario.
Logging e osservabilità
Non può proteggere ciò che non può vedere. Strumenti l'intera traccia dell'agente:
- Registri ogni chiamata a uno strumento, i relativi argomenti e il risultato.
- Registri il contesto del ragionamento e tutti i contenuti recuperati per le analisi forensi.
- Generi avvisi per le anomalie: traffico in uscita inatteso, uso di privilegi, rifiuti ripetuti, picchi dei costi.
- Conservi un audit trail immutabile associato all'utente che agisce.
Una buona telemetria trasforma una compromissione silenziosa in un incidente rilevabile e analizzabile.
Un'architettura degli agenti a più livelli
In sintesi, uno stack di agenti difendibile presenta questa struttura:
- Identità: le azioni vengono eseguite come utente finale, con ambiti di privilegio minimo.
- Controllo delle policy: allowlist deterministica e validazione dello schema per ogni chiamata a uno strumento.
- Sandbox: esecuzione isolata con rete e risorse limitate.
- Checkpoint umani: approvazione per le azioni irreversibili.
- Limiti: budget di passaggi, token, tempo e costi.
- Osservabilità: logging completo degli audit e avvisi sulle anomalie.
Presuma che il modello possa essere dirottato; si assicuri che, anche in questo caso, la portata del danno rimanga ridotta.
Verifica rapida
Verifichi la Sua comprensione dei controlli di sicurezza degli agenti.
Riepilogo
Protezione degli agenti IA e dell'uso degli strumenti:
- Gli agenti trasformano gli output dannosi in azioni reali, quindi ogni strumento costituisce una superficie di attacco.
- Applichi il privilegio minimo per ogni strumento e associ le credenziali all'utente finale.
- Richieda l'approvazione umana per le azioni irreversibili ed esegua il codice in una sandbox.
- Interrompa la triade letale e consideri l'output degli strumenti come input non attendibile.
- Applichi nel codice, non nel prompt, un gate delle policy deterministico (allowlist, validazione dello schema).
- Limiti il ciclo (passaggi, token, tempo, costi) e registri ogni chiamata agli strumenti per rilevare eventuali problemi.
Domande Frequenti
La lezione «Proteggere gli agenti AI e l'uso dei tool» è gratuita?
Sì — il testo completo di «Proteggere gli agenti AI e l'uso dei tool» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.
Cosa imparerò in «Proteggere gli agenti AI e l'uso dei tool»?
Limitare le azioni degli agenti autonomi. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cyber Security Academy?
Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Proteggere gli agenti AI e l'uso dei tool»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?
Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Prompt injection e jailbreak
- OWASP LLM Top 10
- Proteggere gli agenti AI e l'uso dei tool
- Rischi per modello, dati e supply chain