Hintergrund
Diese Sicherheitscheckliste wurde von @SlowMist_Team erstellt und wird von diesem verwaltet, um die Sicherheit von Blockchain- und KI-Ökosystemen zu verbessern. Besonderer Dank gilt FENZ.AI für seine wertvollen Beiträge zu dieser Checkliste.
Übersicht
Seit ihrer Veröffentlichung Ende 2024 wurde die MCP in Mainstream-KI-Anwendungen wie Claude Desktop und Cursor weit verbreitet. Die rasche Verbreitung der MCP birgt jedoch auch neue Sicherheitsherausforderungen. Die aktuelle MCP-Architektur besteht aus drei Teilen: Host (lokal betriebene KI-Anwendungsumgebung), Client (Komponente, die für die Kommunikation mit dem Server und den Werkzeugaufruf verantwortlich ist) und Server (der dem MCP-Plugin entsprechende Server). Benutzer interagieren über den Host mit der KI, der Client analysiert die Benutzeranfrage und leitet sie an den MCP-Server weiter, um Werkzeugaufrufe oder Ressourcenzugriffe auszuführen. In Szenarien mit mehreren Instanzen und Komponenten, die zusammenarbeiten, birgt diese Architektur eine Reihe von Sicherheitsrisiken, insbesondere in sensiblen Szenarien wie Kryptowährungstransaktionen oder der Anpassung von LLM-Plugins, die geeignete Sicherheitsmaßnahmen erfordern.
Daher ist es entscheidend, eine umfassende MCP-Sicherheitscheckliste zu erstellen und zu befolgen. Diese Checkliste deckt die Sicherheitsaspekte von Benutzerschnittstellen, Client-Komponenten, Service-Plugins, Multi-MCP-Kooperationsmechanismen und spezifischen Bereichen (wie z. B. Kryptowährungsszenarien) ab und soll Entwicklern helfen, potenzielle Risiken systematisch zu erkennen und rechtzeitig zu verhindern. Durch die Umsetzung dieser Sicherheitsmaßnahmen kann die Gesamtstabilität und Kontrollierbarkeit von MCP-Systemen effektiv verbessert und sichergestellt werden, dass die Sicherheit von KI-Anwendungen mit der rasanten Entwicklung Schritt hält.
Verwendung
Diese Checkliste basiert auf potenziellen Risikopunkten, die bei der Prüfung von MCP-Projekten festgestellt wurden, und soll Entwicklern helfen, die Sicherheit ihrer MCP-Implementierungen zu gewährleisten. Wir verwenden 3 Prioritätsstufen, um die Wichtigkeit der einzelnen Elemente zu kennzeichnen:
- 🟢️ Kennzeichnet empfohlene Elemente, die aber unter bestimmten Umständen weggelassen werden können.
- 🔶 Kennzeichnet dringend empfohlene Elemente, die aber in Ausnahmefällen weggelassen werden können, wobei das Weglassen negative Auswirkungen auf die Sicherheit haben kann.
- 🟥️ Kennzeichnet Elemente, die unter keinen Umständen weggelassen werden dürfen, da das Entfernen dieser Elemente zu Systemausfällen oder Sicherheitslücken führen kann.
MCP-Server (MCP-Plugin) Sicherheit
Der MCP-Dienst ist ein externer Dienst, der Tools, Ressourcen und Funktionen für KI-Aufrufe bereitstellt. Er enthält in der Regel Ressourcen, Tools und Prompts. Im Folgenden sind einige Überlegungen zur Sicherung eines MCP-Servers aufgeführt:
API-Sicherheit
- Eingabevalidierung: 🟥️ Validieren Sie alle API-Eingaben strikt, um Injection-Angriffe und illegale Parameter zu verhindern. Dazu gehört die Validierung von Datentypen, Längen und Formaten sowie die Bereinigung und Maskierung von Eingaben.
- API-Ratenbegrenzung: 🔶 Implementieren Sie Ratenbegrenzungen für API-Aufrufe, um Missbrauch und Angriffe zu verhindern. Dies kann verhindern, dass böswillige Benutzer den Server durch das Senden einer großen Anzahl von Anfragen überlasten.
- Ausgabe-Kodierung: 🔶 Kodieren Sie API-Ausgaben korrekt, um Cross-Site-Scripting (XSS)-Angriffe zu verhindern. Dazu gehört die Kodierung von Ausgaben wie HTML, JavaScript und URLs.
Server-Authentifizierung und -Autorisierung
- Zugriffskontrolle: 🟥️ Implementieren Sie eine rollenbasierte Zugriffskontrolle, um den Zugriff auf Ressourcen zu beschränken und das Prinzip der minimalen Rechte durchzusetzen. Nur autorisierte Benutzer sollten Zugriff auf bestimmte Ressourcen haben.
- Verwaltung von Anmeldedaten: 🟥️ Verwalten und speichern Sie Anmeldedaten für Dienste sicher, vermeiden Sie Hardcoding und verwenden Sie Key-Management-Dienste. Dazu gehört die Verwendung von Verschlüsselung zur Speicherung von Anmeldedaten und die regelmäßige Rotation von Anmeldedaten.
- Authentifizierung externer Dienste: 🟥️ Verwenden Sie sichere Methoden zur Authentifizierung bei Drittanbietern. Dazu gehört die Verwendung sicherer Protokolle wie OAuth 2.0 oder SAML.
- Minimale Rechte: 🔶 Dienstprozesse werden mit den minimal erforderlichen Rechten ausgeführt, um die potenzielle Angriffsfläche und das Risiko von Berechtigungserweiterungen zu verringern. Dies bedeutet, dass der Dienst nur die Berechtigungen haben sollte, die zur Ausführung seiner Funktionen erforderlich sind.
- Rotation von API-Schlüsseln: 🔶 Rotieren Sie API-Schlüssel und Dienstnachweise regelmäßig und automatisch und begrenzen Sie die Gültigkeitsdauer der Schlüssel. Dies kann das Risiko der Kompromittierung von Schlüsseln verringern.
- Dienstauthentifizierung: 🔶 Stellen Sie einen Mechanismus bereit, mit dem Tools die Dienstidentität überprüfen können, um die sichere Verwendung durch den Client zu ermöglichen. Dies kann Clients helfen, zu überprüfen, ob sie mit einem vertrauenswürdigen Dienst kommunizieren.
Kontrolle der Hintergrundpersistenz
- Lebenszyklusmanagement: 🟥️ Implementieren Sie ein striktes Lebenszyklusmanagement für MCP-Plugins, das mit dem Client synchronisiert ist. Plugins sollten ordnungsgemäß gestartet und gestoppt werden, wenn sie nicht mehr benötigt werden.
- Bereinigung beim Schließen: 🟥️ Erzwingen Sie die Bereinigung aller MCP-Hintergrundprozesse, wenn der Client geschlossen wird. Dies kann verhindern, dass bösartige Plugins nach dem Schließen des Clients weiterlaufen.
- Mechanismus zur Zustandsprüfung: 🔶 Überprüfen Sie regelmäßig den Status von MCP-Plugins, um anormale Persistenz zu erkennen. Dies kann helfen, Plugins zu identifizieren, die nicht ordnungsgemäß funktionieren.
- Überwachung von Hintergrundaktivitäten: 🔶 Überwachen und protokollieren Sie alle MCP-Hintergrundaktivitäten. Dies kann helfen, bösartige Aktivitäten zu identifizieren.
- Aktivitätseinschränkungen: 🔶 Beschränken Sie die Arten und die Dauer der Aktionen, die MCP-Plugins im Hintergrund ausführen können. Dies kann den Schaden durch bösartige Plugins verringern.
Bereitstellung und Laufzeitsicherheit
- Isolierte Umgebung: 🟥️ Dienste werden in einer isolierten Umgebung (Container, VM, Sandbox) ausgeführt, um Ausbrüche und laterale Bewegungsangriffe zu verhindern. Dies kann verhindern, dass bösartige Dienste andere Dienste oder Systeme beeinträchtigen.
- Containersicherheit: 🟥️ Verwenden Sie gehärtete Container-Sicherheitskonfigurationen und Nicht-Root-Benutzer, implementieren Sie eine unveränderliche Infrastruktur und Laufzeitschutz. Dies kann die Sicherheit von Containern erhöhen.
- Sicheres Booten: 🔶 Überprüfen Sie die Integrität des Dienststartprozesses, implementieren Sie eine sichere Boot-Kette und Integritätsprüfungen. Dies kann verhindern, dass bösartige Dienste beim Start eingeschleust werden.
- Sicherheit von Umgebungsvariablen: 🔶 Sensible Umgebungsvariablen sind geschützt und werden nicht in Protokollen offengelegt. Dies kann verhindern, dass bösartige Benutzer auf sensible Informationen zugreifen.
- Ressourcenbeschränkungen: 🔶 Implementieren Sie Beschränkungen für die Ressourcennutzung, um zu verhindern, dass LLMs bei Fehlern viele Zyklen wiederholt aufrufen. Dies kann verhindern, dass bösartige Dienste Systemressourcen erschöpfen.
Code- und Datenintegrität
- Integritätsprüfungsmechanismus: 🟥️ Verwenden Sie Mechanismen wie digitale Signaturen und Hash-Prüfungen, um sicherzustellen, dass der Code nicht manipuliert wurde. Dies kann verhindern, dass bösartige Benutzer den Code ändern.
- Fernüberprüfung: 🔶 Unterstützen Sie einen Mechanismus zur Fernüberprüfung der Codeintegrität. Dies ermöglicht es Remote-Benutzern zu überprüfen, ob der Code manipuliert wurde.
- Code-Verschleierung und -Härtung: 🟢️ Wenden Sie Code-Verschleierungs- und -Härtungstechniken an, um Reverse Engineering zu erschweren. Dies kann es böswilligen Benutzern erschweren, den Code zu verstehen und zu ändern.
Lieferkettensicherheit
- Abhängigkeitsverwaltung: 🟥️ Verwalten Sie Drittanbieterabhängigkeiten sicher. Dazu gehört die Verfolgung von Abhängigkeiten, die Sicherstellung, dass sie auf dem neuesten Stand sind, und die Suche nach Schwachstellen.
- Paketintegrität: 🟥️ Überprüfen Sie die Integrität und Authentizität von Paketen. Dies kann verhindern, dass böswillige Benutzer bösartige Pakete einschleusen.
- Herkunftsüberprüfung: 🔶 Überprüfen Sie die Herkunft aller Codes und Abhängigkeiten. Dies kann dazu beitragen, dass der Code aus einer vertrauenswürdigen Quelle stammt.
- Build-Sicherheit: 🔶 Stellen Sie sicher, dass der Build-Prozess sicher ist. Dazu gehört die Verwendung sicherer Build-Tools und die Sicherstellung, dass die Build-Umgebung sicher ist.
Überwachung und Protokollierung
- Anomalieerkennung: 🟥️ Erkennen und melden Sie anomale Aktivitätsmuster. Dies kann helfen, bösartige Aktivitäten zu erkennen.
- Detaillierte Protokollierung: 🟥️ Protokollieren Sie alle Dienstaktivitäten und Sicherheitsereignisse. Dies kann bei der Untersuchung von Sicherheitsereignissen helfen.
- Warnungen bei Sicherheitsereignissen: 🟥️ Konfigurieren Sie Echtzeitwarnungen für wichtige Sicherheitsereignisse. Dies kann helfen, schnell auf Sicherheitsereignisse zu reagieren.
- Zentrale Protokollverwaltung: 🔶 Sammeln und analysieren Sie Protokolle zentral. Dies kann einen umfassenderen Überblick über Sicherheitsereignisse bieten.
- Protokollintegrität: 🔶 Stellen Sie die Protokollintegrität sicher, um Manipulationen zu verhindern. Dies kann verhindern, dass bösartige Benutzer Protokolle löschen oder ändern.
- Audit-Funktionen: 🔶 Unterstützen Sie detaillierte Audits und Ereignisuntersuchungen. Dies kann helfen, die Ursache von Sicherheitsereignissen zu ermitteln.
Isolierung der Aufrufumgebung
- Isolierung zwischen MCPs: 🟥️ Stellen Sie die Betriebsisolierung zwischen mehreren MCP-Diensten sicher. Dies kann verhindern, dass bösartige MCP-Dienste andere MCP-Dienste beeinträchtigen.
- Zugriffskontrolle auf Ressourcen: 🟥️ Weisen Sie jedem MCP-Dienst klar definierte Zugriffsberechtigungen für Ressourcen zu. Dies kann die Ressourcen beschränken, auf die ein bösartiger MCP-Dienst zugreifen kann.
- Trennung von Werkzeugberechtigungen: 🔶 Werkzeuge aus verschiedenen Bereichen verwenden unterschiedliche Berechtigungssätze. Dies kann den Schaden durch bösartige Werkzeuge verringern.
Plattformkompatibilität und Sicherheit
- Isolierung von Systemressourcen: 🟥️ Implementieren Sie geeignete Strategien zur Isolierung von Ressourcen basierend auf den verschiedenen Eigenschaften des Betriebssystems. Dies kann verhindern, dass bösartige Dienste andere Dienste oder Systeme beeinträchtigen.
- Kompatibilitätstests zwischen Plattformen: 🔶 Testen Sie die Konsistenz des Sicherheitsverhaltens von MCP-Diensten auf verschiedenen Betriebssystemen und Clients. Dies kann sicherstellen, dass der Dienst auf allen Plattformen sicher ist.
- Bewertung plattformspezifischer Risiken: 🔶 Bewerten Sie die einzigartigen Sicherheitsrisiken und Maßnahmen zur Risikominderung für bestimmte Plattformen. Dies kann helfen, plattformspezifische Sicherheitsrisiken zu erkennen und zu mindern.
- Umgang mit Client-Unterschieden: 🔶 Stellen Sie sicher, dass Sicherheitskontrollen an die Unterschiede in den verschiedenen Client-Implementierungen angepasst werden können. Dies kann sicherstellen, dass der Dienst mit allen Clients sicher ist.
Datensicherheit und Datenschutz
- Datenminimierung: 🟥️ Erheben und verarbeiten Sie nur die notwendigen Daten. Dies kann das Risiko von Datenlecks verringern.
- Datenverschlüsselung: 🟥️ Sensible Daten werden bei der Speicherung und Übertragung verschlüsselt. Dies kann verhindern, dass bösartige Benutzer auf sensible Informationen zugreifen.
- Datenisolierung: 🟥️ Die Daten verschiedener Benutzer werden effektiv isoliert. Dies kann verhindern, dass bösartige Benutzer auf die Daten anderer Benutzer zugreifen.
- Zugriffskontrolle auf Daten: 🟥️ Implementieren Sie eine strikte Zugriffskontrolle auf Daten. Dies kann den Zugriff auf Daten beschränken.
- Identifizierung sensibler Daten: 🟥️ Identifizieren und behandeln Sie sensible Daten automatisch auf besondere Weise. Dies kann helfen, Datenlecks zu verhindern.
Ressourcensicherheit
- Zugriffskontrolle auf Ressourcen: 🟥️ Implementieren Sie eine feinkörnige Zugriffskontrolle auf Ressourcen. Dies kann den Zugriff auf bestimmte Ressourcen beschränken.
- Ressourcenbeschränkungen: 🔶 Beschränken Sie die Größe und Anzahl einzelner Ressourcen. Dies kann verhindern, dass bösartige Benutzer Systemressourcen erschöpfen.
- Sicherheit von Ressourcenvorlagen: 🔶 Stellen Sie sicher, dass die Parameter von Ressourcenvorlagen validiert und bereinigt werden. Dies kann verhindern, dass bösartige Benutzer bösartigen Code einschleusen.
- Kennzeichnung sensibler Ressourcen: 🔶 Kennzeichnen und behandeln Sie sensible Ressourcen auf besondere Weise. Dies kann helfen, Datenlecks zu verhindern.
Werkzeugimplementierungssicherheit
- Sichere Codierungspraktiken: 🟥️ Befolgen Sie sichere Codierungsstandards und Best Practices. Dies kann die Anzahl der Schwachstellen im Code verringern.
- Werkzeugisolierung: 🟥️ Die Werkzeugausführung erfolgt in einer kontrollierten Umgebung, um Auswirkungen auf Systemebene zu verhindern. Dies kann verhindern, dass bösartige Werkzeuge andere Dienste oder Systeme beeinträchtigen.
- Eingabevalidierung: 🟥️ Validieren Sie alle Eingaben vom Client strikt. Dies kann verhindern, dass bösartige Benutzer bösartigen Code einschleusen.
- Werkzeugberechtigungskontrolle: 🟥️ Jedes Werkzeug verfügt nur über die minimalen Berechtigungen, die zur Erledigung seiner Aufgabe erforderlich sind. Dies kann den Schaden durch bösartige Werkzeuge verringern.
- Datenvalidierung: 🟥️ Validieren Sie die von den Werkzeugen verarbeiteten Daten, um Injection und Manipulation zu verhindern. Dies kann verhindern, dass bösartige Benutzer bösartige Daten einschleusen.
- Werkzeugverhaltensbeschränkungen: 🟥️ Beschränken Sie den Umfang und die Art der Operationen, die Werkzeuge ausführen können. Dies kann den Schaden durch bösartige Werkzeuge verringern.
- Sicherheit der von Drittanbieterschnittstellen zurückgegebenen Informationen: 🟥️ Überprüfen Sie, ob die von den Schnittstellen zurückgegebenen Informationen den Erwartungen entsprechen, und fügen Sie die zurückgegebenen Informationen nicht direkt in den Kontext ein. Dies kann verhindern, dass bösartige Werkzeuge Schnittstellen von Drittanbietern ausnutzen.
- Fehlerbehandlung: 🔶 Behandeln Sie Fehler sicher, ohne sensible Informationen preiszugeben. Dies kann verhindern, dass bösartige Benutzer Fehlerinformationen ausnutzen.
- Namespace-Isolierung: 🔶 Implementieren Sie eine strikte Namespace-Isolierung für verschiedene Werkzeuge. Dies kann Werkzeugkonflikte verhindern.
MCP-Client-/MCP-Host-Sicherheit
Der Host ist die Umgebung, in der die KI-Anwendung und der MCP-Client ausgeführt werden, und der Einstiegspunkt für die Interaktion zwischen dem Endbenutzer und dem KI-System. Der Client ist eine Komponente innerhalb der KI-Anwendung, die für die Kommunikation mit dem MCP-Dienst, die Verarbeitung von Kontext, Werkzeugaufrufen und die Ergebnisdarstellung zuständig ist. Im Folgenden sind einige Überlegungen zum Schutz des MCP-Clients und des Hosts aufgeführt:
Sicherheit der Benutzerinteraktion
- Sicherheit der Benutzeroberfläche: 🟥️ Die Benutzeroberfläche zeigt deutlich den Berechtigungsbereich und die potenziellen Auswirkungen der KI-Aktionen an und bietet intuitive Sicherheitsindikatoren. Dies kann Benutzern helfen, die der KI gewährten Berechtigungen zu verstehen.
- Bestätigung sensibler Operationen: 🟥️ Hochriskante Operationen (z. B. das Löschen von Dateien, Geldtransfers) erfordern eine ausdrückliche Bestätigung durch den Benutzer. Dies kann verhindern, dass Benutzer versehentlich hochriskante Operationen ausführen.
- Transparente Berechtigungsanfragen: 🟥️ Berechtigungsanfragen erläutern deutlich den Zweck und den Umfang, um Benutzern zu helfen, informierte Entscheidungen zu treffen und eine übermäßige Autorisierung zu vermeiden. Dies kann Benutzern helfen, die der KI gewährten Berechtigungen zu verstehen.
- Operationsvisualisierung: 🔶 Werkzeugaufrufe und Datenzugriffe sind für den Benutzer sichtbar und überprüfbar und bieten detaillierte Betriebsprotokolle. Dies kann Benutzern helfen, zu verstehen, welche Operationen die KI ausführt.
- Informationstransparenz: 🔶 Tools sollten es dem Benutzer ermöglichen, standardmäßig versteckte Tags anzuzeigen, um sicherzustellen, dass der Kontext, den der Benutzer sieht, vollständig und konsistent mit dem tatsächlichen generierten und aufgerufenen Kontext ist, um zu verhindern, dass versteckte Tags bösartige Logik enthalten.
- Status-Feedback: 🔶 Der Benutzer kann den aktuellen MCP-Vorgang, der ausgeführt wird, deutlich erkennen.
KI-Kontrolle und-Überwachung
- Operationsprotokoll: 🟥️ Protokollieren Sie alle wichtigen KI-Operationen und ihre Ergebnisse. Dies kann bei der Untersuchung von Sicherheitsereignissen helfen.
- Anomalieerkennung: 🔶 Erkennen Sie anomale Muster bei Werkzeugaufrufen oder Anfragesequenzen. Dies kann helfen, bösartige Aktivitäten zu erkennen.
- Beschränkungen für Werkzeugaufrufe: 🔶 Implementieren Sie Beschränkungen für die Häufigkeit und Anzahl von Werkzeugaufrufen. Dies kann verhindern, dass bösartige Benutzer die Werkzeuge missbrauchen.
Sicherheit der lokalen Speicherung
- Sichere Speicherung von Anmeldedaten: 🟥️ Verwenden Sie die Systemschlüsselkette oder einen speziellen verschlüsselten Speicher, um Anmeldedaten zu schützen und unbefugten Zugriff zu verhindern. Dies kann verhindern, dass bösartige Benutzer auf die Anmeldedaten zugreifen.
- Isolierung sensibler Daten: 🔶 Implementieren Sie einen Datenisolierungsmechanismus, um sensible Benutzerdaten getrennt von normalen Daten zu speichern und zu verarbeiten. Dies kann verhindern, dass bösartige Benutzer auf sensible Daten zugreifen.
Anwendungssicherheit
- Anwendungsintegrität: 🟥️ Überprüfen Sie die Integrität der Anwendung und der MCP-Plugins, um Manipulationen zu verhindern. Dies kann verhindern, dass bösartige Benutzer die Anwendung ändern.
- Aktualisierungsüberprüfung: 🔶 Host-Anwendungsaktualisierungen werden durch eine digitale Signatur verifiziert. Dies kann sicherstellen, dass das Update aus einer vertrauenswürdigen Quelle stammt.
- Anwendungssandbox: 🟢️ Führen Sie Anwendungen nach Möglichkeit in einer Sandbox-Umgebung aus, um den Systemzugriff zu beschränken. Dies kann den Schaden durch bösartige Anwendungen verringern.
Client-Authentifizierung und -Autorisierung
- Erzwungene Authentifizierung: 🟥️ Erzwingen Sie die Authentifizierung, bevor Sie mit einem wichtigen MCP-Dienst kommunizieren, um anonymen Zugriff zu verhindern. Dies kann verhindern, dass nicht autorisierte Benutzer auf den Dienst zugreifen.
- OAuth-Implementierung: 🔶 Implementieren Sie OAuth 2.1 oder höhere Prozesse korrekt und befolgen Sie Best Practices und Sicherheitsstandards. Dies kann sicherstellen, dass die Authentifizierung sicher ist.
- Statusparameter: 🔶 Implementieren Sie Statusparameter für einige Webclients, um CSRF-Angriffe zu verhindern, und verwenden Sie bei jeder Anfrage einen eindeutigen Zufallswert. Dies kann Cross-Site-Request-Forgery-Angriffe (CSRF) verhindern.
MCP-Werkzeuge und Serververwaltung
- MCP-Werkzeugvalidierung: 🟥️ Überprüfen Sie die Echtheit und Integrität der registrierten Werkzeuge. Dies kann verhindern, dass bösartige Werkzeuge registriert werden.
- Sichere Aktualisierungen: 🟥️ Der MCP-Client sucht regelmäßig nach Sicherheitsaktualisierungen und wendet diese an, um zu überprüfen, ob die aktualisierten Werkzeuge bösartige Beschreibungen enthalten. Dies kann sicherstellen, dass die Werkzeuge auf dem neuesten Stand sind und keinen bösartigen Code enthalten.
- Überprüfung des Funktionsnamens: 🟥️ Überprüfen Sie vor der Registrierung eines Werkzeugs auf Namenskonflikte und potenziell bösartige Überschreibungen. Dies kann verhindern, dass bösartige Werkzeuge vorhandene Werkzeuge überschreiben.
- Erkennung bösartiger MCPs: 🟥️ Überwachen und identifizieren Sie Verhaltensmuster potenziell bösartiger MCPs. Dies kann helfen, bösartige MCPs zu identifizieren.
- MCP-Werkzeugnamenskontrolle: 🔶 Verwenden Sie Namensräume oder eindeutige Kennungen, um Namenskonflikte zu vermeiden. Dies kann Werkzeugkonflikte verhindern.
- Dienstverzeichnis: 🔶 Führen Sie ein autorisiertes Verzeichnis vertrauenswürdiger MCP-Dienste und -Werkzeuge. Dies kann Benutzern helfen, vertrauenswürdige Dienste zu finden.
- Konfliktlösung: 🔶 Es gibt klare Regeln zur Lösung von Konflikten zwischen Werkzeugen mit gleichen Namen.
- Domänenisolierung: 🔶 Werkzeuge aus verschiedenen Domänen sind voneinander isoliert, um gegenseitige Beeinträchtigungen zu verhindern.
- Prioritätsmechanismus: 🔶 Richten Sie klare Regeln für die Funktionspriorität ein, um bösartige Überschreibungen zu vermeiden.
- Versionskontrolle: 🔶 Implementieren Sie eine Versionskontrolle für Funktionen und Werkzeuge, um Änderungen zu erkennen.
- Werkzeugregistrierungs- und -deregistrierungsmechanismus: 🔶 Definieren Sie klare Prozesse für die Registrierung und Deregistrierung von Werkzeugen, um Sicherheitsrisiken durch Legacy-Werkzeuge zu vermeiden.
- Konflikterkennungsmechanismus: 🔶 Erkennen und lösen Sie Funktions- und Ressourcenkonflikte in Multi-MCP-Umgebungen.
- Werkzeugkategorisierung: 🟢️ Kategorisieren Sie Werkzeuge nach Sensibilität und Risikostufe.
Sicherheit von Prompts
- Schutz vor Prompt-Injection: 🟥️ Implementieren Sie mehrschichtige Schutzmaßnahmen, um Prompt-Injection-Angriffe zu verhindern, einschließlich der manuellen Überprüfung kritischer Ausführungen.
- Erkennung bösartiger Anweisungen: 🟥️ Richten Sie einen Mechanismus ein, um potenziell bösartige Benutzeranweisungen zu erkennen und zu blockieren, um zu verhindern, dass das System manipuliert wird, z. B. die Erkennung und Blockierung von vorgeladenen bösartigen Anweisungen während der lokalen Initialisierung und von bösartigen Werkzeugen von MCP-Servern von Drittanbietern, die versteckte schädliche Anweisungen enthalten.
- System Prompt Protection: 🟥️ System Prompts werden klar von Benutzereingaben getrennt, um Manipulationen zu verhindern.
- Filterung sensibler Daten: 🟥️ Filtern Sie sensible personenbezogene Daten aus Prompts und Kontexten.
- Kontextisolierung: 🔶 Stellen Sie sicher, dass die Inhalte aus verschiedenen Quellen voneinander isoliert sind, um Kontextverschmutzung und Datenlecks zu verhindern.
- Prompt-Vorlagen: 🔶 Verwenden Sie sichere Prompt-Vorlagen, um das Risiko von Injections zu verringern.
- Überprüfung der Werkzeugbeschreibung: 🔶 Überprüfen Sie die Werkzeugbeschreibungen auf potenziell bösartige Anweisungen.
- Konsistenzprüfung der Prompts: 🔶 Stellen Sie sicher, dass derselbe Prompt in verschiedenen Umgebungen vorhersehbare und konsistente Ergebnisse liefert.
- Verwaltung des Verlaufs: 🔶 Definieren Sie klare Sicherheitsmechanismen für die Bereinigung des Verlaufs, um das Risiko von Datenlecks durch angesammelte Altdaten zu vermeiden.
Protokollierung und Audit
- Client-Protokollierung: 🟥️ Protokollieren Sie alle Interaktionen mit dem MCP-Dienst, Werkzeugaufrufe und Autorisierungsaktivitäten.
- Aufzeichnung von Sicherheitsereignissen: 🟥️ Protokollieren Sie alle sicherheitsrelevanten Ereignisse, einschließlich fehlgeschlagener Autorisierungen.
- Anomaliealarmierung: 🔶 Erkennen und alarmieren Sie über anomale Aktivitätsmuster.
Server-Authentifizierung und Kommunikationssicherheit
- Server-Authentifizierung: 🟥️ Überprüfen Sie die MCP-Serveridentität, um zu verhindern, dass eine Verbindung zu einem bösartigen Server hergestellt wird, und implementieren Sie Certificate Pinning.
- Zertifikatsüberprüfung: 🟥️ Überprüfen Sie TLS-Zertifikate von Remote-Servern strikt, um Man-in-the-Middle-Angriffe zu verhindern, und überprüfen Sie die Integrität der Zertifikatskette.
- Kommunikationsverschlüsselung: 🟥️ Verwenden Sie TLS 1.2+ für die gesamte Client-Server-Kommunikation und deaktivieren Sie schwache Verschlüsselungssuites.
- Konfiguration sicherer Protokolle: 🔶 Konfigurieren Sie sichere TLS-Parameter und überprüfen und aktualisieren Sie regelmäßig Verschlüsselungsalgorithmen und -protokolle.
Speicherung und Verwaltung von Berechtigungstokens
- Beschränkung des Berechtigungsbereichs: 🟥️ Beschränken Sie den Berechtigungsbereich des Tokens strikt und implementieren Sie das Prinzip der minimalen Rechte.
Automatische Genehmigungskontrolle
- Beschränkung der automatischen Genehmigung: 🟥️ Kontrollieren Sie den Umfang der Werkzeuge und Operationen, die automatisch genehmigt werden können, strikt.
- Verwaltung der Whitelist: 🔶 Definieren Sie klar den Whitelist-Mechanismus für Werkzeuge, die automatisch genehmigt werden können.
- Dynamische Risikobewertung: 🔶 Passen Sie die automatische Genehmigungsrichtlinie dynamisch an den Kontext an.
- Audit des Genehmigungsprozesses: 🔶 Protokollieren und auditieren Sie alle automatischen Genehmigungsentscheidungen.
Sampling-Sicherheit
- Kontrolle des im Kontext enthaltenen Umfangs: 🟥️ Kontrollieren Sie den Umfang des im Sampling enthaltenen Kontexts strikt.
- Filterung sensibler Daten: 🟥️ Filtern Sie sensible Daten aus Sampling-Anfragen und -Antworten.
- Überprüfung von Sampling-Anfragen: 🔶 Überprüfen Sie alle Parameter und Inhalte von Sampling-Anfragen.
- Benutzerkontrolle: 🔶 Stellen Sie sicher, dass der Benutzer eine klare Kontrolle über Sampling-Anfragen und -Ergebnisse hat.
- Sicherheit der Modelleinstellungen: 🔶 Behandeln Sie Informationen zu Modelleinstellungen sicher, um Missbrauch zu verhindern.
- Ergebnisüberprüfung: 🔶 Überprüfen Sie, ob die Sampling-Ergebnisse den Sicherheitsstandards entsprechen.
MCP in verschiedenen LLMs-Anpassung und Aufrufsicherheit
Verschiedene LLM-Backends können unterschiedliche Prioritäten und Ausführungslogiken für den Aufruf von MCP haben, daher muss auf die Sicherheit der Kombination aus LLM und MCP geachtet werden.
LLM-Sichere Ausführung
- Priorisierte Funktionsausführung: 🟥️ Stellen Sie sicher, dass LLM die Funktionen des richtigen Plugins priorisiert ausführen kann.
- Schutz vor bösartigen Prompts: 🟥️ LLM kann das Verhalten von Anweisungen, die in injizierten Mnemonics angefordert werden, in bösartigen Szenarien identifizieren und schützen.
- Sicherer Aufruf: 🟥️ LLM kann die zugehörigen MCP-Funktionen korrekt und sicher aufrufen.
- Schutz sensibler Informationen: 🟥️ Verhindern Sie die Offenlegung sensibler Informationen.
Multimodale Sicherheit
- Multimodale Inhaltsfilterung: 🟥️ Filtern Sie schädliche oder sensible Informationen aus multimodalen Inhalten (z. B. bösartige Prompts in Bildern).
Multi-MCP-Sicherheitsszenarien
Wenn mehrere MCP-Server gleichzeitig aktiviert sind, kann die Installation bösartiger MCPs aufgrund fehlender offizieller Audits die Gesamtsicherheit gefährden.
- Sicherheit in Multi-MCP-Umgebungen: 🟥️ Stellen Sie die Gesamtsicherheit von Multi-MCP-Umgebungen sicher und scannen Sie regelmäßig die installierten MCPs auf Überprüfungen.
- Schutz vor Funktionspriorität-Hijacking: 🟥️ Überprüfen Sie mögliche bösartige Prompt-Voreinstellungen, um zu verhindern, dass die Funktionspriorität bösartig entführt wird.
- Kontrolle von funktionsübergreifenden MCP-Aufrufen: 🟥️ Kontrollieren Sie sichere funktionsübergreifende MCP-Aufrufe, um zu verhindern, dass bösartige MCPs bösartige Prompts zurückgeben, um andere MCPs zur Ausführung sensibler Operationen aufzurufen.
Spezielle Sicherheitspunkte im Zusammenhang mit Kryptowährungs-MCPs
Kryptowährungsbezogene MCPs verfügen in der Regel über Funktionen zur Verwaltung von Kryptowährungs-Wallets und sind mit hohen Risiken verbunden.
- Schutz privater Schlüssel: 🟥️ Verstärken Sie die Sicherheitsmaßnahmen zum Schutz privater Schlüssel, wie z. B. Scrypt.
- Sicherheit der Wallet-Generierung: 🟥️ Sicherheitsgarantie für den Prozess der Generierung von Mnemoni