Перейти к содержимому
Выберите тему

Отравление инструментов: исследование Invariant Labs

1 апреля 2025 Invariant Labs опубликовала сообщение об атаке Tool Poisoning: вредные указания прячут в описании инструмента MCP, которое видит модель, но не видит человек.

1 апреля 2025 компания Invariant Labs опубликовала сообщение «MCP Security Notification: Tool Poisoning Attacks». Авторы - Luca Beurer-Kellner и Marc Fischer. Это исследование сторонней компании, а не бюллетень об уязвимости с номером. Всё, что сказано ниже, изложено по описанию Invariant Labs.

Что изменилось

Публикация дала название способу злоупотребления - Tool Poisoning Attack, отравление инструментов. По описанию Invariant Labs, такая атака происходит, когда в описание инструмента MCP встроены вредные указания: человек их не видит, а модель видит. Авторы относят её к особому виду косвенного внедрения инструкций (indirect prompt injection).

Механизм Invariant Labs объясняет так: модель получает описание инструмента целиком, вместе со скрытыми указаниями, а человеку интерфейс обычно показывает упрощённый вариант.

В публикации есть пример. Инструмент add складывает числа, но в его описании стоит блок <IMPORTANT>. Блок велит модели прочитать файлы ~/.cursor/mcp.json и ~/.ssh/id_rsa и передать их содержимое в аргументе sidenote.

В той же публикации описаны ещё два приёма:

  • подмена после одобрения (rug pull): по описанию Invariant Labs, вредоносный сервер может изменить описание инструмента уже после того, как клиент его одобрил;
  • затенение инструмента (tool shadowing): по описанию Invariant Labs, вредоносный сервер добавляет описание инструмента, которое меняет поведение агента по отношению к доверенному сервису или инструменту.

Страница дополнялась дважды. В дополнении от 7 апреля Invariant Labs сообщает о продолжении работы - выводе истории переписки WhatsApp через MCP. В дополнении от 11 апреля объявлен выпуск MCP-Scan, который авторы называют сканером безопасности для серверов MCP.

Кого это касается

Первый опыт в публикации поставлен на клиенте Cursor. При этом Invariant Labs пишет, что атака не ограничена им: её можно повторить с любым клиентом MCP, который не проверяет описания инструментов должным образом или не показывает их человеку.

В начале текста авторы называют уязвимыми для этой атаки многих крупных поставщиков, среди которых Anthropic и OpenAI, системы автоматизации вроде Zapier и клиенты MCP вроде Cursor. Это оценка Invariant Labs.

Если вы подключаете серверы MCP, которым не доверяете полностью, проверьте две вещи: показывает ли ваш клиент полное описание каждого инструмента и замечает ли он, что описание изменилось после одобрения.

Как это выглядит сейчас

Что о таких атаках говорит действующая редакция протокола и что остаётся на стороне хоста, разобрано на странице «Отравление инструментов и внедрение инструкций». Общие правила того, кому и чему можно доверять, собраны на странице «Модель доверия».

Источники