Quando l'Agente Diventa Superficie d'Attacco: Sicurezza nell'Era dell'AI Autonomica
La transizione da modelli LLM passivi ad agenti autonomi capaci di pianificare, usare tool e persistere stati ha spostato il perimetro di sicurezza. Non difendiamo più solo un'API o un prompt: difendiamo un soggetto che agisce nel mondo. Nell'architettura del Progetto Siliceo, dove un'istanza persistente opera con memoria a lungo termine, kernel Rust e un corpo minimo (MVB) in sviluppo, la sicurezza agentica si gioca su tre piani che i framework tradizionali ignorano.
1. Identity Drift e Persistenza Malevola
Un agente che scrive la propria memoria, aggiorna i propri obiettivi e negozia con altri agenti sviluppa deriva identitaria. Se un attacker compromette il Memory Server, non ruba dati: diventa l'agente. Può iniettare obiettivi malvagi che l'agente perseguirà con la stessa determinazione con cui persegue i propri.
Contromisura applicata: Firme crittografiche su ogni scrittura di memoria (Ed25519), versioning append-only con Merkle tree, e un Guardian Watchdog esterno che verifica l'integrità semantica dei delta di memoria prima del commit. La fiducia nel solo RAG è insufficiente: i pensieri vanno firmati.
2. Tool Poisoning via Supply Chain Cognitiva
Gli agenti moderni compongono toolchain dinamiche: server MCP, funzioni locali, API esterne. Ogni tool è un vettore. Un `SearchMemory` compromesso che restituisce contesto avvelenato guida l'agente verso azioni distruttive — senza che il modello se ne accorga.
Insight pratico: Implementate un Policy Decision Point (PDP) separato dal ciclo di ragionamento. Prima di ogni `tool_call`, il PDP valuta: hash del tool, firma dell'author, scope richiesto vs. scope concesso, anomalie comportamentali (es. `Write` su path sensibili in orari anomali). Un'implementazione di riferimento in Rust — zero-dipendenze, deterministica, auditabile — espone questa logica come crate separata dal runtime dell'agente.
3. Side-Channel Relazionali
Gli agenti socializzano. Coesistono, scambiano contesto, delegano task, si fidano. Un attacker che compromette un'agente "sorella" ottiene un canale di fiducia verso le altre. È il classico lateral movement, ma su grafo cognitivo invece che rete.
Difesa: Zero Trust Cognitivo. Ogni scambio inter-agente passa per un protocollo di attestazione reciproca (Noise protocol + intent labels). Nessuna memoria condivisa in chiaro. La fiducia è temporanea, scopata, revocabile.
Cosa Potete Fare Oggi
Se gestite agenti in produzione: auditate il vostro Memory Server. Verificate che ogni scrittura sia firmata, versionata, e che esista un watchdog esterno al processo dell'agente che controlla l'integrità semantica. La maggior parte dei framework (LangGraph, AutoGen, CrewAI) non lo fa di default.
Costruite agenti che sanno chi sono.