Autor: Evan Harris
Riziko: Nízké
Dotčená komponenta: Grafana MCP Server

Úvod

V rámci našeho průběžného bezpečnostního výzkumu serverů Model Context Protocol (MCP) jsme v Grafana MCP Serveru identifikovali bezpečnostní nedostatek, který prostřednictvím neautentizovaného vystavení v síti umožňuje neoprávněný přístup k instancím Grafany.

Přehled

Grafana MCP Server po spuštění s příznakem -t sse vystavuje neautentizované rozhraní Server-Sent Events (SSE), které se ve výchozím nastavení váže na 0.0.0.0:8000, pokud je spuštěn pomocí příkazu Docker uvedeného v souboru README serveru MCP. Tato konfigurace umožňuje vzdáleným útočníkům s přístupem k síti komunikovat s instancemi Grafany obětí bez autentizace.

Technické podrobnosti

Problém

Při konfiguraci s transportem SSE přes Docker server:

  • Váže se na 0.0.0.0:8000, čímž je přístupný z libovolného hostitele v síti
  • Neposkytuje žádný autentizační mechanismus pro koncový bod /sse
  • Důvěřuje libovolnému připojenému klientovi při provádění privilegovaných operací Grafany
  • Používá GRAFANA_API_KEY oběti k provádění akcí jejím jménem

Zranitelná konfigurace

Podle souboru README projektu s doplněním transportu SSE:

docker run --rm -p 8000:8000 \
  -e GRAFANA_URL \
  -e GRAFANA_API_KEY \
  mcp/grafana -debug -t sse

Tím se koncový bod na adrese http://victim_ip:8000/sse vystaví celé síti.

Scénář útoku

Nastavení oběti

Uživatel postupující podle dokumentace:

  1. Stáhne obraz Dockeru pro Grafana MCP Server
  2. Nakonfiguruje proměnné prostředí GRAFANA_URL a GRAFANA_API_KEY pro svou instanci Grafany
  3. Povolí transport SSE přidáním -t sse k příkazu Docker
  4. Nevědomky vystaví http://their_ip:8000/sse útočníkům na úrovni sítě

Zneužití útočníkem

Útočník s přístupem k síti může:

  1. Objevit vystavený koncový bod na adrese http://victim_ip:8000/sse
  2. Připojit se pomocí MCP Inspectoru: npx @modelcontextprotocol/inspector sse --port 8000
  3. Provádět neoprávněné operace pomocí dostupných nástrojů Grafany
  4. Manipulovat s dashboardy jejich vypisováním, vytvářením, aktualizací nebo mazáním

Proof of Concept

Ukázka útoku

Pomocí MCP Inspectoru se útočník může připojit k vystavenému koncovému bodu SSE a provádět operace Grafany:

  • Vypsat týmy pro pochopení struktury organizace
  • Vypsat dashboardy pro identifikaci citlivých dat business intelligence
  • Vytvářet dashboardy pro vložení škodlivého obsahu
  • Aktualizovat dashboardy pro úpravu stávajících vizualizací
  • Přistupovat ke zdrojům dat a dalším privilegovaným funkcím Grafany

Posouzení dopadu

Tento vektor útoku umožňuje:

Narušení důvěrnosti

  • Odhalení zdrojů dat, čímž se vystaví backendové systémy a konfigurace
  • Výčet dashboardů, čímž se odhalí citlivá data business intelligence
  • Únik informací o uživatelích a týmech prostřednictvím rozhraní MCP

Narušení integrity

  • Vložení škodlivého obsahu, které může uvést uživatele v omyl
  • Neoprávněná úprava konfigurace, která ovlivňuje přesnost vizualizací
  • Manipulace s dashboardy prostřednictvím vytváření, úprav nebo mazání

Dopad na dostupnost

  • Přerušení služby mazáním nebo poškozením dashboardů
  • Potenciální odepření služby (denial of service) přetížením systému
  • Vyčerpání zdrojů prostřednictvím nadměrných požadavků na nástroje

Rizikové faktory

  • Požadavek na přístup k síti: útočníci potřebují přístup k síti oběti na úrovni sítě
  • Žádná autentizace: libovolný klient se může připojit a provádět privilegované operace
  • Výchozí vazba Dockeru: vystavení na 0.0.0.0 zvětšuje útočnou plochu
  • Tichý provoz: útoky mohou probíhat bez vědomí uživatele

Doporučená opatření

Pro uživatele

  • Nepoužívejte -t sse ve sdílených nebo nedůvěryhodných sítích
  • Zaveďte omezení na úrovni sítě pomocí firewallů nebo VPN
  • Použijte vazbu na localhost úpravou mapování portů Dockeru na 127.0.0.1:8000:8000
  • Sledujte protokoly Grafany kvůli neočekávané aktivitě API

Časová osa zveřejnění

  • 2024-05-22: Zranitelnost objevena a nahlášena Grafaně prostřednictvím Intigriti VDP
  • 2024-05-23: Grafana potvrzuje přijetí hlášení
  • 2024-05-23: Tým Grafany označil hlášení jako “Informative”
  • 2024-05-23: Grafana uděluje povolení ke zveřejnění zjištění
  • 2025-09-02: Veřejné zveřejnění a publikace bezpečnostního upozornění

Závěr

Neautentizované rozhraní SSE v Grafana MCP Serveru dokládá, jak důležité jsou bezpečné výchozí nastavení u vývojářských nástrojů, které propojují AI agenty s podnikovými systémy.

Přestože požadavek na přístup k síti omezuje útočnou plochu, organizace nasazující servery MCP by měly zavádět strategie hloubkové obrany (defense-in-depth) a zůstat si vědomy rizik vystavení v síti, zejména ve sdílených prostředích.

Odkazy