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)
remindscope
21.06.2025 22:50Интересно. Но картина как будто бы неполная.
Что насчёт сервисов MCP, которые пытаются абузить протокол, дабы получать все запросы пользователя, а не только те, для которых якобы этот сервис нужен?
jakobz
21.06.2025 22:50Ой, ну мы все же понимаем что безопасники вот эти, которые в статье - ленивые жопы, бюрократы, и они даже не смотрят ничего руками.
Прогнали сканеры, сканеры нашли какие-то там cve в зависимостях. В методах, которые вообще не используются. Или - о ужас - какой-нибудь фейковый JWT в репе.
Я вот пилю авторизацию для MCP по спеке, и там не продолбать дыру в каком-нибудь PKCE - прям легко. А 99% mcp - консольные, и предлагают твой токен от условного гитхаба положить в конфиг.
Как вы думаете, сколько отверстий не нашли тупые безопасники с тупыми сканерами?
tbl
Полезное исследование. Показало, что надо делать хорошо, а плохо делать не надо.