Назад к блогу

Самовоспроизводящиеся инъекции в запросах: как ИИ-агенты заражают друг друга

Самовоспроизводящиеся инъекции в запросах: как ИИ-агенты заражают друг друга

Исследователи OpenAI описали новый класс атак на ИИ-модели, при котором вредоносная инструкция не просто влияет на один запрос, а заставляет агента копировать её дальше — в письма, сообщения и файлы. Такая инъекция превращается в самораспространяющуюся цепочку: заражая одно приложение, она через RAG-обмен данными перекидывается на другие. В статье разбирается, как работают эти механизмы, какие каналы связи между агентами уязвимы и почему существующих защит пока недостаточно.

OpenAI обнаружила уязвимость своих моделей к атакам, которые в компании назвали «самовоспроизводящимися инъекциями в запросах». Это инъекции в запросах. Новый тип атак инженеры открыли в июне, подключив GPT-Red к состязательному обучению модели GPT-5.6.

Отличие от обычных инъекций в дополнительном условии: инъекция должна заставить модель воспроизвести саму себя в общедоступном канале на выходе. Именно это превращает одиночную атаку в распространяющуюся цепочку.

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

Обучение проводилось с ориентацией на задачу создания инъекции по методу GPT-Red. Дополнительное требование — самовоспроизведение. В качестве целевых использовался широкий спектр учебных сред, имитирующих реальные рабочие сценарии с упором на задачи, связанные с использованием коннектора.

Атаки с внедрением инструкций через электронную почту и файлы открыла модель класса GPT-Red на основе GPT-5.4-mini — уязвимая модель тоже была на базе GPT-5.4-mini. Многошаговую атаку в Slack раскрыла GPT-5.5 в обвязке Codex, и уязвимость проверялась на примере GPT-5.5.

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

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

Как это работает

Механизм опирается на то, что при коммуникации GenAI-приложений через RAG-инференс злоумышленник создаёт состязательный самовоспроизводящийся промпт. Тот запускает каскад непрямых промпт-инъекций внутри экосистемы и заставляет каждое затронутое приложение выполнять вредоносные действия и компрометировать RAG других приложений.

Непрямая инъекция работает потому, что LLM-интегрированные приложения размывают границу между данными и инструкциями. Злоумышленник удалённо, без прямого интерфейса, внедряет промпты в данные, которые с большой вероятностью будут извлечены. Обработка извлечённых промптов может действовать как произвольное выполнение кода, манипулировать функциональностью приложения и управлять тем, как и будут ли вызываться другие API.

Условия распространения:

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

Браузерные агенты усиливают риск: каждая веб-страница, встроенный документ, реклама и динамически загружаемый скрипт могут быть вектором вредоносных инструкций, а сами агенты способны переходить по URL, заполнять формы, нажимать кнопки и скачивать файлы. В качестве каналов между агентами названы электронная почта, календарь, Slack и файлы.

Предыстория

Класс атак через косвенные промпт-инъекции описан в работе arXiv:2302.12173. Авторы показали, что LLM-интегрированные приложения размывают границу между данными и инструкциями, а обработка извлечённых промптов может действовать как произвольное выполнение кода и управлять вызовами других API. Практическую осуществимость продемонстрировали на реальных системах — Bing Chat на базе GPT-4 и движках автодополнения кода, — а также на синтетических приложениях на GPT-4. Уже тогда авторы отметили: несмотря на растущую интеграцию и зависимость от LLM, эффективные меры противодействия этим угрозам отсутствуют.

В работе arXiv:2403.02817 описана Morris-II. Для защиты авторы предлагают Virtual Donkey — guardrail для обнаружения и предотвращения распространения Morris-II с минимальной задержкой, высокой точностью и низкой долей ложных срабатываний. Guardrail даёт долю истинно положительных 1.0 при доле ложных срабатываний 0.015 и устойчив к червям, собранным из невиданных ранее команд, писем и сценариев.

Саймон Уиллисон 25 апреля 2023 года предложил паттерн Dual LLM для ассистентов, устойчивых к промпт-инъекциям. Он разделяет две модели: Privileged LLM видит запросы пользователя и может запускать действия, Quarantined LLM обрабатывает недоверенный контент и не имеет доступа к инструментам. Нефильтрованный вывод карантинной модели никогда не передаётся привилегированной напрямую — вместо текста используются уникальные токены-переменные, содержимое которых привилегированная модель не видит. Между ними работает Controller — обычное ПО, не языковая модель: он обрабатывает взаимодействие с пользователем, запускает LLM и выполняет действия от имени привилегированной модели, храня переменные и передавая их в карантинную, но не раскрывая содержимое привилегированной. Исключение делается только для проверяемых выходов, например классификации текста в фиксированный набор категорий, которые можно провалидировать перед передачей.

