Grafana MCP Server izlaže neautentificirano SSE sučelje omogućujući udaljenu manipulaciju nadzornim pločama
Autor: Evan Harris
Rizik: Nizak
Zahvaćena komponenta: Grafana MCP Server
Uvod
U sklopu našeg kontinuiranog sigurnosnog istraživanja poslužitelja Model Context Protocol (MCP) uočili smo sigurnosni propust u Grafana MCP Serveru koji omogućuje neovlašten pristup Grafana instancama putem neautentificirane mrežne izloženosti.
Pregled
Grafana MCP Server, kada se pokrene s zastavicom -t sse, izlaže neautentificirano sučelje Server-Sent Events (SSE) koje se prema zadanim postavkama povezuje na 0.0.0.0:8000 kada se pokreće putem Docker naredbe navedene u README datoteci MCP Servera. Takva konfiguracija omogućuje udaljenim napadačima s mrežnim pristupom interakciju s Grafana instancama žrtava bez autentifikacije.
Tehnički detalji
Problem
Kada je konfiguriran s SSE transportom putem Dockera, poslužitelj:
- Povezuje se na
0.0.0.0:8000, čineći se dostupnim s bilo kojeg čvora u mreži - Ne pruža nikakav mehanizam autentifikacije za krajnju točku
/sse - Vjeruje svakom povezanom klijentu da izvršava povlaštene Grafana operacije
- Koristi
GRAFANA_API_KEYžrtve za izvođenje radnji u njeno ime
Ranjiva konfiguracija
Prema README datoteci projekta, uz dodatak SSE transporta:
docker run --rm -p 8000:8000 \
-e GRAFANA_URL \
-e GRAFANA_API_KEY \
mcp/grafana -debug -t sse
Time se krajnja točka http://victim_ip:8000/sse čini dostupnom cijeloj mreži.
Scenarij napada
Postavljanje na strani žrtve
Korisnik koji slijedi dokumentaciju:
- Preuzima Docker sliku Grafana MCP Servera
- Konfigurira varijable okruženja
GRAFANA_URLiGRAFANA_API_KEYza svoju Grafana instancu - Omogućuje SSE transport dodavanjem
-t sseu Docker naredbu - Nesvjesno izlaže
http://their_ip:8000/ssenapadačima na mrežnoj razini
Iskorištavanje od strane napadača
Napadač s mrežnim pristupom može:
- Otkriti izloženu krajnju točku na adresi
http://victim_ip:8000/sse - Povezati se pomoću MCP Inspectora:
npx @modelcontextprotocol/inspector sse --port 8000 - Izvršavati neovlaštene operacije korištenjem dostupnih Grafana alata
- Manipulirati nadzornim pločama njihovim ispisivanjem, stvaranjem, ažuriranjem ili brisanjem
Proof of Concept
Demonstracija napada
Pomoću MCP Inspectora napadač se može povezati na izloženu SSE krajnju točku i izvršavati Grafana operacije:
- Ispisati timove (teams) kako bi razumio strukturu organizacije
- Ispisati nadzorne ploče kako bi identificirao osjetljivu poslovnu analitiku
- Stvoriti nadzorne ploče kako bi ubacio zlonamjeran sadržaj
- Ažurirati nadzorne ploče kako bi izmijenio postojeće vizualizacije
- Pristupiti izvorima podataka i ostaloj povlaštenoj Grafana funkcionalnosti
Procjena utjecaja
Ovaj vektor napada omogućuje:
Narušavanje povjerljivosti
- Otkrivanje izvora podataka koje razotkriva pozadinske sustave i konfiguracije
- Nabrajanje nadzornih ploča koje otkriva osjetljivu poslovnu analitiku
- Curenje informacija o korisnicima i timovima kroz MCP sučelje
Kompromitacija integriteta
- Ubacivanje zlonamjernog sadržaja koje potencijalno dovodi korisnike u zabludu
- Neovlašteno mijenjanje konfiguracije koje utječe na točnost vizualizacija
- Manipulacija nadzornim pločama putem njihovog stvaranja, izmjene ili brisanja
Utjecaj na dostupnost
- Prekid rada usluge putem brisanja ili oštećenja nadzornih ploča
- Potencijalni uskraćivanje usluge putem preopterećenja sustava
- Iscrpljivanje resursa zbog prekomjernog broja zahtjeva prema alatima
Faktori rizika
- Zahtjev za mrežnim pristupom: Napadačima je potreban pristup žrtvi na mrežnoj razini
- Bez autentifikacije: Bilo koji klijent može se povezati i izvršavati povlaštene operacije
- Zadana Docker vezanje: Izloženost na
0.0.0.0povećava površinu napada - Neprimjetan rad: Napadi se mogu odvijati bez znanja korisnika
Preporučeno ublažavanje
Za korisnike
- Izbjegavajte korištenje
-t ssena dijeljenim ili nepovjerljivim mrežama - Uvedite ograničenja na mrežnoj razini pomoću vatrozida ili VPN-a
- Koristite vezanje na localhost izmjenom mapiranja Docker portova na
127.0.0.1:8000:8000 - Nadzirite Grafana zapisnike radi neočekivane API aktivnosti
Vremenski slijed objave
- 2024-05-22: Ranjivost otkrivena i prijavljena Grafani putem Intigriti VDP
- 2024-05-23: Grafana potvrđuje primitak prijave
- 2024-05-23: Prijavu Grafana tim označava kao “Informative”
- 2024-05-23: Grafana daje dopuštenje za javnu objavu nalaza
- 2025-09-02: Javna objava i objava sigurnosne obavijesti
Zaključak
Neautentificirano SSE sučelje u Grafana MCP Serveru pokazuje važnost sigurnih zadanih postavki u razvojnim alatima koji povezuju AI agente s korporativnim sustavima.
Iako zahtjev za mrežnim pristupom ograničava površinu napada, organizacije koje uvode MCP poslužitelje trebale bi primjenjivati strategije dubinske obrane i održavati svijest o rizicima mrežne izloženosti, osobito u dijeljenim okruženjima.