db.query alle 3 di domenica,
un agent che martella un tool che fallisce in un loop stretto, un salto tool-a-tool
che questo workspace non ha mai fatto prima. Ogni chiamata passa ogni regola; il
pattern è il problema.
Il rilevamento di anomalie del firewall è il layer comportamentale. Il gateway
apprende la forma normale dell’uso dei tool del tuo workspace e valuta l’attività
live rispetto ad essa, facendo emergere le deviazioni su un feed che ogni Member
può leggere. È come noti un agent compromesso o un loop incontrollato senza aver
pre-scritto una regola per una forma che non avevi mai visto. Questa pagina è
l’atterraggio focalizzato per quel feed di firewall anomaly detection; la
Panoramica del Firewall è il riferimento
approfondito.
Il feed delle anomalie è rilevamento, non applicazione. Ti dice cosa sembra fuori
posto — non blocca. Quando un pattern è reale, lo trasformi in una
regola o in un
verdetto con rate-limit così la prossima
occorrenza viene fermata inline. Leggere il feed è aperto a ogni Member; trasformare
una scoperta in policy è Developer+.
1. Cosa segnala il rilevamento di anomalie del firewall
Quattro tipi di segnale, ognuno legato a una diversa modalità di fallimento:rate_spike — troppe chiamate per questa ora
rate_spike — troppe chiamate per questa ora
Il volume di chiamate per-tool valutato rispetto a una baseline
ora-della-settimana appresa. Un tool fa scattare
rate_spike quando il suo
conteggio supera un pavimento assoluto e gira alto rispetto alla baseline di
*quell’*ora, o quando il suo z-score supera la soglia. Basarsi sull’
ora-della-settimana (non sull’ora-del-giorno) significa che martedì-14:00 è
confrontato con i passati martedì-14:00, così il traffico di picco legittimo nei
giorni feriali non si legge come un picco mentre lo stesso volume alle 3 di
domenica sì.burn_spike — il costo gira alto vs baseline
burn_spike — il costo gira alto vs baseline
Lo stesso confronto ora-della-settimana, applicato al costo accumulato
anziché al conteggio delle chiamate. Un tool la cui spesa gira ben oltre la sua
norma di costo appresa emerge come un
burn_spike — il segnale di preavviso per
un agent che è costoso prima di essere distruttivo.retry_loop — la stessa chiamata, ripetutamente
retry_loop — la stessa chiamata, ripetutamente
Un gruppo
(conversazione, tool, argomenti) che si ripete molte volte dentro una
finestra stretta — un agent bloccato a ri-emettere la stessa chiamata a tool che
fallisce anziché recuperare. Un polling lento e legittimo non lo fa scattare; il
segnale è un loop stretto.novel_path — una transizione mai vista prima
novel_path — una transizione mai vista prima
Una transizione consecutiva
tool_a → tool_b per cui questo workspace non ha
alcuna baseline appresa. La prima volta che un agent va, diciamo, crm.read → http.fetch, quell’arco è inedito — esattamente il tipo di step che una catena di
esfiltrazione di dati compie.2. La baseline di 14 giorni
Il detector non è una soglia fissa — è una norma appresa. Per ogni bucket(tool, ora-della-settimana) il gateway mantiene un conteggio di chiamate e un costo
attesi mobili, riempiti da una retrospettiva di 14 giorni (circa due occorrenze
di ogni bucket ora-della-settimana — abbastanza da smussare un singolo giorno strano
senza perdere la forma settimanale). novel_path usa la baseline di transizione
parallela: il conteggio di occorrenze appreso per ogni arco tool_a → tool_b in
quell’ora-della-settimana.
Un workspace nuovo di zecca non ha ancora una baseline. Va bene: senza una norma
appresa, i detector di volume ricadono su un pavimento assoluto, così un’inondazione
ovvia viene comunque catturata dal primo giorno mentre le norme per-ora si riempiono.
| Segnale | Da cosa apprende |
|---|---|
rate_spike / burn_spike | Conteggio e costo per-(tool, ora-della-settimana), mobile su 14 giorni. |
novel_path | Conteggio di transizione per-(tool_a → tool_b, ora-della-settimana). |
retry_loop | Nessuna baseline — una soglia di ripetizione su finestra su (conversazione, tool, args). |
Il feed riporta solo nomi di tool, id di token redatti e conteggi. Un id di
chiave API grezzo non compare mai — ogni item porta un digest unidirezionale del
token chiamante, così puoi distinguere due anomalie senza che il feed faccia mai
trapelare la chiave dietro di esse.
3. Una lettura concreta
Diciamo che una chiave di un agent inizia a fare loop. Tira il feed nella console sotto Security → Firewall → Anomalies, o leggilo direttamente — qualsiasi Member può:retry_loop non porta alcun baseline o z_score (quei campi restano 0 —
appartengono ai detector di volume/costo), e porta un id opaco stabile così due
loop distinti sullo stesso tool non collidono su una riga. Un rate_spike è
l’inverso: riporta un baseline appreso e uno z_score, e lascia id vuoto.
Ogni item nomina il tool, il token redatto, quante chiamate sono scattate, lo
z-score (solo segnali di volume/costo) e un suggested_action (rate_limit,
block_tool o review). Da qui agisci: lascia una regola deny
sul tool, valida i suoi argomenti, o apri
il log degli eventi per vedere esattamente cosa
ha fatto l’agent.
4. Mettere in snooze il feed
Un load test noto o un backfill pianificato illumineranno il feed. Anziché inseguire il rumore, mettilo in snooze — per un massimo di 7 giorni:snoozed_until; si
azzera da solo nel momento in cui la scadenza passa. Il limite è un tetto netto — un
until digitato male o ostile più in là viene limitato così il rilevamento di
anomalie non può essere silenziato indefinitamente. Inviare un until passato o
attuale azzera uno snooze esistente.
Leggere il feed è un’azione Member; metterlo in snooze è Developer+ —
silenziare un segnale di sicurezza a livello di workspace è una scrittura, non una
lettura.
5. RBAC in breve
La superficie di analytics si divide lungo la solita linea leggi/agisci:| Azione | Ruolo |
|---|---|
| Leggere il feed delle anomalie | Member |
| Leggere impostazioni, policy, discovered tools | Member |
| Mettere in snooze il feed | Developer+ |
| Events, runs, aggregate, trace | Developer+ |
| Scrivere una regola da una scoperta | Developer+ |
6. Dal segnale alla policy
Il feed è l’inizio di un loop, non la fine:Individua il pattern
Un
novel_path o rate_spike mostra una forma che non ti aspettavi. Leggilo
rispetto al log degli eventi per confermare
che sia reale, non un caso isolato.Scrivi la regola
Trasforma la scoperta in applicazione — un
block, una
clausola sugli argomenti, una
regola di sequenza per la catena, o un
tetto di costo per il burn.
Fai il rollout in sicurezza
Atterra la regola sotto shadow mode prima
così misuri il suo raggio d’impatto prima che blocchi una singola chiamata, poi
applica.
Dove andare dopo
Panoramica del Firewall
Il riferimento completo del rilevamento di anomalie e il resto del piano di policy.
Log degli eventi
Approfondisci da un’anomalia alle chiamate esatte dietro di essa.
Blocca un tool
Trasforma una scoperta in una regola applicativa.
Modalità di applicazione
Come rilevamento, audit, shadow e applicazione si incastrano.
