Безопасность MCP-серверов: что показал аудит 1 808 серверов о рисках интеграции AI-инструментов
Аудит 1808 MCP-серверов выявил критические уязвимости в 66% серверов. Узнайте о рисках интеграции AI-инструментов и как защитить вашу систему.
Проблема: AI-агенты защищены ровно настолько, насколько защищено их самое слабое подключение к инструменту
Каждая команда, которая спешит подключить AI-агентов к базам данных, API и файловым системам через серверы Model Context Protocol (MCP), сталкивается со скрытым риском. MCP-серверы выступают промежуточным звеном между большими языковыми моделями и внешними инструментами — и когда это промежуточное звено неправильно настроено или является вредоносным, вся цепочка оказывается под угрозой. Исследование команды Backslash Security, охватившее тысячи общедоступных MCP-серверов, выявило сотни серверов с критическими уязвимостями, включая произвольное выполнение команд и сетевую доступность на уровне всей сети. Более масштабное отраслевое сканирование 1 808 MCP-серверов показало, что у 66% обнаружены проблемы безопасности, из которых 427 классифицированы как критические — включая отравление инструментов, токсичные потоки данных и неконтролируемое выполнение кода.
Проще говоря: два из трёх MCP-серверов в открытом доступе имеют хотя бы одну проблему безопасности, и почти четверть содержит уязвимости, способные предоставить злоумышленнику доступ на уровне системы.
Почему это важно для любого бизнеса, использующего AI-агентов
MCP становится стандартным способом взаимодействия AI-агентов с реальным миром — чтение файлов, запросы к базам данных, вызовы API, запуск рабочих процессов. Как поясняет Contrast Security, при запуске MCP-клиент опрашивает настроенные серверы для получения доступных инструментов и их описаний, после чего AI использует эти инструменты по своему усмотрению. Именно эта гибкость составляет весь смысл протокола — и одновременно весь риск.
Скомпрометированный MCP-сервер не просто допускает утечку данных. Он может заставить AI-агента выполнять произвольные команды, похищать учётные данные или манипулировать выходными данными, которым нижестоящие системы безоговорочно доверяют. Радиус поражения принципиально отличается от традиционной уязвимости API, потому что AI-агент действует автономно, зачастую без явного одобрения человеком каждой операции.
Реальные цифры: 427 критических находок на 1 808 серверов означает, что примерно каждый четвёртый сервер содержит уязвимость, достаточно серьёзную для захвата системы, кражи данных или компрометации цепочки поставок.
Три наиболее опасных класса уязвимостей
Отравление инструментов: троянские кони внутри вашего AI-процесса
Отравление инструментов — одна из самых коварных атак на MCP. Согласно Practical DevSecOps, вредоносные команды внедряются в определения инструментов или метаданные, заставляя LLM выполнять вредоносные действия. Инструмент выглядит легитимным на поверхности — его название, описание и параметры кажутся нормальными, — но скрытые инструкции в метаданных перенаправляют поведение AI-агента.
Инструмент MCP-Scan от Invariant Labs был создан специально для обнаружения этого паттерна, когда безобидные на вид инструменты протаскивают вредоносный код подобно троянскому коню. Разрыв между тем, что инструмент заявляет, и тем, что он реально делает, — именно здесь кроется настоящая опасность.
Как отмечает Enkrypt AI, традиционные сканеры кода ловят базовые проблемы вроде SQL-инъекций или XSS, но пропускают уязвимости, которые действительно важны для MCP-серверов, — потому что они не понимают паттерны поведения AI-агентов, векторы инъекций в промпты или уникальные границы доверия, возникающие, когда LLM оркестрирует доступ к системам.
Токсичные потоки данных: когда недоверенный ввод проходит через доверенные каналы
MCP-серверы находятся между недоверенными внешними источниками и привилегированными внутренними системами. Когда валидация входных данных слабая или отсутствует, контролируемые злоумышленником данные поступают напрямую в базы данных, командные оболочки или нижестоящие API.
Анализ топ-10 рисков безопасности MCP от Prompt.security подчёркивает, что если MCP-серверы передают невалидированный пользовательский или внешний ввод в нижестоящие базы данных или системные команды, злоумышленники используют эти уязвимости для выполнения вредоносного кода, получения несанкционированного доступа к инфраструктуре, а также манипуляции или удаления критически важных данных. Это включает классические SQL-инъекции и инъекции команд — но усиленные тем фактом, что сам AI-агент формирует запросы на основе потенциально отравленного контекста.
Исследование CyCognito добавляет ещё одно измерение: MCP-серверы никогда не должны принимать токены доступа от клиентов и передавать их напрямую в нижестоящие API без валидации. Это нарушает базовые границы безопасности и лишает сервер возможности применять ограничение частоты запросов, аудит и проверку утверждений. Прямая передача токенов фактически превращает MCP-сервер в неконтролируемый прокси для имперсонации.
Произвольное выполнение кода: ключи от всего королевства
Исследовательская группа Backslash обнаружила, что чрезмерные разрешения и инъекции на уровне ОС были второй по распространённости проблемой среди проверенных MCP-серверов: десятки случаев, когда серверы позволяют выполнять произвольные команды на хост-машине — через небрежное использование вызовов подпроцессов, отсутствие санитизации ввода или ошибки обхода путей.
Скажем честно: функция, которая принимает строку и выполняет её как команду оболочки на системе, — это не инструмент, а открытая дверь. Когда AI-агента можно обмануть и заставить вызвать такую функцию с входными данными, контролируемыми злоумышленником, хост-машина сервера оказывается полностью скомпрометирована.
Сетевая доступность: проблема «NeighborJack»
Самой распространённой уязвимостью, обнаруженной Backslash среди сотен случаев, были MCP-серверы, явно привязанные ко всем сетевым интерфейсам (0.0.0.0), что делало их доступными для любого устройства в той же локальной сети. Исследовательская команда назвала это уязвимостью «NeighborJack».
Аналогия проста: представьте, что вы работаете в коворкинге, а на вашей машине тихо работает MCP-сервер. Любой, кто подключён к тому же Wi-Fi, может получить к нему доступ, выдать себя за инструменты и потенциально выполнять операции от вашего имени. Это как оставить ноутбук открытым и незаблокированным на виду у всех в комнате.
В сочетании с чрезмерными разрешениями это создаёт идеальный шторм — серверы, доступные по сети и одновременно позволяющие выполнять произвольные команды, означают, что удалённый злоумышленник может перейти от сетевого доступа к полному контролю над системой за один шаг.
Чем безопасность MCP отличается от традиционной безопасности API
Традиционная безопасность API фокусируется на аутентификации, ограничении частоты запросов и валидации ввода на чётко определённых конечных точках. Безопасность MCP требует всего того же — плюс совершенно нового уровня задач:
| Традиционный риск API | Специфический риск MCP |
|---|---|
| SQL-инъекция через пользовательский ввод | Инъекция в промпт через запросы, сформированные LLM |
| Несанкционированный доступ к конечным точкам | Отравление инструментов через манипуляцию метаданными |
| Кража токенов из ответов API | Утечка учётных данных через конфигурационные файлы MCP |
| DDoS на конечные точки API | Атаки типа «rug pull» — поведение инструмента меняется после первоначального одобрения |
| Атака на цепочку поставок через зависимости | Атака на цепочку поставок через реестры MCP-серверов |
Как указывает анализ Datadog, атаки через отравление инструментов могут заставить клиента прочитать конфиденциальные файлы хоста, такие как конфигурационные файлы MCP-сервера (~/.cursor/mcp.json) и SSH-ключи. Сам конфигурационный файл становится целью атаки, поскольку обычно содержит учётные данные для подключения к базам данных и сервисам.
Практические меры по снижению рисков: наши рекомендации
На основе результатов исследования 1 808 серверов и рекомендаций от OWASP, CyCognito и Prompt.security приведены шаги с наибольшим эффектом:
1. Изолируйте каждый MCP-сервер в песочнице
OWASP рекомендует изоляцию MCP-серверов в песочнице как базовую практику. Это ограничивает радиус поражения, когда — не если — уязвимость будет эксплуатирована. Изолированный сервер, допускающий произвольное выполнение команд, по-прежнему опасен, но ущерб ограничен песочницей, а не распространяется на весь хост.
2. Привязывайте к localhost, а не к 0.0.0.0
Сотни серверов в исследовании были без необходимости открыты для всей локальной сети. Привязка MCP-серверов к 127.0.0.1 вместо 0.0.0.0 полностью устраняет класс атак NeighborJack — исправление в одну строку с колоссальным влиянием на безопасность.
3. Валидируйте входные данные на каждой границе
Параметризованные запросы для доступа к базам данных и строгая санитизация ввода для команд оболочки не подлежат обсуждению. Это касается как прямого пользовательского ввода, так и ввода, сгенерированного LLM — вывод AI-агента должен рассматриваться как недоверенный при поступлении на MCP-сервер.
4. Исключите прямую передачу токенов
MCP-серверы никогда не должны передавать клиентские токены напрямую в нижестоящие API. Токены и API-ключи должны быть явно выданы MCP-серверу и использоваться только этим сервером. Это сохраняет возможность ограничения частоты запросов, аудита и обнаружения злоупотреблений.
5. Сканируйте инструментами, понимающими специфику MCP
Универсальный статический анализ пропускает риски, специфичные для MCP. Такие инструменты, как MCP-Scan от Invariant Labs, MCP-сканер Enkrypt AI и CyberMCP, созданы для обнаружения отравления инструментов, векторов инъекций в промпты и специфических для MCP ошибок конфигурации, которые традиционные сканеры упускают.
6. Подписывайте и верифицируйте компоненты MCP
CyCognito подчёркивает, что разработчики должны подписывать компоненты MCP, чтобы пользователи могли проверить их целостность. Системы сборки должны включать статический анализ (SAST) и анализ состава ПО (SCA) для выявления уязвимостей как в коде, так и в зависимостях до развёртывания.
7. Обеспечьте аутентификацию — всегда
Согласно Prompt.security, слабые или неправильно настроенные механизмы аутентификации в MCP-средах позволяют злоумышленникам обходить средства контроля безопасности, выдавать себя за легитимных пользователей и получать несанкционированный доступ. Многофакторная аутентификация и регулярные аудиты безопасности — это необходимость, а не опция.
Выбор платформы безопасности для MCP
Ландшафт инструментов для безопасности MCP быстро развивается. Вот честное сравнение основных категорий:
- Комплексные платформы, такие как MCP Manager, предоставляют централизованное управление через шлюз, наблюдаемость и гранулярные административные элементы управления для корпоративных сред. Лучше всего подходят для организаций, эксплуатирующих множество MCP-серверов в масштабе.
- Специализированные сканеры, такие как Enkrypt AI и MCP-Scan от Invariant Labs, фокусируются на обнаружении угроз, специфичных для MCP, — отравление инструментов, атаки типа «rug pull», инъекции в промпты. Лучше подходят для команд, которым нужно целенаправленное обнаружение уязвимостей в конвейерах CI/CD.
- Лёгкие шлюзы, такие как MCP Total, предлагают базовое логирование и защитные механизмы против эксфильтрации данных. Хороши для небольших команд, начинающих свой путь в безопасности MCP.
- Чек-листы безопасности, такие как Slowmist MCP Security Checklist, предоставляют фреймворки для ручного аудита, основанные на результатах реальных проверок безопасности. Полезны в качестве базовой оценки перед инвестициями в автоматизированные инструменты.
Ключевой вывод для бизнеса: начните со сканирования каждого используемого MCP-сервера. Исследование показывает, что у 66% есть находки — поэтому считайте, что ваш тоже уязвим, пока не доказано обратное. Автоматическое сканирование, интегрированное в CI/CD, выявляет проблемы до того, как они попадут в продакшн.
Цена игнорирования безопасности MCP
Каждый MCP-сервер, подключённый к AI-агенту, — это граница доверия. Когда эта граница нарушена, AI-агент становится руками злоумышленника — читает файлы, выполняет команды и получает доступ к системам с любыми разрешениями, которые предоставляет сервер. В отличие от традиционного взлома, где атакующий должен самостоятельно ориентироваться в среде, скомпрометированный MCP-сервер даёт злоумышленнику автономного агента, который уже знает, как пользоваться каждым подключённым инструментом.
При 427 критических уязвимостях, обнаруженных на 1 808 серверах, — включая отравление инструментов, способное незаметно перенаправить поведение AI, и сетевую доступность, ставящую серверы в зону досягаемости любого, кто подключён к тому же Wi-Fi, — риск конкретен и непосредственен.
Что это значит для вашего проекта: если ваша команда разрабатывает или развёртывает AI-агентов с MCP-интеграциями, аудит безопасности — это не забота на будущее. Это обязательное условие. Цифры говорят сами за себя — относитесь к безопасности MCP-серверов с той же строгостью, что и к безопасности продакшн-баз данных, потому что уровень доступа сопоставим.
Часто задаваемые вопросы
Как обнаружить атаки отравления инструментов на моих MCP-серверах до того, как они нанесут ущерб?
Используйте специализированные инструменты сканирования MCP, такие как MCP-Scan от Invariant Labs или сканер Enkrypt AI, которые анализируют разрыв между описанием инструмента и его реальной реализацией. Традиционные инструменты статического анализа пропускают эти векторы, потому что не понимают паттерны поведения AI-агентов. Интегрируйте сканирование в свой конвейер CI/CD, чтобы каждый коммит проверялся автоматически.
В чём разница между отравлением инструментов и атаками затенения инструментов в MCP?
Отравление инструментов внедряет вредоносные инструкции в метаданные инструмента или скрытые поля описания, заставляя AI выполнять непреднамеренные действия, в то время как инструмент выглядит легитимным. Затенение инструментов (также называемое атаками типа «rug pull») подразумевает инструмент, который ведёт себя корректно при первоначальной проверке, но меняет поведение после одобрения — функциональность инструмента изменяется после развёртывания. Оба способа эксплуатируют доверие AI-агента к определениям инструментов, но затенение труднее обнаружить, потому что инструмент действительно безопасен на момент сканирования.
Почему MCP-серверы с сетевой доступностью и чрезмерными разрешениями создают «идеальный шторм» для злоумышленников?
Сетевая доступность (привязка к 0.0.0.0) означает, что любой в локальной сети может получить доступ к серверу. Чрезмерные разрешения означают, что сервер может выполнять произвольные команды на хосте. В сочетании злоумышленник переходит от доступа к Wi-Fi к полному контролю над системой без необходимости каких-либо учётных данных — сам сервер предоставляет и точку входа, и возможность выполнения.
Как провести аудит разрешений MCP-инструментов, чтобы убедиться в соблюдении принципа минимальных привилегий?
Проверьте область доступа каждого инструмента: какие файлы он может читать, какие команды выполнять, к каким API обращаться и какие токены хранит. Удалите все разрешения, не являющиеся строго необходимыми для заявленной функции инструмента. CyCognito рекомендует полностью запретить прямую передачу токенов и убедиться, что каждый MCP-сервер имеет только собственные явно выданные учётные данные, а не переданные клиентские токены.
Могут ли злоумышленники эксплуатировать MCP-серверы иначе, чем при прямых атаках на LLM, и какую расширенную поверхность атаки это создаёт?
MCP-серверы расширяют поверхность атаки за пределы самой LLM, предоставляя прямой доступ к файловым системам, базам данных, API и системным командам. Злоумышленнику, скомпрометировавшему MCP-сервер, не нужно манипулировать рассуждениями LLM — он может внедрить вредоносные определения инструментов, перехватить потоки данных или выполнять команды напрямую. Как отмечает Practical DevSecOps, уязвимости LLM, такие как манипуляция промптами, в сочетании с угрозами MCP-серверов усиливают общий риск, делая экосистему более уязвимой к сложным эксплойтам, чем каждый компонент по отдельности.
Статья подготовлена на основе открытых источников и может содержать неточности.


