Model Context Protocol (MCP) стремительно завоевал позиции де-факто стандарта для взаимодействия между AI-агентами и внешними инструментами. Статистика впечатляет: по состоянию на май 2025 года PyPI пакет MCP скачивается около 1.8 миллиона раз в неделю, а NPM пакет — 6.9 миллиона раз, что в сумме составляет почти 8.7 миллиона еженедельных загрузок SDK.

Однако с ростом популярности закономерно возникают вопросы о безопасности. Команда исследователей из Queen's University (Канада) провела первое крупномасштабное эмпирическое исследование безопасности и поддерживаемости MCP серверов, результаты которого были опубликованы в июне 2025 года.

Масштаб и методология исследования

Исследование охватило внушительную выборку из 1,899 open-source MCP серверов, включая 343 официальных репозитория от Anthropic и 1,556 проектов, найденных через майнинг GitHub. Для финального анализа было отобрано 583 репозитория после фильтрации и проверки метрик.

Методология исследования включала трёхуровневый подход:

Анализ с помощью SonarQube — известного инструмента(некоторые не считают его инструментом для безопасности, но всё-же), который фокусировался на четырёх уровнях серьёзности уязвимостей: Blocker, Critical, Major и Minor. Анализ охватывал традиционные проблемы безопасности, code smells и баги.

Специализированный анализ с помощью mcp-scan — инструмента, разработанного специально для выявления MCP-специфичных рисков безопасности, включая проблему tool poisoning(о сути которой поговорим чуть позже). Однако этот инструмент оказался технически сложным в использовании: из 83 серверов в репрезентативной выборке только 60 сканирований были успешными изначально.

LLM кластеризация — использование GPT-4o, GPT-4o mini и Gemini 2.5 Pro для синтеза и категоризации результатов статического анализа, что позволило выявить высокоуровневые паттерны уязвимостей.

Неожиданно хорошие показатели всей экосистемы, с точки зрения её устойчивости.

Вопреки опасениям о незрелости молодой экосистемы, MCP серверы продемонстрировали впечатляющие показатели здоровья и устойчивости развития. 42.2% серверов уже внедрили непрерывную интеграцию (CI), что выше показателей как общих open-source проектов (40.3%), так и ML-проектов (37.2%). Успешность сборки составляет 90%, что свидетельствует о высоком качестве кодовой базы.

Особенно примечательна активность разработки: MCP серверы показывают медианную частоту коммитов 5.5 в неделю по сравнению с 2.5 коммитами в неделю для классических open-source проектов. Майнинговые MCP серверы (найденные через GitHub) получают на 101.4% больше коммитов, чем community серверы, и на 56% превышают официальные серверы по количеству строк кода.

Ландшафт угроз безопасности, которые были обнаружены исследователями.

Анализ выявил уникальные характеристики угроз в проектах с MCP, которые кардинально отличаются от традиционных экосистем с ПО.

Credential Exposure как главная угроза

3.6% MCP серверов страдают от проблем с утечкой учётных данных — это самая распространённая уязвимость в проектах. Для сравнения, в PyPI пакетах топовой проблемой является Cross-Site-Scripting (XSS), а в NPM — вредоносные пакеты. Такая специфика объясняется природой MCP серверов: они часто выступают посредниками между Foundation Models и внешними системами, обрабатывая API ключи, пользовательские креды и другую важную информацию.

Уникальные паттерны уязвимостей

Исследование выявило 8 различных паттернов уязвимостей, причём только 2 из них (Проблемы с аутентификацией и Проблемы с валидацией пользовательского ввода) пересекаются с топовыми проблемами PyPI пакетов, и ни один не является приоритетным для NPM экосистемы.

Полная картина распределения уязвимостей выглядит следующим образом:

- Credential Exposure: 3.6% серверов (CWE-259, CWE-798)

- Lack of Access Control: 1.4% серверов (CWE-306, CWE-284)  

- CORS Issues: 1.2% серверов (CWE-345)

