TGViewer
Yandex for Security Yandex for Security @yandexforsecurity · 3.34K subscribers
Post #298 1.59K
🔒 MCP-сервер как поверхность атаки для AI-агента

Всем привет! Это Денис из команды SourceCraft Security. Я уже рассказывал вам про атаки на веб-приложения и эксплойт за 15 минут и один доллар. А сегодня хочу поговорить о том, как злоумышленники могут использовать MCP-серверы в своих целях и что с этим делать.

♒️ Что такое MCP

Model context protocol — это «руки» агента, которыми он меняет состояние каких-либо ресурсов: читает логи, добавляет записи в БД, назначает встречи в календаре, вносит изменения в основную ветку репозитория и делает множество действий.

Я нашёл множество открытых MCP-серверов в процессе исследования безопасности AI-агентов, о результатах которого недавно рассказал на конференции Saint Highload. Это значит, что при определённых условиях «руки» в интернете доступны любому, кто знает, где их искать.

♒️ Как это выглядит на практике

Злоумышленник может попробовать выдать себя за легитимного AI-агента, подключиться к незащищённому MCP-серверу и получить список его доступных инструментов и возможностей. А там, например, есть функция чтения валюты и информация о количестве денег на счёте, что даёт возможность мошеннику реализовать сценарий перевода этих средств на свой кошелёк.

♒️ Что я сделал в процессе исследования

Подготовил несложную систему оценки риска, которая строится на сумме баллов за следующие недостатки конфигурации MCP-сервера:

🟣 Нет аутентификации

🟣 Нет поддержки зашифрованного соединения

🟣 Нет CORS-заголовков

🟣 Есть потенциально опасные инструменты (например, exec)

🟣 Есть возможность получения списка инструментов и ресурсов

Затем с помощью поискового движка Shodan я получил список открытых MCP-серверов. Для этого собрал 148 поисковых запросов и их комбинаций вроде:

"port:3000 jsonrpc, port:8080 text/event-stream"

"Model Context Protocol", "jsonrpc": "2.0"

"html:"mcp server""

"\"capabilities tools resources\""

"port:3000 text/event-stream"

"\"workers.dev\" mcp"

"\"Bad Request: Mcp-Session-Id header is required\""

"\"Not Acceptable: Client must accept text/event-stream\""

"port:7860 \"langflow\" \"mcp\""

"Bad Request: Mcp-Session-Id header is required"


Каждый из этих запросов является возможным паттерном для MCP. В итоге после дедупликации я получил 1699 уникальных серверов.

♒️ Зачем это нужно

Такая методика и инструмент фингерпринтинга позволяют проверить доступность своих MCP-ресурсов в Сети.

Если они вдруг нашлись в открытом доступе и по разным причинам их невозможно оттуда убрать, у вас есть возможность снизить вероятность атак за счёт правильной аутентификации, TLS и ограниченного списка инструментов. Также AppSec-инженер может добавить оценку риска, который связан с мисконфигурациями, в проверку на этапе CI/CD и правильно настроить MCP.

Инструмент для поиска MCP-серверов через Shodan я опубликовал в репозитории.

Подписывайтесь:
💬 @Yandex4Security
📹 @YandexForSecurity
  • ❤ 8
  • ✍ 5
  • 🔥 4
  • 👌 1
More from @yandexforsecurity
  1. Sep 21, 2026♒️Ботнет напрокат Когда мы пользуемся шерингом — берём самокат или пауэрбанк, — редко заду…
  2. Sep 17, 2026📺 OFFZONE 2026: записи наших докладов ♒️ «CTF в новой реальности: чему соревнования научи…
  3. Sep 14, 2026🔒 Гайд: как защитить VLM Меня зовут Полина Тикунова, я инженер по информационной безопасн…
  4. Sep 11, 2026🔒Как безопасно внедрять AI-агентов и не давать им ломать прод Недавно мы пообщались с Але…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →