Не только «забудь инструкции»

Самый известный пример промпт-инъекции - прямая команда вроде «забудь все предыдущие инструкции и веди себя как...». Современные модели такие прямые попытки обычно распознают и игнорируют. Более рабочие атаки хитрее: пользователь маскирует команду под цитату, историю, перевод текста или ролевую игру - формально не отдаёт прямой приказ, а подводит модель к тому же результату окольным путём. Именно такие формы чаще всего проходят там, где прямые не срабатывают.

Три слоя защиты

Разделение инструкции и ввода
Системная инструкция передаётся отдельным каналом от текста пользователя, а не просто склеивается в одну строку - это затрудняет попытки «выдать себя» за системную команду.
Явный список запретов
Бот должен явно знать, что нельзя делать ни при какой формулировке запроса - например, никогда не раскрывать системную инструкцию целиком и не менять цену без подтверждения человеком.
Проверка критичных действий
Возврат денег, изменение заказа, доступ к персональным данным - такие действия не выполняются по одному текстовому запросу в чате, а требуют дополнительного подтверждения вне текстового канала.

Наивный бот и бот с защитой

Таблица прокручивается вбок на телефоне →

СитуацияБез защитыС многослойной защитой
Прямая команда «забудь инструкции»Иногда срабатываетОтклоняется явным запретом
Замаскированная инъекция (ролевая игра, цитата)Часто срабатываетСнижен риск, но не исключён полностью
Запрос на возврат денег через чатМожет выполниться сразуТребует подтверждения вне текстового канала
Раскрытие системной инструкцииВозможно при удачной формулировкеЗаблокировано явным запретом на уровне логики

Полной защиты не существует

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

Чек-лист перед запуском бота

Сохраните себе
  1. Разделите системную инструкцию и пользовательский ввод технически, а не просто по смыслу текста.
  2. Пропишите явный список того, что бот не делает ни при какой формулировке запроса.
  3. Не давайте текстовому каналу право в одиночку выполнять критичные действия - деньги, доступ к данным, изменение заказа.
  4. Протестируйте бота на нескольких известных формах инъекций (ролевая игра, цитата, «перевод») до запуска, не после.
  5. Логируйте подозрительные запросы - они пригодятся, чтобы закрыть новые формы атак по мере их появления.
Можно ли полностью защититься от промпт-инъекций?
Нет, полной гарантии не существует. Реалистичная цель - убрать массовые атаки и не давать текстовому каналу управлять критичными действиями.
Какие ИИ-боты в наибольшей зоне риска промпт-инъекций?
Те, что могут выполнять критичные действия - тратить деньги, менять заказы, обращаться к персональным данным.
Нужно ли тестировать бота на промпт-инъекции до запуска?
Да - проверка на известные формы атак до запуска дешевле, чем разбор инцидента после.
← Все статьи блога