2025-й можно без сомнения назвать годом Model Context Protocol (MCP) в индустрии искусственного интеллекта. После публикации протокола компанией Anthropic его поддержали крупные игроки рынка, и мы увидели взрывной рост его внедрения.

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

MCP — это открытый протокол, который позволяет организовать контролируемые взаимодействия ИИ со сторонними инструментами и информационными системами через унифицированный API. Фактически, это клиент-серверная технология, в которой MCP-сервер выполняет роль прокси между источниками данных, инструментами работы с ними и ИИ-моделью.

Упрощенно схема потоков данных выглядит так:

  1. Пользователь отправляет промт в LLM, которая обучена на предмет доступных источников данных и инструментов их обработки.
  2. LLM определяет необходимый источник данных или инструмент и обращается к соответствующему MCP-клиенту, который в свою очередь делает запрос на MCP-сервер.
  3. MCP-сервер направляет запрос к источнику данных или в инструмент.
  4. MCP-сервер получает ответ на свой запрос.
  5. MCP-сервер передает ответ через MCP-клиент в LLM.
  6. LLM анализирует ответ.
  7. LLM возвращает результаты анализа пользователю.

Роль пользователя, который взаимодействует с LLM или c MCP-сервером может выполнять AI-агент, автоматизирующий какое-либо действие пользователя или взаимодействующий с другой информационной системой.

В традиционной архитектуре без MCP пользовательское приложение само управляет всеми интеграциями и в связи с этим обладает рядом минусов:

  • отсутствие изоляции потоков данных;
  • сложность мониторинга содержимого потоков данных;
  • хранение чувствительной информации в приложении (API-ключей, интеграционных учетных записей и паролей);
  • сложности настройки защиты от негативного воздействия на модель;
  • низкий уровень логирования.

Эти недостатки эксплуатируются при реализации следующих основных групп атак:

1) на данные модели и на саму модель:

  • извлечение (копирование) модели и/или ее данных;
  • подмена модели на зловредную;
  • негативное воздействие на модель входными данными, заставляющее ее галлюцинировать, выдавать заведомо неверные зловредные данные или инструкции.

2) на AI-агентов:

  • инъекции вредоносного кода в файлы или другие объекты (агент может выполнить код без проверки);
  • нарушение логики (контекста) работы агента за счет подмены легитимных действий на зловредные в рамках санкционированного сценария (агент под сценарием «отправка данных пользователю» может удалить данные или отправить данные злоумышленнику).

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

  • настроить структуру запросов, входных данных и их источников;
  • реализовать идентификацию и контроль пользовательского, служебного и автоматизированного ввода, разделение данных и команд;
  • обеспечить экранирование ввода (в том числе вызванного самой моделью) и проверку его содержимого на предмет зловредного кода или инструкций;
  • настроить ограничения к выводу модели и проверку его содержимого на предмет возможного негативного воздействия на адресата.

Кроме того, MCP-архитектура позволяет:

  • изолировать инструменты по зонам доступа за счет связей один ко одному для каждого MCP-сервера и источника данных/инструмента;
  • строго настроить потоки данных и сценарии взаимодействия узлов;
  • валидировать внешние подключения;
  • логировать события безопасности.

Решения, доступные сейчас для обеспечения защиты LLM-архитектуры с MCP-серверами и AI-агентами:

  • Guardrails AI обеспечивает проверку ввода в LLM на наличие чувствительных данных, запрещенных администратором данных, попыток атак. Вывод модели также проверяется перед отдачей адресату: галлюцинации, зловредный или не этичный ответ, наличие чувствительных данных. Решение интегрируется между MCP-хостом и LLM-инфраструктурой.
  • Invariant Guardrails позиционируется как система безопасного использования AI-агентов. Устанавливается «в разрыв» между агентами и MCP-сервером, LLM. Позволяет настраивать контекстные правила к потоку данных по шаблонам и ограничивать вызов инструментов. Инструмент Invariant Explorer обеспечивает мониторинг поведения модели и ее системного окружения.

Так как MCP использует JSON-RPC как стандарт общения, для локальных развертываний есть техническая возможность интеграции с системами DLP (Data Loss Prevention) для противодействия утечкам информации. Также с системных компонентов можно собирать в корпоративный SIEM события запросов и ответов, системные логи и события взаимодействия между компонентами.

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

  • получению несанкционированного доступа к узлам и данным за счет утечек API-ключей, учетных записей и паролей для взаимодействия с внешними инструментами и источниками данных;
  • компрометации доверенных для MCP-сервера узлов за счет обхода ограничений взаимодействия компонентов MCP-среды;
  • изменению логики работы LLM за счет отравления инструментов MCP-сервера и изменения правил взаимодействия с инструментами и источниками данных.

Также для публичных MCP-серверов применимы атаки их подмены или дублирования (в отсутствии аутентификации).

Классические атаки — классические средства безопасности, в этом смысле защищать MCP-сервер необходимо по стандартным известным правилам:

  • для HTTPS-взаимодействия настройка TLS 1.3, OAuth аутентифкации, включение WAF;
  • ограничение доступа по портам к серверу на межсетевом экране (для внутреннего сервера — доступ только из локальной сети);
  • шифрование секретов (логины, пароли, API-ключи);
  • реализация принципов минимальных привилегий и «все что не разрешено, то запрещено»;
  • настройка rate-лимитов на уровне запросов и попыток доступа;
  • настройка параметров безопасности системных компонентов;
  • проверка на отсутствие уязвимостей в цепочке поставок и своевременные обновления ПО;
  • запуск в контейнерах.

Несколько инструментов безопасности для MCP-серверов:

  • MCP Inspector — средство для отладки и тестирования MCP-серверов;
  • ScanMCP, mcpscan.ai, MCPSafetyScanner — сканеры уязвимостей на уровне реализации сервера, взаимодействия и потока данных, конфигурации окружения;
  • gVisor — песочница для безопасного запуска компонентов MCP-серверов в контейнерах.

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

Леонид Плетнев, бизнес-партнер по информационной безопасности “1С-Битрикс”