Grafana MCP Server відкриває неавтентифікований SSE-інтерфейс, що уможливлює віддалену маніпуляцію дашбордами
Автор: Evan Harris
Ризик: Низький
Уражений компонент: Grafana MCP Server
Вступ
У межах нашого поточного дослідження безпеки серверів Model Context Protocol (MCP) ми виявили прогалину в безпеці Grafana MCP Server, яка уможливлює неавторизований доступ до інстансів Grafana через неавтентифіковане мережеве відкриття.
Огляд
Grafana MCP Server, запущений із прапорцем -t sse, відкриває неавтентифікований інтерфейс Server-Sent Events (SSE), який за замовчуванням прив’язується до 0.0.0.0:8000 під час запуску через команду Docker, наведену у файлі README цього MCP Server. Така конфігурація дозволяє віддаленим зловмисникам із мережевим доступом взаємодіяти з інстансами Grafana жертв без автентифікації.
Технічні деталі
Проблема
Під час налаштування з транспортом SSE через Docker сервер:
- Прив’язується до
0.0.0.0:8000, роблячи себе доступним з будь-якого хоста в мережі - Не надає жодного механізму автентифікації для точки доступу
/sse - Довіряє будь-якому підключеному клієнту виконання привілейованих операцій Grafana
- Використовує
GRAFANA_API_KEYжертви для виконання дій від її імені
Вразлива конфігурація
Дотримуючись README проєкту з додаванням транспорту SSE:
docker run --rm -p 8000:8000 \
-e GRAFANA_URL \
-e GRAFANA_API_KEY \
mcp/grafana -debug -t sse
Це відкриває точку доступу за адресою http://victim_ip:8000/sse для всієї мережі.
Сценарій атаки
Налаштування жертви
Користувач, який дотримується документації:
- Завантажує Docker-образ Grafana MCP Server
- Налаштовує змінні середовища
GRAFANA_URLтаGRAFANA_API_KEYдля свого інстансу Grafana - Вмикає транспорт SSE, додаючи
-t sseдо команди Docker - Несвідомо відкриває
http://their_ip:8000/sseдля зловмисників на мережевому рівні
Експлуатація зловмисником
Зловмисник із мережевим доступом може:
- Виявити відкриту точку доступу за адресою
http://victim_ip:8000/sse - Підключитися за допомогою MCP Inspector:
npx @modelcontextprotocol/inspector sse --port 8000 - Виконати неавторизовані операції за допомогою доступних інструментів Grafana
- Маніпулювати дашбордами, переглядаючи, створюючи, оновлюючи чи видаляючи їх
Proof of Concept
Демонстрація атаки
За допомогою MCP Inspector зловмисник може підключитися до відкритої точки доступу SSE та виконувати операції Grafana:
- Переглянути команди (teams), щоб зрозуміти структуру організації
- Переглянути дашборди, щоб виявити конфіденційну бізнес-аналітику
- Створити дашборди, щоб впровадити зловмисний вміст
- Оновити дашборди, щоб змінити наявні візуалізації
- Отримати доступ до джерел даних та іншої привілейованої функціональності Grafana
Оцінка наслідків
Цей вектор атаки уможливлює:
Порушення конфіденційності
- Виявлення джерел даних, що розкриває бекенд-системи та конфігурації
- Перелічення дашбордів, що розкриває конфіденційну бізнес-аналітику
- Витік інформації про користувачів і команди через інтерфейс MCP
Компрометація цілісності
- Впровадження зловмисного вмісту, що потенційно вводить користувачів в оману
- Втручання в конфігурацію, що впливає на точність візуалізації
- Маніпуляція дашбордами через створення, зміну чи видалення
Вплив на доступність
- Порушення роботи сервісу через видалення чи пошкодження дашбордів
- Потенційна відмова в обслуговуванні через перевантаження системи
- Вичерпання ресурсів через надмірні запити до інструментів
Чинники ризику
- Вимога мережевого доступу: зловмисникам потрібен доступ до жертви на мережевому рівні
- Відсутність автентифікації: будь-який клієнт може підключитися та виконувати привілейовані операції
- Прив’язка Docker за замовчуванням: відкриття на
0.0.0.0збільшує поверхню атаки - Тиха робота: атаки можуть відбуватися без відома користувача
Рекомендовані пом’якшення
Для користувачів
- Уникайте використання
-t sseу спільних або ненадійних мережах - Впроваджуйте обмеження на мережевому рівні за допомогою фаєрволів або VPN
- Використовуйте прив’язку до localhost, змінивши зіставлення портів Docker на
127.0.0.1:8000:8000 - Відстежуйте журнали Grafana на предмет неочікуваної активності API
Хронологія розкриття
- 2024-05-22: Вразливість виявлено та повідомлено Grafana через Intigriti VDP
- 2024-05-23: Grafana підтверджує отримання звіту
- 2024-05-23: Звіт позначено командою Grafana як “Informative”
- 2024-05-23: Grafana надає дозвіл на публічне оприлюднення результатів
- 2025-09-02: Публічне розкриття та публікація бюлетеня
Висновок
Неавтентифікований SSE-інтерфейс у Grafana MCP Server демонструє важливість безпечних налаштувань за замовчуванням в інструментах розробки, що з’єднують ШІ-агентів із корпоративними системами.
Хоча вимога мережевого доступу обмежує поверхню атаки, організаціям, які розгортають MCP-сервери, слід впроваджувати стратегії ешелонованого захисту та зберігати обізнаність про ризики мережевого відкриття, особливо у спільних середовищах.