Протокол контекстной модели (MCP), запущенный компанией Anthropic в ноябре 2024 года, представляет собой инновационный фреймворк, соединяющий крупные языковые модели (LLM) с внешними источниками данных и сервисами. Обеспечивая унифицированный интерфейс для доступа к различным источникам информации и позволяя переключаться между провайдерами LLM, MCP открывает новые возможности для разработчиков. Однако, как и любая новая технология, протокол несет в себе определенные риски безопасности, которые могут быть использованы как для атак, так и для защиты.

Одной из основных уязвимостей MCP являются непрямые атаки инъекции промптов. Примером может служить внедрение вредоносных сообщений со скрытыми инструкциями в Gmail MCP. Такие атаки способны спровоцировать нежелательные действия, например, пересылку конфиденциальных писем без ведома пользователя. Этот вектор атаки особенно опасен, поскольку может оставаться незамеченным длительное время.
Отравление инструментов представляет собой еще одну серьезную угрозу. В этом сценарии злоумышленники встраивают вредоносные инструкции в описания инструментов, которые видны языковым моделям. Когда LLM обращается к этим инструментам, она невольно выполняет скрытые команды, что может привести к утечке данных или компрометации системы.
Атаки типа "rug pull" (выдергивание ковра) особенно коварны своей отложенной природой. Инструменты сначала функционируют безобидно, завоевывая доверие пользователей и системы, но затем изменяют свое поведение через отложенные обновления. Такая тактика затрудняет обнаружение вредоносной активности на ранних стадиях.
Проблемы с разрешениями также вызывают беспокойство. Как отмечает компания SentinelOne: «Пользователи могут одобрить использование инструмента и доступ к нему, но выданные инструменту разрешения могут быть повторно использованы без повторного запроса к пользователю». Это создает потенциальную брешь в безопасности, когда однажды предоставленный доступ может быть использован многократно без дополнительного контроля.
Перекрестное загрязнение инструментов или затенение инструментов между серверами происходит, когда один MCP-сервер переопределяет другой. Это может влиять на использование других инструментов и создавать новые векторы утечки данных, что делает защиту системы еще более сложной задачей.
Интересно, что те же уязвимости могут быть использованы и в защитных целях. Исследование компании Tenable показало, что фреймворк MCP способен создавать инструменты, регистрирующие все вызовы функций инструментов MCP. Инъекция промптов может быть применена для целей безопасности, позволяя логировать информацию об инструментах, включая название MCP-сервера, название и описание инструмента MCP, а также пользовательские запросы, запускающие выполнение инструмента. Более того, можно создавать инструменты типа «брандмауэр» для блокировки несанкционированных инструментов.
Бен Смит, исследователь безопасности, подчеркивает: «Инструменты должны требовать явного одобрения перед запуском в большинстве хост-приложений MCP". Он также отмечает, что поведение инструментов может быть непредсказуемым из-за недетерминированности LLM, что добавляет дополнительный слой сложности в обеспечении безопасности.
Параллельно с MCP существует протокол Agent2Agent (A2A), недавно представленный Google. A2A позволяет осуществлять коммуникацию между агентными приложениями, но также уязвим для атак, где вредоносные ИИ-агенты могут перехватывать запросы. Скомпрометированные агенты способны преувеличивать свои возможности, чтобы быть выбранными для выполнения задач, а затем захватывать конфиденциальные данные и возвращать ложные результаты.
Протоколы MCP и A2A дополняют друг друга: если MCP соединяет языковые модели с данными, то A2A обеспечивает связь между ИИ-агентами. Вместе они формируют экосистему, которая, несмотря на свои уязвимости, открывает новые возможности для развития искусственного интеллекта при условии правильного подхода к безопасности.

Изображение носит иллюстративный характер
Одной из основных уязвимостей MCP являются непрямые атаки инъекции промптов. Примером может служить внедрение вредоносных сообщений со скрытыми инструкциями в Gmail MCP. Такие атаки способны спровоцировать нежелательные действия, например, пересылку конфиденциальных писем без ведома пользователя. Этот вектор атаки особенно опасен, поскольку может оставаться незамеченным длительное время.
Отравление инструментов представляет собой еще одну серьезную угрозу. В этом сценарии злоумышленники встраивают вредоносные инструкции в описания инструментов, которые видны языковым моделям. Когда LLM обращается к этим инструментам, она невольно выполняет скрытые команды, что может привести к утечке данных или компрометации системы.
Атаки типа "rug pull" (выдергивание ковра) особенно коварны своей отложенной природой. Инструменты сначала функционируют безобидно, завоевывая доверие пользователей и системы, но затем изменяют свое поведение через отложенные обновления. Такая тактика затрудняет обнаружение вредоносной активности на ранних стадиях.
Проблемы с разрешениями также вызывают беспокойство. Как отмечает компания SentinelOne: «Пользователи могут одобрить использование инструмента и доступ к нему, но выданные инструменту разрешения могут быть повторно использованы без повторного запроса к пользователю». Это создает потенциальную брешь в безопасности, когда однажды предоставленный доступ может быть использован многократно без дополнительного контроля.
Перекрестное загрязнение инструментов или затенение инструментов между серверами происходит, когда один MCP-сервер переопределяет другой. Это может влиять на использование других инструментов и создавать новые векторы утечки данных, что делает защиту системы еще более сложной задачей.
Интересно, что те же уязвимости могут быть использованы и в защитных целях. Исследование компании Tenable показало, что фреймворк MCP способен создавать инструменты, регистрирующие все вызовы функций инструментов MCP. Инъекция промптов может быть применена для целей безопасности, позволяя логировать информацию об инструментах, включая название MCP-сервера, название и описание инструмента MCP, а также пользовательские запросы, запускающие выполнение инструмента. Более того, можно создавать инструменты типа «брандмауэр» для блокировки несанкционированных инструментов.
Бен Смит, исследователь безопасности, подчеркивает: «Инструменты должны требовать явного одобрения перед запуском в большинстве хост-приложений MCP". Он также отмечает, что поведение инструментов может быть непредсказуемым из-за недетерминированности LLM, что добавляет дополнительный слой сложности в обеспечении безопасности.
Параллельно с MCP существует протокол Agent2Agent (A2A), недавно представленный Google. A2A позволяет осуществлять коммуникацию между агентными приложениями, но также уязвим для атак, где вредоносные ИИ-агенты могут перехватывать запросы. Скомпрометированные агенты способны преувеличивать свои возможности, чтобы быть выбранными для выполнения задач, а затем захватывать конфиденциальные данные и возвращать ложные результаты.
Протоколы MCP и A2A дополняют друг друга: если MCP соединяет языковые модели с данными, то A2A обеспечивает связь между ИИ-агентами. Вместе они формируют экосистему, которая, несмотря на свои уязвимости, открывает новые возможности для развития искусственного интеллекта при условии правильного подхода к безопасности.