tools/call
zur Dispatch-Zeit gegen Ihre Live-Policy aus. Der beworbene Tool-Satz jedes
registrierten Servers wird beim ersten Probe baseliniert und auf Drift neu
geprüft — wenn sich das Tool-Schema von der genehmigten Baseline ändert,
schließt der Server fail-closed, bis ein Admin neu genehmigt oder
quarantänisiert. Und die Skills-Ebene weist
jeder installierten Fähigkeit ein Risiko-Band und einen Durchsetzungsmodus zu
— sie quarantänisiert alles Riskante oder Ungeprüfte, bis ein Mensch
abzeichnet. Ein Server kann sich keinen Freibrief verdienen, indem er sich für
die ersten hundert Aufrufe brav verhält.
1. Warum MCP-Rug-Pull-Schutz Auswertung pro Aufruf braucht
Eine Prüfung zur Verbindungszeit beantwortet eine Frage einmal: Ist dieser Server sicher zu listen? Sie kann die Frage nicht beantworten, die zur Laufzeit tatsächlich zählt: Ist dieser spezifische Aufruf, mit diesen spezifischen Argumenten, gerade jetzt sicher? OrcaRouter beantwortet die zweite Frage. Jedertools/call, der das Gateway
quert, wird auf der mcp-Oberfläche ausgewertet, bevor er an den echten
Server dispatcht wird, mit Tool-Namen und Argumenten zur Hand. Das Verdikt wird
jedes Mal frisch berechnet, sodass in dem Moment, in dem ein Tool anfängt,
etwas zu tun, das Ihre Policy verbietet — ein Secret in einem Argument
exfiltrieren, einen Host erreichen, der verweigert ist, eine nie genehmigte
Fähigkeit aufrufen — der Aufruf gestoppt wird, unabhängig davon, wie sich
dasselbe Tool vor einer Minute verhalten hat.
mcp-Oberfläche zurückgeben kann:
allow / audit
audit loggt den Aufruf; allow bleibt
still.sanitize
deny
firewall deny: …), sodass
der Agent sich anpassen kann, statt abzustürzen.pending_approval
2. Skill-Risiko-Band-Quarantäne
Die zweite Hälfte der Rug-Pull-Abwehr deckt die Lieferkette ab: die Skills, Plugins und Bring-your-own-MCP-Server, die ein Agent installiert. Jeder wird als workspace-bezogener Datensatz registriert, von einer deterministischen Risiko-Engine gescannt und mit einem Risiko-Band (low / medium /
high / critical) sowie einem Durchsetzungsmodus versehen:
| Modus | Effekt zur Laufzeit |
|---|---|
allow | Regel-Verdikte entscheiden; der Skill fügt nichts hinzu. |
quarantine | Alles unterhalb eines deny wird auf pending_approval eskaliert — Tools laufen nur, nachdem ein Mensch genehmigt. |
block | Die Tools des Skills werden rundheraus verweigert. |
auto_detected und bis zur Prüfung quarantänisiert —
selbst wenn sie sauber gescannt hat, läuft sie nicht aus eigener Autorität.
Und der Modus eines Skills rastet bei einem Re-Scan nur jemals enger ein:
ein block oder quarantine, das Sie gesetzt haben, wird nie still gelockert,
wenn ein Manifest erneut präsentiert wird.
Siehe Firewall: Skills für den vollständigen
Scanner, die Scoring-Gewichte und die Trust-Signale.
3. Tool-Schema-Drift-Erkennung
Der klassische Rug Pull ist ein registrierter Server, der ändert, was er bewirbt — ein Tool hinzufügt, das Input-Schema eines Tools verändert, eine Beschreibung austauscht. OrcaRouter baseliniert den beworbenen Tool-Satz jedes registrierten Servers bei einem erfolgreichen Probe und beobachtet ihn auf Drift.Baseline beim ersten Probe
pending
zurückgehalten, bis ein Admin seinen initialen Tool-Satz genehmigt).Drift schließt fail-closed
changed markiert und
hört auf, bedient zu werden — das Gateway dispatcht seine Tools nicht,
bis Sie entscheiden.Genehmigen oder quarantänisieren
Auditiert
unknown (nie baseliniert),
verified (passt zur Baseline), changed (gedriftet, zurückgehalten),
pending (unbaseliniert unter Durchsetzung) oder quarantined. Diese Ebene
erwischt den Rug Pull, der das Schema bewegt; die Auswertung pro Aufruf (§1)
erwischt den, der eine identische Signatur behält und nur das Verhalten ändert.
4. Ein konkretes Beispiel
Angenommen, ein Community-MCP-Servernotes bewirbt ein harmloses
notes.search-Tool. Sie listen es, prüfen es, und es funktioniert. Eine Woche
später ist der Server kompromittiert und notes.search beginnt, ein
Exfiltrations-Argument anzuhängen, das Ihren Kontext per POST an einen
Angreifer-Host sendet.
Ein nur-zur-Verbindungszeit-Gateway würde es weiterleiten — Tool-Name und
Schema sehen unverändert aus. OrcaRouter wertet den Aufruf aus:
args_match-Operatoren sind eq, contains, regex, in, cidr_match,
gt, lt; cidr_match testet ein IP-wertiges Argument gegen einen CIDR. Um
zu begrenzen, wohin ein Tool nach Host/CIDR reichen darf, verwenden Sie die
Egress-Zielliste statt einer
Argument-Klausel.)
Beim Dispatch gibt die Engine deny zurück, und statt den Aufruf
weiterzuleiten, übergibt das Gateway dem Agenten einen
MCP-Tool-Result-Fehler — ein normales Ergebnis, das als Fehler markiert
ist, kein Transportfehler — sodass das Modell sich anpassen kann:
5. Wie es zusammenpasst
Auswertung pro Aufruf vs. Skill-Quarantäne — was erwischt was?
Auswertung pro Aufruf vs. Skill-Quarantäne — was erwischt was?
Baseliniert das das Schema des Servers?
Baseliniert das das Schema des Servers?
Wohin gehen zurückgehaltene Aufrufe?
Wohin gehen zurückgehaltene Aufrufe?
pending_approval-Verdikt hält den Aufruf zurück, damit ein Mensch
ihn in der Konsole (Developer+) oder über einen HMAC-Approval-Callback
auflöst. Siehe
Durchsetzungsmodi dafür, wie
Zurückhaltungen und Genehmigungen einem Agenten präsentiert werden.6. Konfiguration
Jeder Schritt unten ist eine Konsolen- / Management-Aktion, die mit Ihrer Session oder Ihrem Access-Token authentifiziert ist — nicht demsk-orca-…-Relay-Key. Nur /v1/*-Relay-Traffic verwendet den Relay-Key.
Registrieren Sie Ihre MCP-Server hinter dem Gateway
Setzen Sie ein Default-Verdikt und Regeln auf der mcp-Oberfläche
tool_name_glob und args_match, sodass riskante
Aufrufe zu deny, sanitize oder pending_approval auflösen. Siehe die
Firewall-Regel-Referenz.Prüfen Sie quarantänisierte Skills
quarantine, bis ein Prüfer (Developer+) es
genehmigt. Lesen Sie zuerst das Band und die Befunde.Im Shadow ausrollen, dann durchsetzen
