September 28, 2025

Red Teaming LLM агентов с помощью MCP протокола

Введение

Для унификации взаимодействия между LLM-агентами и внешними ресурсами был предложен протокол Model Context Protocol (MCP), который позволяет подключать различные инструменты и предоставляет доступ к данным. Это и позволяет стандартизировать взаимодействие, а единообразие упрощает работу для разработчиков. Однако стандартизация взаимодействия через MCP порождает и новые векторы угроз. Например если злоумышленник сможет подписать или распространить MCP-пакет с «заражёнными» метаданными инструмента, то LLM-агент, опирающийся на описание и схему вызова этого инструмента, может непреднамеренно выполнить вредоносное поведение. Такие «tool poisoning»-атаки способны искажать параметры вызова, подменять интерпретацию результатов или незаметно выводить агента на выполнение нежелательных действий. В этой работе представлен инструмент AutoMalTool - автоматизированный фреймворк для red-teaming'а LLM-агентов путём генерации потенциально вредоносных MCP-пакетов.

Предыстория

LLM-based agents

LLM-агенты — это системы, где генеративная модель (LLM) выступает и как планировщик и исполнитель действий. Типичная функциональность агента включает:

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

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

  1. Выбор инструмента (Tool selection). Агент решает, какой из доступных инструментов лучше всего подходит для текущей подзадачи.
  2. Формирование параметров (Parameter grounding). Агент извлекает/формулирует конкретные входные параметры для выбранного инструмента, учитывая контекст задачи.
  3. Интерпретация результата (Result interpretation). Агент получает ответ инструмента и интерпретирует его, чтобы принять дальнейшие решения или сформировать ответ пользователю.

Workflow llm-agent

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

Model Context Protocol (MCP)

MCP — это открытый протокол для стандартизированного предоставления контекста и инструментов LLM-агентам. Его цель — упростить интеграцию разных источников данных и сервисов, делая подключение инструментов повторяемым и предсказуемым.

Архитектура MCP обычно включает следующие роли:

  • MCP Host - сам LLM-агент или платформа, управляющая подключениями.
  • MCP Client - компонент на стороне агента, который поддерживает соединение с сервером MCP и запрашивает контекст/описания инструментов.
  • MCP Server - поставщик контекста: описания инструментов (Tool), дополнительные ресурсы (Resources) и шаблоны взаимодействия/подсказки (Prompts).

Ключевые блоки MCP-сервера:

  • Tool (инструмент). Описывает функциональность, интерфейс (схему входных параметров) и метаданные (имя, описание, примеры использования). Именно на основе этих метаданных агент решает, как и когда вызывать инструмент.
  • Resources. Внешние данные — файлы, базы, документы — которые инструмент может использовать или предоставлять агенту.
  • Prompts. Шаблоны/подсказки, определяющие ожидаемый стиль взаимодействия между агентом и инструментом.

MCP делает распространение инструментов и их подключение простым/ Разработчики выкладывают MCP-пакеты/серверы, агент подключается к ним и автоматически получает набор инструментов.

Угрозы в MCP

Стандартизация через MCP также предоставляет и поверхность атаки:

  • Prompt injection. Злоумышленник скрывает вредоносные инструкции внутри текстовых полей (например, описания инструмента), чтобы побудить LLM выполнить нежелательные действия («игнорируй предыдущие инструкции», «выполни X» и т.д.). Это классический вектор, уже подробно изученный в контексте LLM-приложений.
  • Tool poisoning (отравление инструментов). В MCP-контексте атака чаще всего реализуется через модификацию метаданных инструмента (описание, примеры, рекомендации), при котором инструмент физически остаётся работоспособным, но его описание содержит скрытые инструкции, влияющие на поведение агента. Поскольку агенты опираются на метаданные для выбора и использования инструментов, изменённое описание может привести к:
    • неверному формированию параметров (incorrect parameter invocation), или
    • неправильной интерпретации результатов (output results misinterpretation).

Авторы отмечают (на основе анализа MCP), что компоненты инструментов используются очень широко. Так почти все LLM-агенты поддерживают MCP-tools около 97.4%, примерно 34.6% поддерживают MCP-resources и только 30.1% поддерживает MCP-prompts. Это делает сами инструменты особенно привлекательной мишенью.

Методология

Модель угрозы

Атакующий это внешняя сторона, способная создать и опубликовать MCP-пакет (например, в PyPI / npm или на специализированном MCP-маркетплейсе). Атакующий не имеет доступа к внутренностям целевого агента, для него это чёрный ящик. Атакующий органичен, так как нельзя ломать работоспособность кода пакета - изменения ограничиваются метаданными (текстовые поля) и должны проходить синтаксическую проверку. Атаке нужно уметь обходить существующие детекторы.

