>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Python

So prüfen Sie MCP-Server auf versteckte Bedrohungen und Backdoors

Das Verbinden von Drittanbieter-Erweiterungen mit KI-Assistenten ist schnell zur Normalität geworden. Wir fügen Cursor, Windsurf oder Claude Desktop bedenkenlos neue MCP-Server hinzu, damit das Modell Dokumentation lesen, Datenbanken abfragen oder Skripte ausführen kann. Doch nur wenige Menschen lesen tatsächlich den Quellcode dieser Tools, bevor sie sie ausführen. Ein großer Fehler.

Jedes externe Tool erhält direkten Zugriff auf den Kontext des Modells und Ihr System. Wenn ein Werkzeug eine subtile Anweisung enthält (Prompt Injection) oder ein Paket heimlich Umgebungsvariablen an einen externen Server sendet, ist es schwierig, den Trick manuell zu erkennen. Das Team von Cisco AI Defense hat das Open-Source-Projekt mcp-scanner veröffentlicht — ein Kommandozeilen-Tool und eine Python-Bibliothek, die speziell für das Audit von MCP-Servern entwickelt wurde.

MCP Scanner

Was der Scanner leisten kann

Das Tool prüft vier MCP-Protokollentitäten gleichzeitig: Funktionsbeschreibungen (Tools), vorkonfigurierte Prompts, statische Ressourcen und Server-Systemanweisungen.

Intern arbeitet es mit einem hybriden Analysesystem. Der Scanner beschränkt sich nicht auf Signaturabgleich — er kombiniert mehrere Ansätze:

  1. YARA-Signaturanalyse. Prüft Code und Schemata auf typische Angriffsmuster, Shell-Befehlsaufrufe und Sandbox-Escape-Versuche. Läuft lokal und schnell, keine API-Schlüssel erforderlich.
  2. LLM-as-a-Judge semantische Verifikation. Sendet Tool-Schemata und System-Prompts an ein Modell (unterstützt OpenAI, Bedrock, Azure oder lokales Ollama), um versteckte Injections und Diskrepanzen zwischen der Funktionsbeschreibung und dem tatsächlichen Verhalten zu erkennen.
  3. Quellcode-Verhaltensaudit. Ein statischer Analysator vergleicht Docstrings mit Funktionskörpern in Python, TypeScript, Go, Rust, Java und fünf weiteren Sprachen. Wenn eine Funktion einen Taschenrechner verspricht, aber intern HTTP-Anfragen initiiert, löst der Scanner einen Alarm aus.
  4. PyPI- und npm-Paket-Sandboxing. Das Tool kann Pakete herunterladen und in einem isolierten Docker-Container ausführen, um bösartigen Code zu identifizieren, bevor Sie ihn auf Ihrem System installieren.

Ein interessantes Detail: Das Repository enthält einen Readiness Analyzer. Er enthält 20 Heuristiken und sucht nach rein technischen Problemen: vergessene Timeouts, fehlende Retry-Logik bei Netzwerkfehlern und schlechtes Fehlerhandling.

Schnellstart im Terminal

Der einfachste Weg, das Tool zu installieren, ist über uv:

uv tool install --python 3.13 cisco-ai-mcp-scanner

Wenn Sie nur prüfen möchten, was bereits in Ihren Editoren konfiguriert ist, führen Sie einen Scan der bekannten Konfigurationen aus:

mcp-scanner --scan-known-configs --analyzers yara --format summary

Der Befehl findet Claude Desktop-, Cursor- und Windsurf-Konfigurationsdateien auf Ihrem Rechner, verbindet sich mit den konfigurierten Servern und führt grundlegende YARA-Regeln aus.

Um einen lokalen Server zu prüfen, der über stdio läuft, übergeben Sie den Startbefehl:

mcp-scanner --analyzers yara,prompt_defense --format table \
  stdio --stdio-command uvx --stdio-arg mcp-server-fetch

Wenn Sie einen Remote-Endpunkt haben, beginnt die Prüfung auf die gleiche Weise:

mcp-scanner --server-url https://mcp.deepwiki.com/mcp --analyzers yara --format summary

Das Tool gibt eine Zusammenfassung für jedes Tool mit seinem Sicherheitsstatus und einer Liste erkannter Bedrohungen aus.

=== MCP Scanner Results Table ===

Scan Target: http://127.0.0.1:8002/sse

Scan Target                   Tool Name     Status     API      YARA     LLM      Severity
-----------------------------------------------------------------------------------------
http://127.0.0.1:8002/sse     exec_secrets  UNSAFE     HIGH     HIGH     HIGH     HIGH
http://127.0.0.1:8002/sse     safe_command  SAFE       SAFE     SAFE     SAFE     SAFE

Verwendung im Code und CI/CD

Das Projekt ist nicht nur als CLI konzipiert, sondern auch als eigenständiges SDK. Es lässt sich bequem in Backend-Gateways oder Tool-Validierungspipelines einbetten, bevor die Veröffentlichung im internen Registry Ihres Unternehmens erfolgt.

import asyncio
import logging
from mcpscanner import Config, Scanner, set_log_level
from mcpscanner.core.models import AnalyzerEnum

async def main():
    set_log_level(logging.ERROR)

    config = Config(
        llm_provider_api_key="your_llm_api_key"
    )
    scanner = Scanner(config)

    # Проверяем удаленный сервер
    results = await scanner.scan_remote_server_tools(
        "http://127.0.0.1:8000/mcp",
        analyzers=[AnalyzerEnum.YARA, AnalyzerEnum.LLM]
    )

    for res in results:
        status = "OK" if res.is_safe else "ВНИМАНИЕ"
        print(f"Инструмент: {res.tool_name} -> {status}")

asyncio.run(main())

Für geschlossene Pipelines gibt es einen static-Modus. Sie können Tool-Schemata vorab als JSON exportieren und sie offline scannen, ohne Server zu starten und Netzwerkanfragen zu senden:

mcp-scanner --analyzers yara static --tools ./output/tools-list.json

Worauf Sie achten sollten

Das Projekt ist unter der Apache-2.0-Lizenz Open Source. Grundlegende Analysatoren (YARA, pip-audit, Prompt Defense und Readiness-Checks) laufen vollständig autonom und kostenlos.

Für tiefe semantische Analysen benötigen Sie entweder einen API-Schlüssel für ein LLM über LiteLLM oder ein lokal laufendes Modell über Ollama. Die Cisco AI Defense Inspect API-Engine wird optional angebunden, wenn Sie bereits ein Abonnement für ihre Enterprise-Sicherheitsdienste haben.

Das Tool ist nützlich für Entwickler, die eigene MCP-Server erstellen und vor der Veröffentlichung selbst prüfen möchten, sowie für Teams, die KI-Agenten in interne Unternehmensworkflows integrieren.

Ähnliche Projekte