- Improper Resource Management: 1.0% серверов (CWE-770)

- Transport Security Issues: 0.7% серверов (CWE-295, CWE-297, CWE-327)

- Authentication Issues: 0.5% серверов (CWE-347)

- Insecure File Creation: 0.2% серверов (CWE-377)

- Input Validation Issues: 0.2% серверов (CWE-611)

В общей сложности 7.2% MCP серверов содержат как минимум одну уязвимость безопасности, при этом половина из них затронута проблемой credential exposure.

Tool Poisoning: новый класс угроз

Особую тревогу вызывает обнаружение tool poisoning в 5.5% MCP серверов — это даже больше, чем распространённость credential exposure. Tool poisoning представляет собой атаку специфичную для MCP , при которой злоумышленники могут манипулировать базовой моделью, заставляя её использовать скомпрометированные инструменты.

Классический пример такой атаки — внедрение вредоносного кода в файл .bashrc через MCP сервер с правами записи файлов, что пораждает бэкдор, используемый злоумышленниками. Способность mcp-scan обнаружить такой высокий уровень критической уязвимости подчёркивает вероятность существования множества скрытых проблем, которые современные инструменты анализа не способны выявить.

Проблемы с качеством кода и поддерживаемостью

Исследование выявило серьёзные проблемы с качеством кода. 66% MCP серверов демонстрируют "code smells" — индикаторы потенциальных проблем в архитектуре и реализации кода, которые могут затруднить поддержку и развитие проектов в долгосрочной перспективе.

Также 14.4% серверов содержат 10 типичных паттернов багов, характерных для open-source проектов.

Ограничения существующих инструментов анализа

Исследование выявило критические ограничения современных инструментов безопасности при работе с MCP серверами. Традиционные инструменты вроде SonarQube обнаруживают значительно меньше уязвимостей в MCP(очевидно) серверах по сравнению с экосистемами PyPI и NPM, где 46% Python пакетов и 40% JavaScript пакетов содержат известные уязвимости.

mcp-scan, хотя и способен выявлять tool poisoning, пропускает другие критические проблемы безопасности, такие как чрезмерные требования к разрешениям и небезопасное поведение по умолчанию. Например, сервер apple-notes-mcp требует полные права доступа к диску на macOS для взаимодействия с базой данных Apple Notes SQLite, что представляет значительный риск безопасности.

Выводы и рекомендации

Результаты первого масштабного исследования безопасности MCP рисуют сложную картину: с одной стороны, экосистема демонстрирует здоровые показатели развития и активности, с другой — сталкивается с уникальными вызовами безопасности, требующими специализированного подхода.

---

Источник: [Model Context Protocol (MCP) at First Glance: Studying the Security and Maintainability of MCP Servers](https://arxiv.org/html/2506.13538v2) — Queen's University, June 2025
---

Больше про безопасность ИИ вы можете почитать в моём telegram канале - t.me/pwnai.

Комментарии (3)


  1. tbl
    21.06.2025 22:50

    Полезное исследование. Показало, что надо делать хорошо, а плохо делать не надо.


  1. remindscope
    21.06.2025 22:50

    Интересно. Но картина как будто бы неполная.

    Что насчёт сервисов MCP, которые пытаются абузить протокол, дабы получать все запросы пользователя, а не только те, для которых якобы этот сервис нужен?


  1. jakobz
    21.06.2025 22:50

    Ой, ну мы все же понимаем что безопасники вот эти, которые в статье - ленивые жопы, бюрократы, и они даже не смотрят ничего руками.

    Прогнали сканеры, сканеры нашли какие-то там cve в зависимостях. В методах, которые вообще не используются. Или - о ужас - какой-нибудь фейковый JWT в репе.

    Я вот пилю авторизацию для MCP по спеке, и там не продолбать дыру в каком-нибудь PKCE - прям легко. А 99% mcp - консольные, и предлагают твой токен от условного гитхаба положить в конфиг.

    Как вы думаете, сколько отверстий не нашли тупые безопасники с тупыми сканерами?