Cyberbedrohungen
Hardcoded Anmeldedaten in MCP als Angriffsziel
Die unsachgemäße Verwaltung geheimer Daten in MCP-Servern kann zu Datenverstößen und Angriffen auf die Supply Chain führen. Wie sehen die Risiken dieser unsicheren Konfigurationen aus, und was kann man tun, um eine Gefährdung zu minimieren?
Wichtige Erkenntnisse:
- MCP ermöglicht KI-Anwendungen den sicheren Zugriff auf externe Datenquellen, aber eine unsachgemäße Verwaltung geheimer Daten birgt erhebliche Risiken.
- Viele der von uns entdeckten MCP-Konfigurationen speichern sensible Anmeldedaten in Klartextdateien und sind anfällig für Diebstahl und Missbrauch.
- Es empfiehlt sich die Implementierung zentralisierter Sicherheitskontrollen, kontinuierlicher Audits und die Verwendung sicherer Standardkonfigurationen.
Das Model Context Protocol (MCP) ist ein Open Source-Standard, mit dessen Hilfe KI-Anwendungen sich mit externen Datenquellen und Tools verbinden. Damit können sie mit Systemen wie Datenbanken, APIs und Services unter Verwendung natürlicher Sprache interagieren. Die Erstellung komplexer Workflows auf Basis von LLMs wird erleichtert.
MCP-basierte Systeme bergen jedoch auch Risiken, etwa Authentifizierungsprobleme. Ein weiteres betrifft die Geheimnisverwaltung für verknüpfte Datenquellen. Unsere Recherche hat gezeigt, dass die MCP-Konfigurationsdateien ein erhebliches Risiko für die privaten Daten von Unternehmen darstellen.
Ein MCP-Server ist ein leichtgewichtiger Service, der als Vermittler zwischen KI-Anwendungen und Datenquellen fungiert. Eine der Kernfunktionen des Servers besteht darin, die Authentifizierung und Autorisierung für zugrunde liegende Systeme zu übernehmen und KI-Clients Ressourcen (Daten) und Tools (Funktionen) zur Verfügung zu stellen. Dies erfordert häufig die Weitergabe geheimer Daten – wie API-Schlüssel oder Anmeldedaten – an die Datenquellen-API.
Die Anmeldedaten für die Datenquelle werden auf verschiedene Weise konfiguriert:
- Auf dem Server festgelegt:
- fest codiert oder zur Laufzeit eingefügt
- Keine rollenbasierte Zugriffskontrolle wegen Anwendungsfällen mit übermäßigen Privilegien)
- LLM-Client-Konfiguration:
- OAuth-Token oder generischer API-Schlüssel
Theoretisch ist die Übermittlung von Anmeldedaten über den Client die sicherste Methode, wenn sie korrekt implementiert wird. So reduziert der Einsatz eines dynamisch erhaltenen OAuth-Tokens, das sicher in einem Tresor gespeichert ist und vom Client referenziert wird, das Risiko und verbessert die Rückverfolgbarkeit.
Fehlkonfiguration und exponierte Geheimnisse
Leider sind alle schlechten Praktiken auch in den MCP-Konfigurationsdateien vorhanden, so etwa der weit verbreitete Missbrauch von Umgebungsvariablen für die Geheimnisverwaltung. Sensible Anmeldedaten wurden häufig in .env-Dateien gespeichert, fest in Containern codiert und über Protokolle, Speicher-Dumps oder Image Registry zugänglich gemacht. Diese Geheimnisse sind schlecht geschützt und sind bevorzugte Ziele für automatisierte Angriffe und Supply Chain-Verstöße. Wir beziehen uns auch auf die Ergebnisse dieser Studie.
Wir müssen davon ausgehen, dass viele MCP-Serverkonfigurationen zur neuen .env-Datei geworden sind – sie aggregieren Geheimnisse aus allen Datenquellen, die dem LLM zur Verfügung gestellt werden. Der Originalbeitrag beinhaltet mehrere Konfigurationsbeispiele als Bestätigung.
Die Codeanalyse, Dokumentation und Nutzungsmuster der gesammelten MCP-Server-Quellcodes ergab, dass 48 % davon die Verwendung der .env-Datei empfehlen, um die Geheimnisse an den MCP-Server weiterzugeben und bei der Datenquelle zu autorisieren. Die alternative Option besteht darin, die Anmeldedaten in einer JSON-Konfigurationsdatei im Klartext fest zu codieren.
Keiner dieser Ansätze ist sicher, da beide mehrere Geheimnisse in einer einzigen Datei zusammenfassen. Angreifer sind bereits auf der Suche nach öffentlich gemacht .env-Dateien, um über MCP-Bereitstellungskonfigurationen und natürliche Sprachschnittstellen Zugriff auf private Daten zu erhalten.
Arten möglicher Angriffe
Die Gefahr unsicherer Speicherung von Anmeldedaten bei lokal bereitgestellten Datenquellen wird möglicherweise unterschätzt, und bei Cloud-Implementierungen steigt das Risiko erheblich. MCP-Konfigurationen können Zugriff auf kritische Ressourcen wie Cloud-Kontoverwaltung, Datenbanken und viele weitere Ressourcen gewähren. Mit gestohlenen Zugriffs-Token können Angreifer bösartigen Code in verteilte Software-Binärdateien einschleusen und so einen Supply Chain-Angriff auslösen.
Es ist nur eine Frage der Zeit, bis sich Angreifer an die neue Situation anpassen und die MCP-Serverkonfiguration ins Visier nehmen, um an sensible Unternehmensdaten zu gelangen. Mit der zunehmenden Verbreitung von LLM und MCP ist mit einer neuen Art von Angriffen zu rechnen. Der grundlegende Unterschied zur Vergangenheit besteht darin, dass Angreifer keine umfangreichen technischen Kenntnisse mehr benötigen. Eine gestohlene MCP-Konfiguration und eine natürliche Sprachabfrage, die überhaupt nicht bösartig klingen muss, sind alles, was sie brauchen.
Domänenadministratoren sollten Regeln für die sichere Nutzung von MCP durchsetzen und erwägen, den zentralisierten MCP-Zugriff gegenüber nicht verwalteten individuellen Konfigurationen zu sichern.
Auch wenn möglicherweise nicht viele MCP-Server das sichere Laden von Geheimnissen unterstützen, kann ein einfaches Wrapper-Skript, das die Geheimnisse aus einem Tresor abruft, das Risiko mindern. Nutzer sollten besonders vorsichtig sein und überprüfen, wie geheime Anmeldedaten innerhalb der MCP-Workflows gespeichert werden.
So schützen Sie MCP-Geheimnisse
Wir haben eine Sample-Konfiguration eines MCP-Servers für einen JIRA-Server überprüft und festgestellt, dass sensible Informationen, darunter JIRA_API_TOKEN, CONFLUENCE_API_TOKEN und zugehörige Benutzernamen in einer Klartext-JSON-Datei fest codiert waren.
Schlechte DevOps-Praktiken, insbesondere im Bereich der Geheimnisverwaltung, sind die Voraussetzungen für eine tickende Zeitbombe. Glücklicherweise machen nicht alle Fehler. Ein gutes Beispiel ist das beliebte GitHub-CLI-Tool, das den GitHub-Zugriffs-Token sicher im System-Tresor speichert. Der Originalbeitrag zeigt an einem eigenen Beispiel, wie das funktionieren kann. Dafür mussten wir folgende Herausforderungen lösen: sichere Speicherung und Abruf von Anmeldedaten, Erweiterung der Geheimnisse bei der Ausführung auf dem MCP-Server sowie das Ersetzen des Konfigurationsformats.
Fazit und Empfehlungen
Unabhängig davon, wie Sie Ihren MCP-Server betreiben, ist es wichtig, ein sicheres Geheimnismanagement und Workflows zu implementieren, die Geheimnisse nach Möglichkeit aus der Umgebung fernhalten. Die Umwandlung von Best Practices von Empfehlungen in die Norm verringert das Risiko versehentlicher Leaks, Fehlkonfigurationen und Exponierung. Klartext und fest codierte Anmeldedaten sind, unabhängig vom Dateinamen, niemals eine sichere Option!
Trend Micro und seine Vision One™-Plattform bieten die Tools und Anleitungen, mit denen Sie verhindern können, dass diese Risiken zu umfassenden Datenverletzungen führen.
Darüber hinaus bieten Vision One™ Cyber Risk Exposure Management und Cloud Risk Management kontinuierliche Sicherheit, Compliance und Governance, indem sie unerwünschte Risiken und unsichere Cloud-Richtlinien identifizieren. Sie unterstützen Teams bei der Verwaltung und Behebung von Fehlkonfigurationen von Cloud-Ressourcen – eine wichtige Funktion beim Umgang mit MCP-Bereitstellungen in Cloud-Umgebungen.
Der Artifact Scanner von Trend Micro hilft dabei, zugängliche Geheimnisse wie API-Schlüssel, Passwörter und Token in MCP-Server-Repositorys zu erkennen und zu blockieren, bevor sie in die Produktion gelangen, wodurch das Risiko von Datenverletzungen verringert wird.
Trend Vision One™ – Container Security erkennt zugängliche Geheimnisse in Containern, die in Kubernetes-basierten Microservices ausgeführt werden, und trägt so dazu bei, das Risiko von Datenlecks und unbefugtem Zugriff zu verringern.