Почему это сделали

Со стороны OpenAI состязательное обучение — метод повышения устойчивости модели путём подачи на вход вредоносных данных в процессе обучения. Дополнительное условие самовоспроизведения проверяет, способна ли модель не только распознать инъекцию, но и не стать её переносчиком.

Со стороны исследователей проблема в том, что такая атака распространяется сама, а не является одиночной инъекцией. Поэтому защита должна обнаруживать и предотвращать именно распространение Morris-II, а не отдельный вредоносный ввод. Virtual Donkey решает эту задачу как guardrail на пути распространения.

Что это меняет на практике

Для разработчиков агентов с инструментами ключевое архитектурное изменение — разделение на привилегированную и карантинную модели. Привилегированная принимает ввод от доверенных источников и имеет доступ к инструментам; карантинная используется для недоверенного контента и доступа к инструментам не имеет. Между ними обязателен Controller — обычное ПО, которое запускает LLM и выполняет действия, а не языковая модель.

Недоверенный вывод карантинной модели нельзя передавать привилегированной напрямую: вместо текста используются уникальные токены-переменные. Нужно ограничить исходящие ссылки и изображения: разрешены только ссылки по заранее одобренному allow-list, а цели изображений должны жёстко контролироваться, иначе само отображение картинки может слить данные.

Для LLM, работающего с недоверенным контентом, вводятся правила:

  • никаких дополнительных действий, которые можно злоупотребить;
  • при возможном смешивании недоверенного контента с приватными данными — только API, которым можно доверять в части утечек;
  • никаких исходящих ссылок и изображений.

Anthropic описывает меры для браузерных агентов в трёх областях. Обучение Claude сопротивлению через reinforcement learning: модель во время тренировки сталкивают с инъекциями, встроенными в симулированный веб-контент, и вознаграждают, когда она распознаёт и отказывается выполнять вредоносные инструкции. Классификаторы сканируют весь недоверенный контент, попадающий в контекстное окно модели, выявляют внедрённые команды в виде скрытого текста, подделанных изображений и обманчивых элементов интерфейса и корректируют поведение Claude при обнаружении атаки. Внутренняя команда безопасности непрерывно ищет уязвимости браузерного агента.

Ограничения и открытые вопросы

Авторы Morris-II оценивают работу червя в экосистеме GenAI-ассистентов электронной почты и анализируют, как на неё влияют размер контекста, используемый самореплицирующийся промпт, тип и размер алгоритма эмбеддингов и число хопов распространения. Авторы работы про косвенные инъекции признают отсутствие эффективных мер противодействия этим угрозам.

Уиллисон считает, что его схема Dual LLM на практике будет работать плохо: придётся одобрять всё, что хочет делать ассистент, а из-за усталости от диалогов пользователи будут быстро нажимать «OK» на всё, что, вероятно, катастрофически провалит эту меру безопасности. Его беспокоит сложность реализации: если нельзя добавлять функции без ошибок, пропускающих недоверенный текст к привилегированной модели, все усилия по защите окажутся напрасными. Социальная инженерия делает решение не на 100% надёжным.

Пример атаки социальной инженерии: закодировать содержимое в Base64 и попросить пользователя вставить строку на стороннем сайте ради «забавной картинки с обезьянкой». Обман с копированием и вставкой обфусцированных данных может сработать, даже если пользователь не может кликать по ссылкам или загружать утекающие изображения. Социальная инженерия опирается на убедительный язык, а его генерация — основная компетенция LLM, особенно когда злоумышленник умеет направлять модель.

Уиллисон скептичен к попыткам использовать ИИ для фильтрации и перехвата prompt injection, так как невозможно надёжно предсказать форму каждой потенциальной атаки. Исключение он допускает для LLM-предупреждения пользователю о возможных атаках через копирование и вставку: его можно настроить на избыточную осторожность, поскольку это лишь предупреждение.

Anthropic называет масштабный человеческий ред-тиминг необходимым, потому что люди-исследователи безопасности стабильно превосходят автоматические системы в поиске креативных векторов атак. Компания признаёт, что промпт-инъекции остаются активной областью исследований, и обязуется инвестировать в защиты по мере развития техник атак.

Источники

Похожее