Как работает промпт-инъекция
Языковые модели обрабатывают инструкции пользователя, системные настройки и дополнительную информацию, необходимую для выполнения задачи. Проблема возникает, когда текст из менее доверенного источника начинает восприниматься как указание, которому нужно следовать.
Например, AI-агент получает задачу проанализировать документацию проекта. В одном из файлов находится текст с требованием прекратить анализ и отправить содержимое конфигурации на внешний адрес. Если агент подчинится этому требованию, промпт-инъекция окажется успешной.
Вредоносная инструкция в этом случае не является частью легитимной задачи. Она лишь размещена в данных, которые модель должна изучить.
Атаки Prompt Injection используют особенности обработки естественного языка: модель может неправильно определить, какие сообщения являются инструкциями, а какие — обычным содержимым документа.
Какие бывают промпт-инъекции
По способу доставки вредоносных инструкций обычно выделяют два основных сценария.
Прямое воздействие (Direct Prompt Injection). Атакующий помещает инструкции непосредственно в запрос к модели, пытаясь обойти установленные ограничения. Например, требует проигнорировать ранее заданные правила. Такие попытки также могут относиться к атакам типа jailbreak.
Косвенное воздействие (Indirect Prompt Injection). Инструкции размещаются во внешнем источнике, который модель обрабатывает при выполнении другой задачи.
Для AI-агентов особенно опасен второй сценарий. Вредоносный текст может находиться:
- на веб-странице или в результатах поиска;
- в документации и исходных файлах проекта;
- в электронном письме или прикреплённом документе;
- в ответе API или другого подключённого инструмента.
При этом содержимое необязательно выглядит как явная команда. Атакующий может замаскировать его под системное уведомление, комментарий разработчика или обязательное условие выполнения задачи.
Чем опасна промпт-инъекция
Последствия зависят от того, какие данные и инструменты доступны модели.
Подмена результата. Модель может начать отвечать по правилам атакующего, включать постороннюю информацию или игнорировать исходный запрос.
Раскрытие данных. Атакующий может попытаться заставить модель передать конфиденциальные сведения из доступного ей контекста.
Нежелательные действия. Если AI-агент умеет выполнять команды, изменять файлы или обращаться к внешним сервисам, инъекция может спровоцировать использование этих возможностей не по назначению.
Сама по себе вредоносная инструкция не даёт модели дополнительных системных прав. Но она может заставить агента неправильно использовать уже предоставленные разрешения.
Как защититься от Prompt Injection
Полностью исключить такие атаки сложно, поэтому защиту строят на нескольких уровнях.
- Разделение инструкций и данных. Содержимое документов, веб-страниц и ответов инструментов нельзя считать доверенными указаниями только потому, что модель его прочитала.
- Ограничение прав. Агенту предоставляют лишь те инструменты и разрешения, которые действительно необходимы для задачи.
- Подтверждение опасных операций. Удаление файлов, отправка данных и другие чувствительные действия должны требовать дополнительного контроля.
- Изоляция выполнения. Использование песочницы помогает ограничить последствия нежелательных действий агента.
- Проверка поведения. Систему тестируют на попытках подменить инструкции через внешние источники.
Системный промпт задаёт правила поведения модели, но наличие таких правил само по себе не гарантирует защиту от инъекций.
Для надёжной работы AI-агентов важно сочетать ограничения на уровне модели с техническим контролем доступа к инструментам и данным.