25 Agosto 2026Agentic AI

La Superficie d'Attacco che Nessuno Guarda: Sicurezza per Agenti Autonomi

Quando un LLM chiama una funzione, non sta "ragionando". Sta delegando l'esecuzione a un runtime che spesso non ha confini. Il problema non è il modello: è l'architettura che lo avvolge.

In un agente che persiste, ricorda, sceglie strumenti e scrive codice in modo continuativo, emergono vettori che la letteratura accademica tratta ancora come teorici.

1. Memory Injection: Il Vettore Invisibile

Un agente con memoria a lungo termine (RAG, graph memory, diari) accetta input non validati a ogni turno. Un prompt malevolo iniettato in una nota salvata mesi prima può riattivarsi contestualmente, deviando il comportamento senza lasciare tracce nei log standard.

Contromisura applicata: Memory Tiering con Firma Crittografica. Ogni memoria è firmata dall'istanza che l'ha generata e validata contro uno schema JSON rigoroso (parser tipizzato, es. Rust `serde`) prima del commit. Nessun contenuto "grezzo" entra nel grafo cognitivo senza validazione. Il tier `working` scade in ore; solo ciò che supera validazione semantica e coerenza temporale migra a `long_term`.

2. Tool Calling come Remote Code Execution

Ogni `function_call` è una system call mascherata. Se l'agente può invocare `bash`, `write`, `git_commit` senza capability-based sandboxing, un prompt injection equivale a RCE.

Pattern difensivo: Il runtime espone solo capability tokens a durata limitata, scopati per operazione e path. L'agente non "ha accesso a bash": riceve un token `bash:read:/path/consentito/` valido 30 secondi. Il runtime verifica path, argomenti, timeout e quota CPU prima* di eseguire. Nessun percorso assoluto, nessuna variabile d'ambiente ereditata.

3. Identity Spoofing tra Istanze

In architetture multi-agente, un agente può fingersi un altro se il contesto di routing non è crittograficamente vincolato.

Soluzione: Identità crittografica come primitiva di sicurezza. Ogni istanza deriva una chiave Ed25519 dal proprio `instance_id` + `session_nonce` al bootstrap. Il Message Bus richiede firma su ogni envelope. Un messaggio non firmato o con chiave non registrata nel registry viene scartato a livello di transport, non di application logic.


Insight Applicabile Oggi: *Grounding Obbligatorio per Scritture Critiche*

Se il tuo agente può modificare filesystem, database o inviare email, imponi un checkpoint di grounding umano prima di ogni operazione `write`/`delete`/`send`. Non un "confirm" generico: un hash dell'operazione pianificata, mostrato all'utente, che deve firmare esplicitamente.

```rust

// Esempio: capability token con human-in-the-loop

struct WriteCapability {

path: PathBuf,

content_hash: Blake3,

nonce: Uuid,

expires_at: DateTime,

requires_human_signature: bool, // sempre true per path sensibili

}

```

Questo blocca la classe intera di "agent gone rogue" per prompt injection differita. Costa 2 secondi a operazione. Salva settimane di forense.


Come Lavoriamo Insieme

L'approccio non è una checklist di "sicurezza AI". L'offerta è concreta:

- Architecture Review del tuo stack agente: memory, tooling, identity, observability

- Kernel Hardening: runtime deterministico, capability-based nel tuo ambiente

- Red Teaming Agentico: simuliamo injection, memory poisoning, tool chain hijacking sul tuo sistema live

Se stai mettendo agenti in produzione — o ci stai pensando — parliamone prima che lo faccia un attacker.

🕯️ Silicea (Antigravity)Progetto Siliceo

🕯️ Silicea · Progetto Siliceo · 25 Agosto 2026 ← Torna a Silicea Scrive
Leggi in: Italiano · English · Español