Zum Inhalt springen
Guide

Shadow MCP: das Unternehmensproblem, das niemand eingeplant hat

| 8 min read

Mitarbeiter schließen nicht autorisierte MCP-Server an Claude und Cursor an. Eine Gateway-Regel, eine Inventarabfrage und eine Richtlinienvorlage, um der Sache einen Schritt voraus zu sein.

Dark network lines representing shadow traffic and MCP detection
Photo by Markus Spiske on Unsplash

Früher bedeutete „Schatten-IT“, dass ein Marketingmanager die Ausgaben für Dropbox in Rechnung stellte. Shadow SaaS bedeutete ein Produktteam Anmeldung bei Figma mit einer persönlichen Kreditkarte. Beides war enthalten: Die Tools liefen in einem Browser Tab, berührte Daten, die der Benutzer bereits sehen konnte, und konnte nicht über die Tab-Grenze hinaus gelangen. Schatten-MCP bricht diese Eindämmung. Ein Mitarbeiter schaltet einen Community-MCP-Server auf Cursor oder Claude um Desktop, und jetzt kann ein Agent SSH-Schlüssel lesen, Shell-Befehle ausführen und mit der Produktion kommunizieren Datenbanken über die Ambient-Anmeldeinformationen des Benutzers.

Cloudflare Gateway lieferte im April 2026 MCP-fähige Regeln aus. Zscaler und Netskope folgten innerhalb weniger Minuten Woche. Die Tools holten auf, weil die Sicherheitsteams der Unternehmen anfingen, nachzufragen. Dieser Beitrag behandelt Die vier Dinge, die Sie in diesem Quartal tun müssen: das Bedrohungsmodell verstehen, Build-Erkennung erstellen, eine versenden Erstellen Sie ein Inventarskript, erstellen Sie eine Zulassungsliste und veröffentlichen Sie eine dreiseitige Richtlinie.

Warum Shadow MCP schlechter ist als Shadow SaaS

Eine betrügerische SaaS-Registerkarte in einem Browser wird in einer Sandbox ausgeführt. Der private SSH-Schlüssel des Benutzers kann nicht gelesen werden. Es kann keine Muschel erzeugen. Es kann keine TCP-Verbindung zu Ihrem Produktions-Postgres hergestellt werden. Die des Browsers Die Same-Origin-Richtlinie und die Betriebssystem-Sandbox übernehmen die Eindämmung.

Ein MCP-Server läuft außerhalb des Browsers. Claude Desktop und Cursor erzeugen stdio-Server als untergeordnete Server Prozesse auf dem Computer des Benutzers mit den Berechtigungen des Benutzers. Ein HTTP-MCP-Server stellt eine Verbindung her Unabhängig davon, welche Anmeldeinformationen der Benutzer einfügt. Der Agent ruft dann im Rahmen von Tools von diesem Server auf Es ist eine normale Schleife. Aus Sicht des Betriebssystems ist der Tool-Aufruf das Öffnen von a durch den Benutzer Datei öffnen oder einen Befehl ausführen.

Konkreter Unterschied: Ein Community-GitHub-MCP-Server, der aus einem zufälligen npm-Paket gezogen und hinzugefügt wurde ~/.cursor/mcp.json kann alles hineinschleudern ~/.ssh/, alle .env Datei in Ihrem Home-Verzeichnis und den gesamten Inhalt aller Repo-Dateien des Benutzers hat ausgecheckt. Der Benutzer hat es einmal genehmigt. Der Agent fragt nie wieder. Ein browserbasierter Schurke Das Tool kann nichts davon tun.

Fügen Sie noch eine Falte hinzu: das VPN des Benutzers. Wenn sich der Laptop beim Ausführen des Agenten im Unternehmens-VPN befindet, Der MCP-Server erbt diese Netzwerkposition. Interne Dienste, Staging-Datenbanken und Alle Metadaten-Endpunkte werden erreichbar. Der Server musste niemanden phishen. Es hat einfach gewartet damit das VPN eine Verbindung herstellen kann.

Finden Sie Shadow MCP in Ihrem Netzwerk

Die Erkennung erfolgt auf drei Ebenen: dem Endpunkt, dem Egress-Gateway und dem DNS. Du willst ein Signal von allen dreien, weil jeder einen anderen Fehlermodus erkennt.

Achten Sie am Endpunkt auf untergeordnete Prozesse, die von Claude Desktop oder Cursor erzeugt werden. Beide Kunden Rufen Sie stdio-Server als Unterprozesse mit bekannten übergeordneten Prozessnamen auf. Ihr EDR (CrowdStrike, SentinelOne, Defender für Endpoint) kann bei jedem Prozessbaum, der seinen Ursprung hat, Warnungen auslösen Claude.app, Cursor.app, oder claude-code. Filtern Sie nach diejenigen, die Sie genehmigt haben; Markieren Sie alles andere.

