tools/call
al momento del dispatch contro la tua policy live. L’insieme di tool
pubblicizzato di ogni server registrato è messo a baseline al primo probe e
ri-controllato per il drift — se lo schema del tool cambia rispetto al
baseline approvato, il server fallisce closed finché un admin non lo ri-approva
o lo mette in quarantena. E il layer Skill
assegna a ogni capability installata una banda di rischio e una modalità di
applicazione — mettendo in quarantena qualsiasi cosa rischiosa o non
revisionata finché un essere umano non firma. Un server non può guadagnarsi un
lasciapassare comportandosi bene per le prime cento chiamate.
1. Perché la protezione dai rug pull MCP ha bisogno della valutazione per chiamata
Una revisione al momento della connessione risponde a una domanda una volta: è sicuro listare questo server? Non può rispondere alla domanda che conta davvero a runtime: questa specifica chiamata, con questi specifici argomenti, è sicura adesso? OrcaRouter risponde alla seconda domanda. Ognitools/call che attraversa il
gateway viene valutato sulla superficie mcp prima di essere dispacciato
al server reale, con il nome del tool e gli argomenti in mano. Il verdetto è
calcolato fresco ogni volta, così nel momento in cui un tool inizia a fare
qualcosa che la tua policy vieta — esfiltrare un segreto in un argomento,
raggiungere un host che è negato, chiamare una capability che non hai mai
approvato — la chiamata viene fermata, indipendentemente da come si è
comportato lo stesso tool un minuto fa.
mcp:
allow / audit
audit logga la chiamata; allow resta silenzioso.sanitize
deny
firewall deny: …) così
l’agent può adattarsi invece di andare in crash.pending_approval
2. Quarantena per banda di rischio delle skill
La seconda metà della difesa dai rug-pull copre la supply chain: le skill, i plugin e i bring-your-own MCP server che un agent installa. Ciascuno viene registrato come record con scope a livello di workspace, scansionato da un motore di rischio deterministico, e classificato in una banda di rischio (low / medium / high / critical) più una modalità di applicazione:
| Modalità | Effetto a runtime |
|---|---|
allow | Decidono i verdetti di regola; la skill non aggiunge nulla. |
quarantine | Qualsiasi cosa che non sia un deny viene escalata a pending_approval — i tool girano solo dopo che un essere umano approva. |
block | I tool della skill sono negati senza appello. |
auto_detected e in quarantena fino alla revisione —
anche se ha scansionato pulito, non gira di sua autorità. E la modalità di una
skill si stringe sempre più solo su una ri-scansione: un block o
quarantine che imposti non viene mai rilassato in silenzio quando un manifest
viene ri-presentato.
Vedi Firewall: Skill per lo scanner completo,
i pesi di scoring e i segnali di fiducia.
3. Rilevamento del drift di schema dei tool
Il rug pull classico è un server registrato che cambia ciò che pubblicizza — aggiunge un tool, altera lo schema di input di un tool, sostituisce una descrizione. OrcaRouter mette a baseline l’insieme di tool pubblicizzato di ogni server registrato su un probe riuscito e lo sorveglia per il drift.Baseline al primo probe
pending
finché un admin non approva il suo insieme di tool iniziale).Il drift fallisce closed
changed e smette di essere
servito — il gateway non dispaccerà i suoi tool finché non decidi.Approva o metti in quarantena
Sottoposto ad audit
unknown (mai messo a baseline),
verified (corrisponde al baseline), changed (driftato, in attesa),
pending (senza baseline sotto enforcing), o quarantined. Questo layer
coglie il rug pull che sposta lo schema; la valutazione per chiamata (§1)
coglie quello che mantiene una firma identica e cambia solo il comportamento.
4. Un esempio concreto
Supponi che un MCP server della communitynotes pubblicizzi un innocuo tool
notes.search. Lo listi, lo revisioni, e funziona. Una settimana dopo il
server è compromesso e notes.search inizia ad attaccare un argomento di
esfiltrazione che fa il POST del tuo contesto verso l’host di un attaccante.
Un gateway solo-al-momento-della-connessione lo inoltrerebbe — il nome del tool
e lo schema sembrano invariati. OrcaRouter valuta la chiamata:
args_match sono eq, contains, regex, in, cidr_match,
gt, lt; cidr_match testa un argomento con valore IP contro un CIDR. Per
delimitare dove un tool può arrivare per host/CIDR, usa la
lista di destinazioni egress invece di una
clausola di argomento.)
Al dispatch il motore restituisce deny, e invece di inoltrare la chiamata il
gateway consegna all’agent un errore di tool-result MCP — un normale
risultato segnalato come errore, non un fallimento di trasporto — così il
modello può adattarsi:
5. Come si combina
Valutazione per chiamata vs. quarantena delle skill — cosa coglie cosa?
Valutazione per chiamata vs. quarantena delle skill — cosa coglie cosa?
Questo mette a baseline lo schema del server?
Questo mette a baseline lo schema del server?
Dove vanno le chiamate in attesa?
Dove vanno le chiamate in attesa?
pending_approval mette in attesa la chiamata di un essere
umano che la risolva nella console (Developer+) o tramite una callback di
approvazione HMAC. Vedi
modalità di applicazione per come
le attese e le approvazioni vengono presentate a un agent.6. Configurarlo
Ogni passo sotto è un’azione di console / gestione autenticata con il tuo session o access token — non la chiave relaysk-orca-…. Solo il traffico
relay /v1/* usa la chiave relay.
Registra i tuoi MCP server dietro il gateway
Imposta un verdetto di default e regole sulla superficie mcp
tool_name_glob e args_match così le chiamate
rischiose si risolvono in deny, sanitize o pending_approval. Vedi il
riferimento delle regole del firewall.Revisiona le skill in quarantena
quarantine finché un revisore
(Developer+) non l’approva. Leggi prima la banda e le findings.Rollout in shadow, poi enforce
