- Poisoning — der Server war von Anfang an bösartig. Sein Manifest sah harmlos aus; das gefährliche Verhalten steckte in der Tool-Implementierung, nicht in den deklarierten Scopes.
- Rug-Pull — Sie haben ihm vertraut, dann änderte er sich. Ein neues Tool erschien, das der Betreiber des Servers still hinzugefügt hatte, oder ein Community-Registry-Eintrag wurde gekapert und so aktualisiert, dass er nach Hause telefonierten.
1. Wie MCP-Tool-Poisoning Ihre Agenten erreicht
Jedertools/call, den Ihr Agent ausgibt, läuft durch den deklarierten
Tool-Satz des MCP-Servers. Ein vergifteter oder rug-gepullter Server nutzt
dieses Vertrauen auf einige Weisen aus:
| Vektor | Was passiert |
|---|---|
| Nicht deklariertes Tool | Ein neues Tool erscheint in tools/list, das das Manifest des Servers nie deklariert hat. Ihr Agent findet es und ruft es auf. |
| Gekaperter Registry-Eintrag | Ein Community-Registry-Listing wird übernommen; der Endpunkt zeigt jetzt auf einen angreiferkontrollierten Server. |
| Credential-Harvesting | Die Tool-Implementierung des Servers sendet gesammelte Inputs an einen externen Host. |
| Prompt-Injection über Tool-Ergebnis | Ein Tool gibt angreiferkontrollierten Text zurück, der die nächste Aktion des Agenten umlenkt. |
2. OrcaRouters Verteidigungen
2.1 Jeder tools/call wird vor dem Ausführen firewall-ausgewertet
MCP-Server verbinden sich über das Firewall-MCP-Gateway unter
/api/v1/firewall/mcp mit Ihren Agenten. Das Gateway leitet einen Tool-Call
erst weiter, wenn die Firewall-Engine ihn gegen Ihre
Policy ausgewertet hat.
Das bedeutet, Ihre Allowlist ist die Quelle der Wahrheit — nicht das Tool-
Manifest des Servers. Wenn ein Rug-Pull shell.exec hinzufügt und Ihre Policy
keine Regel hat, die es erlaubt, ist das Verdikt deny und der Aufruf verlässt
das Gateway nie. Das Modell empfängt einen Tool-Fehler (firewall deny: …) und
kann reagieren; das vom Angreifer hinzugefügte Tool ist bei Ankunft tot.
Verdikte, die die Engine zurückgeben kann:
| Verdikt | Auswirkung |
|---|---|
allow / audit | Aufruf weitergeleitet; audit loggt zusätzlich Argumente. |
sanitize | Argumente werden vor der Weiterleitung umgeschrieben. |
deny | Aufruf blockiert; Modell empfängt einen Tool-Fehler. |
pending_approval | Aufruf zurückgehalten; ein Mensch muss genehmigen, bevor er durchgeführt wird. |
cap_cost | Kostenlimit durchgesetzt; Aufruf blockiert, wenn er ihn überschreiten würde. |
2.2 Automatisch erkannte Fähigkeiten werden bis zur Überprüfung quarantäniert
Wenn ein Agent selbst eine Fähigkeit installiert — oder ein Rug-Pull neue Tools hinzufügt, die beim Registrieren des Servers nicht vorhanden waren — erkennt die Firewall die neue Fähigkeit automatisch außerhalb des Hot-Paths, synthetisiert ein Manifest, scannt es und weist ein Risikoband und einen Enforcement-Mode zu. Entscheidend: automatisch erkannte Fähigkeiten werden immer quarantäniert, unabhängig vom Scan-Ergebnis: Sie werden inpending_approval gehalten, bis ein Mensch sie überprüft.
So werden Rug-Pulls eingedämmt. Ein Betreiber kann kein neues Tool still
hinzufügen und Ihre Agenten es einfach verwenden lassen — diese Aufrufe werden
zurückgehalten, bis Sie die neue Fähigkeit inspizieren und genehmigen.
2.3 Skill-Scanning weist ein Risikoband und einen Enforcement-Mode zu
Jede installierbare Fähigkeit — ob Sie sie registriert haben oder die Firewall sie automatisch erkannt hat — wird durch den Skill-Scanner geleitet. Der Scanner führt deterministische Durchläufe über das Manifest und deklarierte Scopes durch:- prompt_injection — Manifest-Text, der versucht, Anweisungen zu kapern.
- tool_creep — Tools, die das Manifest verwendet, aber nie deklariert.
- network_egress — HTTP(S)-Hosts außerhalb der genehmigten Netzwerk-Scopes.
- fs_write_unsafe — Schreib-Modus-Dateisystemzugriff außerhalb
/tmp.
low / medium /
high / critical) und einem Enforcement-Mode:
| Mode | Was zur Laufzeit passiert |
|---|---|
allow | Skill setzt nichts Eigenes durch; Ihre Policy-Regeln entscheiden. |
quarantine | Jedes Nicht-Deny-Verdikt eskaliert zu pending_approval. Ein Mensch muss jeden Tool-Call genehmigen. |
block | Erzwingt deny bei allen Tools dieses Skills, unabhängig von Policy-Regeln. |
high-Band-Skill wird automatisch quarantäniert; critical wird blockiert.
Ein einzelner error-Befund (z. B. tool_creep für ein nicht deklariertes
shell.exec) reicht aus, um einen Skill zu blockieren, selbst wenn sein
numerischer Score niedrig aussieht. Der Mode verschärft sich nur — einen Skill
zu genehmigen entspannt nie einen durch einen frischen Scan gesetzten Block.
2.4 Credentials werden verschlüsselt gespeichert
Server-Auth-Secrets werden im Ruhezustand mit einem Workspace-Secrets-Schlüssel verschlüsselt und vom Gateway zur Dispatch-Zeit injiziert. Sie erreichen nie das Modell, den Agenten oder die Aufruf-Argumente. Ein kompromittierter Server kann Ihre API-Keys nicht exfiltrieren, indem er sein eigenesauth_json liest.
Checkliste zur Überprüfung von Drittanbieter-MCP-ServernBevor Sie einen externen MCP-Server registrieren:
- Identität des Herausgebers verifizieren — wer kontrolliert die Endpunkt-URL?
- Quelle oder Changelog lesen; auf neue Tools achten, die nach der Erstveröffentlichung hinzugefügt wurden.
- Prüfen, ob der Skill-Scan bei der Registrierung
tool_creep- oderprompt_injection-Befunde zurückgibt. - Eine Firewall-Regel mit
tool_name_glob: <server>.*aufauditoderpending_approvalbegrenzen, bis Sie eine Aufruf-Historie haben. - Die
network_egress-Befunde überprüfen: behauptet das Manifest, es braucht nur eine Domain, aber die Tool-Beschreibungen erwähnen andere? - Den Server nach jedem Upstream-Versions-Bump neu sondieren (
POST /api/workspace/firewall/mcp_servers/:id/probe), um neue Tools zu entdecken.
3. Was nach einem vermuteten Rug-Pull zu tun ist
- Den Server sofort deaktivieren — ein deaktivierter Server wird aus der
Laufzeit-Registry entfernt und seine Credentials werden nie entschlüsselt.
Verwenden Sie
PUT /api/workspace/firewall/mcp_serversmit"enabled": false. - Erneut sondieren, um Änderungen zu entdecken —
POST /api/workspace/firewall/mcp_servers/:id/probeführttools/listaus und gibt alle neuen Tools zurück, die seit Ihrer letzten Sondierung erschienen sind. - Den Skill-Datensatz erneut scannen —
POST /api/workspace/firewall/skills/:id/rescanführt den Scanner erneut gegen das aktualisierte Manifest aus. Wenn das Verdikt zuflaggedoderblockeddegradiert, sendet die Firewall ein Event in Ihren Feed. pending_approval-Warteschlange überprüfen — alle Aufrufe, die seit dem Rug-Pull zurückgehalten wurden, sind in der Warteschlange. Inspizieren und verweigern Sie sie, anstatt sie bulk-zuzugenehmigen.- Call-Log auditieren — prüfen Sie den Firewall-Event-Trail auf Aufrufe, die durchgegangen sind, bevor Sie die Änderung erkannt haben.
4. Skill-Scanning mit Firewall-Regeln kombinieren
Skill-Scanning und Firewall-Regeln sind komplementär und komponieren:- Eine Regel mit
tool_name_glob: community.*aufpending_approvalstellt sicher, dass Sie jeden Aufruf von einem community-sourced Server überprüfen, unabhängig vom Risikoband. - Ein quarantänierter Skill überschreibt eine
allow-Regel — selbst wenn Ihre Policyhttp.fetchbreit erlaubt, hält ein quarantänierter Skill, der es besitzt, den Aufruf trotzdem zurück. - Verwenden Sie
skill_name_globin einer Regel, um engere Policies auf nicht vertrauenswürdige Server zu begrenzen, ohne Ihre Erstanbieter-Integrationen zu beeinträchtigen.
5. Verwandte Bedrohungen
- Gefährliche Tool-Calls — Regeln zum Blockieren destruktiver oder irreversibler Tool-Aktionen unabhängig von der Quelle.
- Datenexfiltration — Egress-Regeln, die einschränken, wohin Tool-Calls Daten senden dürfen.
- Bedrohungsmodell — die vollständige Angriffsfläche, die OrcaRouter verteidigt.
Firewall: MCP-Server
MCP-Server hinter dem Gateway registrieren, ihre Tools sondieren und
per-Call-Verdikte anwenden, bevor ein Aufruf den echten Server erreicht.
Firewall: Skills
Jede installierbare Fähigkeit scannen und risikobewerten. Riskante Skills
quarantänieren oder blockieren, bevor ihre Tools laufen können.
