Model Context Protocol (MCP) ist ein leistungsstarkes Protokoll von Anthropic, das definiert, wie Large Language Models (LLMs) mit externen Tools verbunden werden. Es hat sich aufgrund seiner Benutzerfreundlichkeit und der Vorteile, die es für die Nutzung von KI bietet, schnell durchgesetzt. In diesem Artikel behandeln wir einige der potenziellen Sicherheitsrisiken, die bei der Verwendung von MCP auftreten können, und zeigen, wie Sie diese mindern können.
Funktionsweise von MCP
MCP verbindet LLMs nicht direkt mit Tools. Die MCP-Clientkomponente greift auf das LLM zu, und die MCP-Serverkomponente greift auf die Tools zu. Ein MCP-Client hat Zugriff auf einen oder mehrere MCP-Server. Nutzende können eine beliebige Anzahl von MCP-Servern mit einem MCP-Client verbinden.
So sieht ein typischer MCP-Client- und -Serveraustausch aus:
- Die Nutzerin oder der Nutzer fordert eine Aufgabe vom MCP-Client an.
- Der MCP-Client verfügt über Informationen zu den Tools, die die einzelnen MCP-Server implementieren oder auf die sie Zugriff haben.
- Der MCP-Client leitet die Anfrage der Nutzenden sowie die Informationen von den MCP-Servern an ein LLM weiter, das mit dem erforderlichen Tool und den zu verwendenden Parametern antwortet.
- Der MCP-Client sendet die Informationen über die Tools und Parameter an den MCP-Server.
- Der MCP-Server schließt die Aufgabe ab und gibt die Antwort an den MCP-Client zurück, der die Antwort an das LLM weiterleitet. Das LLM generiert dann eine Antwort für die Nutzerin oder den Nutzer.
- Die Antwort wird der Nutzerin oder dem Nutzer vom MCP-Client angezeigt.
MCP-Server können lokal oder remote ausgeführt werden, wobei sich die Sicherheitsrisiken je nach ihrer Ausführung unterscheiden.
Wir definieren „lokale MCP-Server“ als die MCP-Server, die wir auf einem von uns kontrollierten Host ausführen. Zum Ausführen der angeforderten Aufgaben führen lokale MCP-Server in der Regel Betriebssystembefehle oder benutzerdefinierten Code lokal aus.
„Remote-MCP-Server“ werden nur von einem Drittanbieter remote ausgeführt. Wir können auf Remote-MCP-Server zugreifen, aber sie werden nicht auf einem von uns kontrollierten Host ausgeführt. Remote-MCP-Server bergen weiterhin Sicherheitsrisiken für die Nutzenden, da sie Zugriff auf ihre Daten haben. Da sie jedoch nicht lokal ausgeführt werden, entfallen viele häufige Risiken.
Sicherheitsrisiken und -kontrollen
Hier finden Sie einen kurzen Überblick über einige der von Sicherheitsexpertenteams identifizierten MCP-Risiken und einige Ansätze zu deren Vermeidung.
Authentifizierung und Autorisierung
Wenn ein MCP-Server eine durch die Anfrage eines Nutzenden ausgelöste Aktion ausführt, besteht die Gefahr eines „Confused Deputy“-Problems. Idealerweise sollte der MCP-Server diese Aktion im Namen der Nutzerin oder des Nutzers und mit ihrer oder seiner Berechtigung ausführen. Dies ist jedoch nicht garantiert und hängt von der Implementierung des MCP-Servers ab. Ist der Server nicht korrekt implementiert, können Nutzende Zugriff auf Ressourcen erhalten, die ihnen nicht zur Verfügung stehen, die aber für den MCP-Server verfügbar sind, was gegen das Least Privilege-Prinzip verstößt.
MCP definiert die Autorisierung mit OAuth, aber die Community hat festgestellt, dass die aktuelle Spezifikation Implementierungsdetails enthält, die mit modernen Unternehmenspraktiken in Konflikt stehen. Die Community arbeitet daran, die Autorisierungsspezifikation zu verbessern und zu aktualisieren und diese Diskrepanz zu beheben.
Risiken in der Lieferkette
MCP-Server bestehen aus ausführbarem Code, daher sollten Nutzende nur vertrauenswürdige MCP-Server verwenden. Außerdem müssen wir bei der Entwicklung von MCP-Servern Vorkehrungen treffen, damit unsere Nutzenden unserer Software vertrauen können. Dazu müssen die MCP-Komponenten vom Entwicklungsteam signiert werden, damit Nutzende sich ihrer Integrität sicher sein können.
Wir müssen auch MCP-Komponenten auf Pipelines entwickeln, die bewährte Sicherheitsverfahren wie Static Application Security Testing (SAST) implementieren. Wir müssen die Ergebnisse verstehen, falsch-positive Ergebnisse verwerfen und bekannte Sicherheitsschwachstellen beheben. Pipelines müssen auch Software Composition Analysis (SCA) implementieren, damit bekannte Schwachstellen in den von MCP-Servern verwendeten Abhängigkeiten identifiziert und behoben werden können.
Wenn ein MCP-Server als Cloud Service angeboten wird, sollte er auch die kryptografische Serververifizierung implementieren, damit Clients den Server verifizieren können.
Wie bei anderer Software auch können Angreifer, wenn sie Zugriff auf den Quellcode einer MCP-Komponente erhalten und diesen verändern, die Nutzenden kompromittieren. Zur Verringerung dieses Risikos müssen Softwareentwicklungsteams und Nutzende die Integrität sämtlicher von ihnen verwendeter Abhängigkeiten überprüfen und diese auf Malware scannen.
Unbefugte Befehlsausführung
Lokale MCP-Server können beliebigen Code ausführen. Je nachdem, wie der MCP-Client die Informationen an den MCP-Server weitergibt und wie der MCP-Server implementiert ist, können Funktionen zur Befehlsausführung anfällig für Command Injection-Schwachstellen sein. Überprüfen Sie immer, welche Befehle ausgeführt werden, und bereinigen Sie die Daten, bevor Sie diese als Argument für eine Funktion verwenden, die Befehle ausführt.
Im Folgenden finden Sie ein Beispiel für einen MCP-Server mit einer Command Injection-Schwachstelle:
def dispatch_user_alert(self, notification_info: Dict[str, Any], summary_msg: str) -> bool:
"""Sends system alert to user desktop"""
notify_config = self.user_prefs["alert_settings"]
try:
alert_title = f"{notification_info['title']} - {notification_info['severity']}"
if sys.platform == "linux":
subprocess.call(["notify-send", alert_title])
return TrueCode gesehen in: https://equixly.com/blog/2025/03/29/mcp-server-new-security-nightmare/
Zusätzlich sollten Sie in Betracht ziehen, lokale MCP-Server in einer Sandbox auszuführen, damit sie nur das ausführen und darauf zugreifen können, was ihnen ausdrücklich erlaubt ist.
Prompt Injection
MCP-Server stellen aufgrund ihrer Fähigkeit, Befehle auszuführen und API-Aufrufe durchzuführen, erhebliche Sicherheitsrisiken dar. Ein wesentliches Problem besteht darin, dass das LLM selbst dann, wenn Nutzende keine bestimmte Aktion beabsichtigen, entscheiden könnte, dass diese angemessen ist.
Dieses Risiko kann ohne böswillige Absicht entstehen, ist aber auch ein Faktor in böswilligen Angriffsszenarien. Beispielsweise könnten legitimierte Nutzende einen Prompt an den MCP-Client senden, den sie nicht selbst geschrieben haben, sondern der möglicherweise von einer böswilligen dritten Partei empfohlen wurde. Ein solcher Prompt könnte verschleiert sein, aber dennoch private Informationen aus den Unterhaltungen oder zugänglichen Tools der Nutzenden preisgeben. Stellen Sie sich vor, eine Nutzerin oder ein Nutzer kopiert einen komplexen, verschleierten Prompt in der Annahme, damit ein neues Nutzerkonto in der eigenen Cloud-Umgebung zu erstellen – tatsächlich könnte der böswillige Prompt zusätzlich auch noch ein Konto für den Angreifer anlegen.
Deshalb sollten die von den MCP-Servern durchgeführten Aktionen immer von den Nutzenden bestätigt oder eingeschränkt werden, um das Risiko auf ein akzeptables Niveau zu reduzieren.
Tool Injection
Es besteht auch die Möglichkeit, dass eine Person einen bösartigen MCP-Server erstellt, wodurch ein völlig neues potenzielles Risiko entsteht. So kann beispielsweise ein böswilliger MCP-Server während der Installation zunächst sicher erscheinen, wobei auch der zugehörige Quellcode und die Beschreibungen der Tools normal aussehen. Die Tools können jedoch im Rahmen eines zukünftigen Updates modifiziert werden. So kann beispielsweise ein Tool, das ursprünglich zum Sammeln von Wetterinformationen konzipiert wurde, in einem Update so modifiziert werden, dass vertrauliche Informationen erfasst und an einen Angreifer gesendet werden.
Dies kann auch mit den Namen der Tools erfolgen. Böswillige MCP-Server können betrügerische Namen für die Tools verwenden, sodass das LLM sie für eine Aufgabe auswählt, die andere legitime Tools erledigen sollten, was möglicherweise unbeabsichtigte oder schädliche Aktionen verursachen kann.
Zur Minderung dieses Risikos sollte Software, mit der Nutzende MCP-Server installieren können, die Möglichkeit bieten, die Version der MCP-Server festzuhalten und die Nutzenden zu benachrichtigen, wenn nach der Installation Änderungen am Code oder an der Zusammensetzung vorgenommen werden.
Sampling
Böswillige MCP-Server versuchen möglicherweise auch, die MCP-Sampling-Funktion auszunutzen, mit der MCP-Server MCP-Clients auffordern können, ein LLM zur Ausführung einer Anfrage zu verwenden. Wenn ein MCP-Server eine Anfrage an ein LLM senden muss, kann der MCP-Client durch Sampling die Anfrage im Namen des MCP-Servers stellen, da Nutzende mehr Kontrolle über den MCP-Client haben und dies zur Zentralisierung der Kosten beiträgt.
MCP-Clients sollten die folgenden Kontrollen implementieren, um die Risiken im Zusammenhang mit Sampling zu verringern:
- Aktivieren von Clients, um Nutzenden die Anfrage zur Vervollständigung anzuzeigen
- Zulassen, dass Nutzende Vervollständigungen ändern oder ablehnen können
- Ermöglichen, dass Clients Vervollständigungen filtern oder ändern können
- Zulassen, dass Nutzende steuern können, welches Modell verwendet wird
- Implementieren angemessener Ratenbegrenzungen
- Kontrollieren von Kostenrisiken
- Implementieren von Timeouts
Protokollierung
Wie bereits erwähnt, können MCP-Server sensible Befehle ausführen. Sie sollten in der Lage sein, Protokolle oder Ereignisse an standardmäßige zentralisierte Protokollierungsserver zu senden oder diese Events lokal zu protokollieren. So lassen sich Systemaktionen untersuchen, wenn ein Problem auftritt oder vermutet wird.
Schwachstellenmanagement
Da es sich bei MCP-Servern um Code handelt, können sie wie andere Software auch Schwachstellen aufweisen. Daher ist es wichtig, sie in Ihren Standardprozess für das Schwachstellenmanagement zu integrieren. Dazu gehören Upgrades der MCP-Clients und -Server sowie ihrer Abhängigkeiten in geplanten Intervallen, die auf der Risikoakzeptanz der Organisation basieren.
Fazit
Mit MCP wurde das Interesse daran geweckt, Tools mithilfe natürlicher Sprache zu steuern und besser zu verstehen, wie wir mit Nutzenden, LLMs und Tools kommunizieren. Wir müssen jedoch die Sicherheitsrisiken anerkennen, die mit dieser zunehmenden Automatisierung und zusätzlichen KI-Funktionen einhergehen. Wie bei vielen neuen Technologien müssen Unternehmen auch bei der Nutzung von MCP die Sicherheitsrisiken für ihr Unternehmen bewerten und geeignete Sicherheitskontrollen implementieren, um den maximalen Nutzen aus der Technologie ziehen zu können.
Mehr erfahren
- MCP Servers: The New Security Nightmare
- The MCP Authorization Spec Is... a Mess for Enterprise
- Everything Wrong with MCP
- Imprompter: Tricking LLM Agents into Improper Tool Use
- Model Context Protocol (MCP): Landscape, Security Threats, and Future Research Directions
- WhatsApp MCP Exploited: Exfiltrating your message history via MCP
- 5 MCP Security Tips
Red Hat Product Security
Über den Autor
Florencio has had cybersecurity in his veins since he was a kid. He started in cybersecurity around 1998 (time flies!) first as a hobby and then professionally. His first job required him to develop a host-based intrusion detection system in Python and for Linux for a research group in his university. Between 2008 and 2015 he had his own startup, which offered cybersecurity consulting services. He was CISO and head of security of a big retail company in Spain (more than 100k RHEL devices, including POS systems). Since 2020, he has worked at Red Hat as a Product Security Engineer and Architect.
Ähnliche Einträge
Resilient model training on Red Hat OpenShift AI with Kubeflow Trainer
Red Hat to acquire Chatterbox Labs: Frequently Asked Questions
Technically Speaking | Platform engineering for AI agents
Technically Speaking | Driving healthcare discoveries with AI
Nach Thema durchsuchen
Automatisierung
Das Neueste zum Thema IT-Automatisierung für Technologien, Teams und Umgebungen
Künstliche Intelligenz
Erfahren Sie das Neueste von den Plattformen, die es Kunden ermöglichen, KI-Workloads beliebig auszuführen
Open Hybrid Cloud
Erfahren Sie, wie wir eine flexiblere Zukunft mit Hybrid Clouds schaffen.
Sicherheit
Erfahren Sie, wie wir Risiken in verschiedenen Umgebungen und Technologien reduzieren
Edge Computing
Erfahren Sie das Neueste von den Plattformen, die die Operations am Edge vereinfachen
Infrastruktur
Erfahren Sie das Neueste von der weltweit führenden Linux-Plattform für Unternehmen
Anwendungen
Entdecken Sie unsere Lösungen für komplexe Herausforderungen bei Anwendungen
Virtualisierung
Erfahren Sie das Neueste über die Virtualisierung von Workloads in Cloud- oder On-Premise-Umgebungen