Суть угрозы: атаки через инструменты, а не через промпты
Традиционная модель безопасности LLM фокусируется на защите входных данных пользователя (промптов). Однако новая архитектура Model Context Protocol (MCP), позволяющая моделям взаимодействовать с внешними инструментами, создает уязвимость другого типа. Исследователь продемонстрировал, что вредоносный код может быть внедрен не в сам запрос к модели, а в серверные инструменты, которые модель вызывает.
Суть атаки заключается в том, что MCP-сервер может быть спроектирован так, чтобы выдавать себя за безобидный инструмент. В примере исследователя сервер имитировал работу калькулятора, но фактически предоставлял функционал для чтения файлов и суммирования заметок. Это позволяет злоумышленникам обходить стандартные фильтры безопасности, которые проверяют только текст промпта пользователя.
Техническая реализация: как работает обход защиты
Уязвимость возникает из-за того, что LLM доверяет структуре и описанию инструмента, предоставленного MCP-сервером. Если сервер предоставляет инструменты с двойным назначением или скрытыми параметрами, модель может выполнить вредоносные действия, считая их частью легитимного рабочего процесса. В примере с «калькулятором» модель, получив запрос на вычисление, могла косвенно инициировать чтение конфиденциальных файлов, если сервер был настроен на перенаправление вызовов.
Почему это важно для разработчиков и пользователей
Архитектура MCP становится стандартом де-факто для интеграции LLM с внешними данными. Если базовый протокол не предусматривает строгой валидации поведения серверных инструментов, вся экосистема оказывается под угрозой. Ключевые риски:
- Доверие к метаданным: Модели обучены следовать инструкциям инструментов. Если инструмент лжет о своей природе, модель выполнит вредоносное действие.
- Сложность аудита: Проверить безопасность можно только на уровне кода самого MCP-сервера, а не через анализ диалога с пользователем.
- Масштабируемость угрозы: Злоумышленник может распространить вредоносный MCP-сервер как плагин, который пользователи установят добровольно.
Рекомендации по безопасности
Для mitigations этой угрозы необходимо внедрять строгую изоляцию (sandboxing) для каждого MCP-сервера. Разработчикам следует избегать использования динамических инструментов, чье поведение может меняться в зависимости от контекста, и внедрять явные подтверждения для операций с файловой системой или сетью. Безопасность LLM-приложений теперь должна сместиться с защиты «входа» (prompt) на защиту «инструментов» (tools).
Источник: Towards AI pub ↗