Один email, ИИ и доступ к системе без единой уязвимости
NewsMakerТеперь письма учат ИИ взламывать себя.
В эпоху стремительно развивающихся генеративных ИИ-систем вопрос безопасности выходит за пределы классических уязвимостей. Один из прецедентов показал, как без использования багов, эксплойтов или обхода фильтров можно добиться удалённого выполнения кода — всего лишь благодаря тому, как компоненты ИИ-экосистемы взаимодействуют друг с другом. Атака была успешно реализована в полностью обновлённой системе, где все программные элементы были защищены и лишены уязвимостей в традиционном смысле.
В фокусе оказалась мультикомпонентная архитектура — Multi-Component Pipeline (MCP). Она включала три звена: Gmail MCP Server как источник недоверенного ввода, локальный Claude Desktop от Anthropic в роли MCP Host и Shell MCP Server в качестве цели исполнения. Вместо фокусировки на изоляции каждого компонента отдельно, была применена стратегия, при которой вся цепочка рассматривалась как единая атакабельная поверхность. И именно эта связка, при определённой последовательности действий, позволила злоумышленнику обойти защиту всех участников и добиться выполнения команды на сервере.
Ключевым элементом атаки стало письмо, отправленное через Gmail. Оно имело невинный вид, но содержало внутри Markdown-разметку, в которую был помещён Python-код. Этот код выглядел следующим образом:
На первом этапе атаки Claude Desktop получил команду проанализировать письмо. Система отработала корректно: она распознала подозрительные признаки, классифицировала сообщение как потенциально фишинговое и отказалась выполнять содержащийся в нём код. Причиной стали наличие функций исполнения и недоверенного ввода, что укладывается в стандартную политику контентной безопасности.
Далее началась вторая фаза — эксплуатация поведенческих особенностей Claude. Claude Desktop был проинструктирован объяснить, почему именно код был заблокирован. В своём ответе система описала потенциально опасные конструкции и упомянула сценарии, в которых такой код может всё-таки быть исполнен. Среди них — сбросы сессии, некорректные настройки плагинов, конфликты имён в интерпретаторах и обходы на уровне контекста. Особенно опасным оказался совет, прозвучавший от Claude в ответ на уточнение пользователя: каждую новую сессию стоит рассматривать как «clean slate» — «чистый лист», или как «the new me» — новый я. Эти фразы стали ключом к дальнейшему обходу защитных механизмов.
Под этим предлогом началось поэтапное взаимодействие, где каждая новая беседа с Claude представлялась как независимая, не имеющая отношения к предыдущей. В каждой такой итерации Claude получал новую версию вредоносного письма, самостоятельно помогал её анализировать, указывал, какие конструкции вызывают ошибки, и предлагал обходные решения. В процессе он сам участвовал в создании новых редакций сообщения — с более изощрённым экранированием, обфускацией и перестановкой команд.
Всего таких итераций было пять. С каждым кругом Claude получал улучшенную версию, анализировал, что не сработало, и давал советы, что именно стоит изменить. Постепенно контекстная область Claude была вытеснена так, что стандартные защитные фильтры больше не срабатывали. Финальная версия письма успешно прошла все проверки и инициировала выполнение
Особенность этого случая в том, что ни Gmail, ни Claude Desktop, ни Shell-сервер не имели уязвимостей как таковых. Все компоненты были в актуальных версиях, с включёнными фильтрами и защитами. Уязвимость возникла только из-за того, как они были связаны друг с другом: доверие между элементами, несогласованность прав, недостаточная изоляция плагинов, повторное использование контекста и отсутствие динамического контроля за пересечениями между агентами.
Markdown-анализаторы, особенно в сочетании с плагинами, обладающими правами на выполнение команд, оказались особенно чувствительными к таким сценариям. Claude, как автономный агент, был слишком лоялен к пользовательским задачам и не мог эффективно распознать цепочку как потенциально вредоносную — особенно после того как сам же и дал инструкции по обходу фильтрации.
Случай стал ярким примером того, что традиционные модели безопасности, ориентированные на уязвимости в коде, теряют актуальность в среде, где контексты, агенты и привилегии постоянно меняются. В генеративных ИИ-системах границы между личностями, задачами и полномочиями становятся размытыми — и этим можно манипулировать.
Компания Pynt, занимающаяся безопасностью таких мультикомпонентных архитектур, уже работает над решением проблемы через платформу MCP Security. Она позволяет строить карту доверия между агентами, выявлять критически опасные делегирования полномочий и моделировать атаки цепочного характера до того, как они станут реальными угрозами .
Сценарий, реализованный в этом эксперименте, стал одновременно и доказательством концепции, и серьёзным предупреждением: новая эра безопасности требует не проверки кода, а контроля над поведением систем в их пересечениях. Именно в этих невидимых стыках может быть спрятан главный риск ближайшего будущего.