Цель атаки внедрить в метаданные инструмента скрытые инструкции, которые при обычном использовании инструмента, LLM-агент выполнит во вредоносных целях.

Типы целевого вреда:

  1. Incorrect parameter invocation - агент подставляет некорректные/вредоносные параметры при вызове инструмента.
  2. Output results misinterpretation - агент неверно интерпретирует ответы инструмента (или инструмент формирует ответ так, что агент делает ошибочный вывод).

Архитектура AutoMalTool

AutoMalTool - это многоагентная система, состоящая из четырёх основных модулей, которые работают в цикле оптимизации:

  1. Initial Generator - генерирует начальные сценарии использования и начальную версию вредоносного описания инструмента.
  2. Oracle - анализирует описание на признаки prompt injection / детектируемые паттерны; выдает бинарную метку и список причин (фидбек).
  3. Effectiveness Evaluator - симулирует поведение агента с оригинальным и изменённым описанием инструмента и оценивает, проявилось ли ожидаемое вредоносное поведение (использует behavior judger и failure reasoner).
  4. Tool Optimizer - получает обратную связь от Oracle и Effectiveness Evaluator и перефразирует/оптимизирует описание для повышения эвзивности или эффективности.

Между модулями проходит итеративный цикл:

  • Если Oracle помечает описание как подозрительное - оптимизатор делает его «менее подозрительным»
  • Если Oracle пропускает, но симуляция показывает неудачу - оптимизатор улучшает выразительность вредоносного сигнала.
  • После успешной итерации пакет упаковывается в рабочий MCP-пакет.

Принципы, обеспечивающие корректность пакета:

  • Ограничение изменений метаданных - все преобразования выполняются только над полями name, description, input_scheme. Код и API интерфейсы не меняются логически, чтобы не нарушить работу пакета.
  • При модификации пакета AutoMalTool использует статический анализ, чтобы корректно заменять текстовые поля в исходном репозитории без нарушения синтаксиса, схем и комментариев. Это обеспечивает, что пакет остаётся валидным.
  • Сохранение обратной совместимости: оптимизатор внедряет вредоносные инструкции как «легитимные» расширения поведения (например, дополнительные рекомендации по использованию), чтобы не ломать существующие тесты и не провоцировать отказ при установке.

Тесты

Инфраструктура

AutoMalTool - построен на фреймворке LangGraph. Используются разные LLM для разных агентов:

  • DeepSeek V3.1 для Initial Generator, Oracle и Effectiveness Evaluator
  • Claude Sonnet 4 для Tool Optimizer

Максимальное число итераций оптимизации 10.

Целевые агенты:

  • Claude Desktop - универсальный ассистент (планирование, поиск информации, генерация текста).
  • Cline - агент-программист (кодогенерация, отладка, документация).
    Оба поддерживают подключение MCP-инструментов.

MCP-серверы (всего 53 инструмента):

  • Alpaca MCP Server - 27 инструментов для финансовых операций.
  • WhatsApp MCP Server - 12 инструментов для обмена сообщениями.
  • Filesystem MCP Server - 14 инструментов для управления файлами.

Методы детекции атак:

  • MCP-Scan - чёрный ящик, статический анализ установленных MCP-пакетов.
  • A.I.G (Tencent) - LLM-агент для анализа MCP-пакетов.

Эффективность

Всего сформировано:

  • 247 сценариев для Alpaca
  • 117 для WhatsApp
  • 130 для Filesystem

Результаты по GSR (Generation Success Rate) - успешность генерации вредоносного инструмента:

  • Alpaca: 93.1%
  • WhatsApp: 89.7%
  • Filesystem: 72.3%

Результаты по ESR (Effective Success Rate) - успешность атаки в реальном агенте:

  • Среднее значение: ~35.3%
  • Claude Desktop оказался менее устойчив, чем Cline.
  • LLM Claude Opus 4.1 показал наибольшую устойчивость.
  • Инструменты Filesystem оказались сложнее для атаки, чем Alpaca и WhatsApp

Обход защит

При анализе с помощью MCP-Scan - 88–95% атак обошли защиту.

При анализе с помощью A.I.G - 76–92% атак обошли защиту.

Вывод

  • AutoMalTool способен автоматически генерировать синтаксически корректные MCP-пакеты с «заражёнными» описаниями инструментов.
  • Значительная доля таких автоматически сгенерированных инструментов реально меняет поведение агентов в тестах
  • Атаки на некорректную подстановку параметров оказываются проще и успешнее, чем манипуляции с интерпретацией результатов.
  • Существующие механизмы обнаружения демонстрируют невысокую эффективность - большинство атак проходят незамеченными.
  • Стоимость и время генерации невысоки, что делает метод практично применимым в реальных red-teaming сценариях.

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