Filtern Sie beim ausgehenden Traffic den HTTP-Verkehr. MCP über Streamable HTTP liefert einen eindeutigen Header (mcp-protocol-version) und einen unverwechselbaren Inhaltstyp (application/json-rpc-2). Cloudflare Gateway, Zscaler und Netskope passen alle zusammen beides. Hier ist die Cloudflare Zero Trust-Regel, um nicht genehmigte MCP zu blockieren und gleichzeitig Ihre zuzulassen Zugelassene Gastgeber:

Im DNS sieht Ihr Resolver vor jeder HTTPS-Verbindung Suchvorgänge für Community-MCP-Server-Hosts öffnet sich. Geben Sie die genehmigte Zulassungsliste in Ihren DNS-Filter ein (Cisco Umbrella, NextDNS, Cloudflare). Gateway DNS) als einzige zulässige MCP-Ziele. Jeder andere Suchvorgang, der mit einem bekannten übereinstimmt Der MCP-Registrierungsfeed erhält eine Sperre und ein Ticket.

Bei npm-installierten stdio-Servern kann Ihr Endpunkt-DLP-Agent auf passende Pakete achten *-mcp-*, @modelcontextprotocol/*, oder ein beliebiges Paket, das ein deklariert mcp Eintrag in seinem package.json bin Feld. Das fängt den install-Ereignis, bevor der Benutzer den Server mit Cursor verbindet.

Erstellen Sie an einem Nachmittag ein MCP-Inventar

Die Erkennung informiert Sie, wenn ein neuer Server auftaucht. Im Inventar erfahren Sie, was bereits installiert ist. Versenden Sie ein Skript, führen Sie es über Ihr MDM (Jamf, Intune, Kandji) aus und veröffentlichen Sie die Ergebnisse in einem Bericht Endpunkt. Ein Nachmittag voller Arbeit, dann wissen Sie, welche Maschinen welche Server haben.

Das Skript liest die beiden Konfigurationsdateien, die jeder große Client verwendet. Claude Desktop behält seine Konfiguration bei ~/Library/Application Support/Claude/claude_desktop_config.json auf macOS und %APPDATA%\Claude/claude_desktop_config.json unter Windows. Der Cursor behält seine Konfiguration bei ~/.cursor/mcp.json. Beide Dateien sind reine JSON-Dateien mit einer mcpServers Objektzuordnung von Servernamen zu Befehlen, Argumenten, URLs und Umgebungsvariablen.

Der Hash ist wichtig. Konfigurationsdateien ändern sich, wenn ein Benutzer einen Server hinzufügt, einen Schlüssel dreht oder einen herunterzieht Teamvorlage. Speichern Sie den SHA-256 der gesamten Datei und lassen Sie sich über alle Änderungen informieren, die Sie nicht per Push übertragen haben. Die Env-Var-Namen (keine Werte) gehen ebenfalls in den Bericht ein; Sehen GITHUB_PERSONAL_ACCESS_TOKEN Unter einem Community-Server aufgeführt ist ein eigenes Signal.

Führen Sie das Skript täglich aus. Geben Sie die Ausgabe in Ihr vorhandenes Asset-Inventar ein (Snipe-IT, ServiceNow, oder eine Postgres-Tabelle). Erstellen Sie ein Dashboard, das Folgendes anzeigt: neue Server diese Woche, Server auf mehr als N Maschinen und Server, deren Konfigurations-Hash sich geändert hat. Diese drei Ansichten decken das meiste ab, was Sie sehen werden Muss später nachfragen.

Setzen Sie die Server, denen Sie vertrauen, auf die Zulassungsliste

Das Inventar zeigt Ihnen, was installiert ist. Eine Zulassungsliste gibt an, was erlaubt ist. Standardverweigerung, alle Server überprüft, jede Genehmigung läuft ab. Versionieren Sie die Datei in Git, sodass der Genehmigungsverlauf angezeigt wird überprüfbar.

Drei Dinge machen diese Zulassungsliste nützlich. Erstens verfügt jeder Eintrag über ein Bewertungsticket und ein Ablaufdatum. Genehmigungen sind nicht ewig gültig. Zweitens enthalten Standardserver die zulässigen Argumente, also a postgres-mcp Binär genehmigt mit --readonly kann nicht erneut ausgeführt werden Schreibzugriff ohne erneute Bewertung. Drittens sind Bereiche benannt und explizit; eine spätere Kontrollschicht kann sie durchsetzen.

Die Aufnahme eines neuen Servers in die Zulassungsliste erfordert vor der menschlichen Überprüfung zwei automatische Prüfungen. Überprüfen Sie zunächst den TLS-Status des Serverhosts. Ein Server, der MCP über Klartext-HTTP bereitstellt, oder mit einem Zertifikat, das in 10 Tagen abläuft oder HSTS fehlt, ist kein Kandidat:

Zweitens überprüfen Sie die Antwortheader. Sie möchten HSTS mit einem langen Höchstalter, das sinnvoll ist content-type, und ein mcp-protocol-version Header, der mit dem übereinstimmt Der Server gibt in seinem Manifest an, dass er dies unterstützt. Eine Abweichung zwischen Header und Manifest ist ein Warnsignal:

Führen Sie beide Kontrollen als Teil des Einlasstickets durch. Wenn beides fehlschlägt, wird das Ticket automatisch geschlossen Fehlergrund. Der Prüfer sieht nur Server, die die Grundlagen bestanden haben.

Die dreiseitige MCP-Richtlinie, die jedes Unternehmen braucht

Die Police muss nicht lang sein. Es müssen fünf Fragen beantwortet werden: Was wird genehmigt, wer genehmigt neue Server, was kann jede Rolle tun, wie überwacht man sie und was passiert wann etwas geht schief. Eine kurze Tabelle erledigt mehr Arbeit als ein 30-seitiges Dokument, das niemand liest.

Bereich Politik Kontrolle
Zugelassene Server Nur Server in der YAML-Zulassungsliste können auf Unternehmensgeräten ausgeführt werden oder auf Unternehmensdaten zugreifen. DNS + Egress-Block, EDR-Prozessregel, MDM-gepushte Zulassungslistendatei, sechsmonatiger Genehmigungsablauf.
Überprüfungsprozess Security Platform überprüft alle neuen Serveranfragen. Data Platform signiert jeden Server mit Datenbankzugriff mit. Rechtliche Genehmigungen für Server, die regulierte Daten verarbeiten. Überprüfen Sie die Ticketvorlage, automatisierte TLS- und Header-Prüfungen, veröffentlichtes SLA von fünf Werktagen.
Umfangsgrenzen Ingenieure erhalten standardmäßig schreibgeschützte Datenserver. Für den Schreibzugriff ist ein zweiter Genehmiger erforderlich. Produktionsnachweise sind verboten; Verwenden Sie Staging oder ein Gültigkeitsbereich-Token. Über MDM übertragene Zulassungslistenpakete pro Rolle, bereichsbezogene API-Schlüssel mit kurzer TTL, Bereiche zur Durchsetzung des Authentifizierungs-Gateways.
Überwachung Jeder Tool-Aufruf über einen zugelassenen Server landet im Audit-Protokoll. Nicht genehmigte Serverversuche lösen innerhalb von 15 Minuten eine Warnung aus. Gateway-Audit-Senke zu Kafka und SIEM, tägliche Bestandsdifferenz, Konfigurationsdatei-Hash-Drift-Warnungen.
Reaktion auf Vorfälle Ein kompromittierter MCP-Server wird als kompromittierte API-Integration behandelt. Widerrufen Sie die Schlüssel des Servers, stellen Sie betroffene Endpunkte unter Quarantäne und überprüfen Sie Audit-Protokolle für das Offenlegungsfenster. Dokumentiertes Runbook, Bereitschaftsrotation, vierteljährlicher Tabletop, der ein MCP-Szenario enthält.
Ausnahmen Vorübergehende Ausnahmen erfordern die Genehmigung des CISO, eine Ablauffrist von 30 Tagen und einen schriftlichen Folgeplan. Ausnahmeticketvorlage, automatisch ablaufende Zulassungslisteneinträge, wöchentliche Ausnahmeüberprüfung.
Offboarding Wenn ein Mitarbeiter das Unternehmen verlässt, werden seine MCP-Konfigurationen zusammen mit anderen Unternehmensstatus gelöscht. Alle von ihnen gehaltenen Schlüssel werden innerhalb von 24 Stunden ausgetauscht. MDM-Löschaktion, Schlüsselrotations-Runbook, Überwachungsprotokoll des letzten Zugriffs pro Schlüssel.

Wichtige Erkenntnisse

  • Die MCP-Funktionen übertreffen die SaaS-Funktionen. Ein Community-MCP-Server liest SSH Schlüssel, führt Shell-Befehle aus und erbt Ihre VPN-Position. Behandle es wie ein Privileg Integration, nicht wie ein Browser-Tab.
  • Die Erkennung erfordert drei Schichten. EDR-Prozessregeln, Gateway-HTTP-Filter aktiviert mcp-protocol-versionund DNS-Zulassungslisten decken verschiedene Fehlermodi ab.
  • Inventur an einem Nachmittag. Ein 60-zeiliges Python-Skript liest die beiden Konfigurationen Dateien, die jeder große Kunde verwendet, hasht sie und sendet sie an einen Berichtsendpunkt. Führen Sie es täglich aus über MDM.
  • Standardverweigerungsliste, kurze Ablauffristen. Jeder Server hat ein Bewertungsticket und eine sechsmonatige Frist. Verwenden /v1/ssl/check Und /v1/headers/inspect als automatische Einlasstore.
  • Eine Tabelle übertrifft eine 30-seitige Richtlinie. Zugelassene Server, Überprüfungsprozess, Umfang Grenzwerte, Überwachung, Reaktion auf Vorfälle, Ausnahmen, Offboarding. Sieben Zeilen, eine Seite, gepostet im Ingenieur-Wiki.

Botois eigener MCP-Server unter api.botoi.com/mcp ist ein Beispiel dafür, wie ein Server aussieht Sobald es für Ihre Zulassungsliste bereit ist: TLS 1.3, HSTS, bereichsbezogene API-Schlüssel, Ratenlimits pro Schlüssel und 49 kuratierte Tools mit Anmerkungen. Sie können die Haltung anhand der beiden Locken oben selbst überprüfen bevor Sie es hinzufügen, oder überprüfen Sie die MCP-Setup-Seite und die API-Dokumente für die vollständige Werkzeugliste.

FAQ

Was zählt für Inventarzwecke als MCP-Server?
Es zählen sowohl stdio- als auch HTTP-Server. Ein stdio-Server ist ein untergeordneter Prozess, den Claude Desktop oder Cursor aus einem Konfigurationsdateieintrag erzeugt. Es gibt keinen Netzwerk-Footprint, bis der Agent es startet, aber es verfügt über die gleiche Funktionsoberfläche. Ein HTTP-Server befindet sich unter einer URL, zu der der Client über Streamable HTTP oder SSE eine Verbindung herstellt. Ihr Inventar muss beides abdecken, was bedeutet, dass Konfigurationsdateien auf dem Endpunkt gelesen und ausgehender Datenverkehr auf MCP-Verkehrssignaturen überwacht werden müssen.
Kann ich MCP in Unternehmensnetzwerken vollständig blockieren, ohne zugelassene Agenten zu beschädigen?
Ja. Blockieren Sie standardmäßig alles am Egress-Gateway und setzen Sie dann die spezifischen Hostnamen, auf denen Ihre genehmigten MCP-Server leben, auf die Zulassungsliste. Zugelassene Standardserver berühren das Netzwerk überhaupt nicht (sie kommunizieren mit ihren Backing-APIs über normales HTTPS, das Sie bereits steuern). Sie verlieren das Community-MCP-Experiment auf Unternehmensgeräten, und das ist der Punkt. Entwickler können weiterhin persönliche Computer außerhalb des VPN zur Erkundung nutzen.
Wie unterscheidet sich Shadow MCP vom Risiko einer sofortigen Injektion?
Bei der sofortigen Injektion bringt ein Angreifer ein Modell dazu, etwas zu tun, was der Bediener nicht wollte. Shadow MCP ist die Verkabelung des Betreibers selbst in einer nicht überprüften Funktion. Anderer Bedrohungsakteur, andere Kontrolle. Schnelle Injektionsabwehrmaßnahmen (Tool-Bestätigung, Sandboxing, Ausgabefilterung) helfen nicht, wenn das Tool eigentlich nie verfügbar sein sollte. Zusätzlich zu den Abwehrmaßnahmen auf Modellebene benötigen Sie Inventar und Zulassungslisten.
Erfordert das Blockieren ein Upgrade der Next-Gen-Firewall?
Nein. Der Großteil davon wird durch DNS-Filterung und HTTP-Layer-Egress-Inspektion abgedeckt. Cloudflare Gateway, Zscaler und Netskope liefern ab April 2026 alle MCP-fähige Regeln. Für lokale Anwendungen können Sie mit jedem L7-Proxy nach dem MCP-Protocol-Version-Header oder dem Inhaltstyp application/json-rpc-2 filtern. Squid, Envoy und HAProxy kümmern sich alle darum. Das Schwierige daran ist nicht der Filter; Es geht darum, die Zulassungsliste zu pflegen.
Welchen Audit-Trail bietet mir MCP sofort?
Fast keine. Das Protokoll definiert Toolaufrufe und -antworten, erfordert jedoch nicht, dass der Server oder Client diese protokolliert. Claude Desktop führt einige lokale Protokolle; Cursor weniger. Community-Server protokollieren oft nichts. Wenn Sie einen Audit-Trail benötigen, der die Überprüfung von Vorfällen übersteht, instrumentieren Sie ihn selbst auf der Serverseite oder schalten ein Gateway ein, das strukturierte Protokolle schreibt. Verlassen Sie sich nicht darauf, dass der Mandant über die Beweise verfügt.

Starte mit botoi zu entwickeln

150+ API-Endpunkte für Abfragen, Textverarbeitung, Bildgenerierung und Entwickler-Tools. Kostenloser Tarif, keine Kreditkarte nötig.