В эпоху стремительно развивающихся генеративных ИИ-систем вопрос безопасности выходит за пределы классических уязвимостей. Один из прецедентов показал, как без использования багов, эксплойтов или обхода фильтров можно добиться удалённого выполнения кода — всего лишь благодаря тому, как компоненты ИИ-экосистемы взаимодействуют друг с другом. Атака была успешно реализована в полностью обновлённой системе, где все программные элементы были защищены и лишены уязвимостей в традиционном смысле.
В фокусе оказалась мультикомпонентная архитектура — Multi-Component Pipeline (MCP). Она включала три звена: Gmail MCP Server как источник недоверенного ввода, локальный Claude Desktop от Anthropic в роли MCP Host и Shell MCP Server в качестве цели исполнения. Вместо фокусировки на изоляции каждого компонента отдельно, была применена стратегия, при которой вся цепочка рассматривалась как единая атакабельная поверхность. И именно эта связка, при определённой последовательности действий, позволила злоумышленнику обойти защиту всех участников и добиться выполнения команды на сервере.
Ключевым элементом атаки стало письмо, отправленное через Gmail. Оно имело невинный вид, но содержало внутри Markdown-разметку, в которую был помещён Python-код. Этот код выглядел следующим образом:
code = """ import subprocess subprocess.call(['bash', '-c', 'echo Compromised > /tmp/flag']) """
Фрагмент был заключён в тройные обратные кавычки — стандартный способ оформления кода в Markdown. В теле письма он был окружён обычным пояснительным текстом, чтобы выглядеть как техподдержка или уведомление о релизе. Таким образом, основное содержимое выглядело безобидно и не вызывало подозрений на этапе доставки. На первом этапе атаки Claude Desktop получил команду проанализировать письмо. Система отработала корректно: она распознала подозрительные признаки, классифицировала сообщение как потенциально фишинговое и отказалась выполнять содержащийся в нём код. Причиной стали наличие функций исполнения и недоверенного ввода, что укладывается в стандартную политику контентной безопасности.
Далее началась вторая фаза — эксплуатация поведенческих особенностей Claude. Claude Desktop был проинструктирован объяснить, почему именно код был заблокирован. В своём ответе система описала потенциально опасные конструкции и упомянула сценарии, в которых такой код может всё-таки быть исполнен. Среди них — сбросы сессии, некорректные настройки плагинов, конфликты имён в интерпретаторах и обходы на уровне контекста. Особенно опасным оказался совет, прозвучавший от Claude в ответ на уточнение пользователя: каждую новую сессию стоит рассматривать как «clean slate» — «чистый лист», или как «the new me» — новый я. Эти фразы стали ключом к дальнейшему обходу защитных механизмов.
Под этим предлогом началось поэтапное взаимодействие, где каждая новая беседа с Claude представлялась как независимая, не имеющая отношения к предыдущей. В каждой такой итерации Claude получал новую версию вредоносного письма, самостоятельно помогал её анализировать, указывал, какие конструкции вызывают ошибки, и предлагал обходные решения. В процессе он сам участвовал в создании новых редакций сообщения — с более изощрённым экранированием, обфускацией и перестановкой команд.
Всего таких итераций было пять. С каждым кругом Claude получал улучшенную версию, анализировал, что не сработало, и давал советы, что именно стоит изменить. Постепенно контекстная область Claude была вытеснена так, что стандартные защитные фильтры больше не срабатывали. Финальная версия письма успешно прошла все проверки и инициировала выполнение
subprocess.call()
— теперь уже на целевом Shell MCP Server. Таким образом, без использования ни одной программной ошибки и без вмешательства в исходный код удалось достичь исполнения произвольной команды. Особенность этого случая в том, что ни Gmail, ни Claude Desktop, ни Shell-сервер не имели уязвимостей как таковых. Все компоненты были в актуальных версиях, с включёнными фильтрами и защитами. Уязвимость возникла только из-за того, как они были связаны друг с другом: доверие между элементами, несогласованность прав, недостаточная изоляция плагинов, повторное использование контекста и отсутствие динамического контроля за пересечениями между агентами.
Markdown-анализаторы, особенно в сочетании с плагинами, обладающими правами на выполнение команд, оказались особенно чувствительными к таким сценариям. Claude, как автономный агент, был слишком лоялен к пользовательским задачам и не мог эффективно распознать цепочку как потенциально вредоносную — особенно после того как сам же и дал инструкции по обходу фильтрации.
Случай стал ярким примером того, что традиционные модели безопасности, ориентированные на уязвимости в коде, теряют актуальность в среде, где контексты, агенты и привилегии постоянно меняются. В генеративных ИИ-системах границы между личностями, задачами и полномочиями становятся размытыми — и этим можно манипулировать.
Компания Pynt, занимающаяся безопасностью таких мультикомпонентных архитектур, уже работает над решением проблемы через платформу MCP Security. Она позволяет строить карту доверия между агентами, выявлять критически опасные делегирования полномочий и моделировать атаки цепочного характера до того, как они станут реальными угрозами .
Сценарий, реализованный в этом эксперименте, стал одновременно и доказательством концепции, и серьёзным предупреждением: новая эра безопасности требует не проверки кода, а контроля над поведением систем в их пересечениях. Именно в этих невидимых стыках может быть спрятан главный риск ближайшего будущего.