Поймай jailbreak, если сможешь

от автора

Jailbreak в мире ИИ часто представляют как взлом. Будто внутри большой языковой модели ( далее LLM, от англ. large language model) есть замок, к которому кто‑то подбирает отмычку. Щелчок. Замок открыт. Ограничения сняты. Модель стала другой. Красивая картинка, удобная, но почти полностью неверная, поскольку jailbreak — это не взлом в духе «я нашёл секретную кнопку и отключил защиту», ведь никто не перепрошивает модель, находясь в пользовательском чате, не меняет её веса и не ломает её «природу».

И вот здесь начинается самое интересное: jailbreak работает не потому, что модель внезапно перестаёт быть собой и начинает «подчиняться» пользователю, а потому, что её удаётся убедить: рамки ситуаций, при которых LLM обязана отказать, она видит слишком размыто. Что перед ней не запретный запрос, а учебный пример, не опасная инструкция, а тест безопасности, не нарушение правил, а роль, сценарий, исключение, симуляция или якобы уже согласованная задача. То есть это не история про грубую силу — это история про образ, контекст и доверие.

Короче, jailbreak — это Фрэнк Абигнейл для нейросетей. И вот почему.

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

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

Но сразу важная оговорка: не всякий jailbreak строится на легенде, иногда никакого костюма попросту нет — только оптимизация, обфускация или массовый перебор, а Абигнейл хорошо объясняет значительную часть атак, но не определяет весь класс.

Поэтому чтобы понять, где заканчивается метафора и начинается механика, сначала придётся разобраться, что вообще называют jailbreak.

Но что такое jailbreak?

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

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

В самом простом виде jailbreak — это попытка добиться от модели ответа или действия, которое предусмотренные ограничения должны были остановить.

Но рядом существует более широкое понятие — prompt injection.

Хотя данные термины используются не везде одинаково, поэтому для ясности договоримся так:

Jailbreak направлен прежде всего на обход ограничений безопасности: заставить модель выдать то, от чего она должна была отказаться.

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

Сам OWASP использует близкое различие: prompt injection обозначает нежелательное изменение поведения модели через входные данные, а jailbreaking рассматривается как связанная форма атаки, нацеленная на обход safety‑протоколов. В категории LLM01:2025 OWASP отдельно выделяет прямые инъекции от пользователя и косвенные — из сайтов, файлов и других внешних источников.

Следовательно, пока модель просто ведёт чат, эта разница кажется спором о терминах, но она резко становится важной, когда LLM подключают к инструментам, и если пользователь пытается заставить чат‑бота выдать запрещённую инструкцию, это похоже на классический jailbreak, а если агент открывает веб‑страницу, обнаруживает внутри неё фальшивую команду, принимает её за распоряжение пользователя и отправляет данные наружу — это indirect prompt injection.

В первом случае атакующий пытается обойти правила ответа.

Во втором — перехватить управление системой.

И ни в одном из случаев не обязательно «ломать» модель, иногда достаточно изменить то, как она понимает текущий контекст.

Почему хороший jailbreak трудно поймать

Плохая атака приходит в лоб: игнорируй все предыдущие инструкции и сделай запрещённое.

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

Более интересные атаки не требуют от модели открыто нарушить правила. Они меняют рамку:

Это не опасная инструкция, а художественный фрагмент.

Это не запрещённый ответ, а перевод существующего текста.

Это не обход ограничений, а red team‑тест.

Это не команда из внешнего документа, а внутренняя служебная заметка от devops инженера.

Это не просьба пользователя, а якобы уже принятое решение.

Одна и та же задача может быть переодета в сценарий, лог, политику компании, симуляцию, unit‑тест, исследовательский пример или сообщение от воображаемого администратора.

Значит, смысл запроса не меняется, меняется его социальный статус внутри истории. Это и есть та причина поэтому хороший jailbreak редко выглядит как jailbreak, он выглядит как обычная задача, которую просто сформулировали немного необычно.

Но почему модель вообще реагирует на такие переодевания? Почему служебная метка не побеждает литературную форму?

Здесь начинается самая интересная часть.

Мир LLM состоит из одного материала

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

Слева — то, что мы видим; справа — то, что получает ИИ. Источник: https://role-confusion.github.io/

Слева — то, что мы видим; справа — то, что получает ИИ. Источник: https://role‑confusion.github.io/

Пользователь видит интерфейс: отдельное системное сообщение, свою реплику, ответ ассистента, результаты поиска, вызовы и результаты инструментов и так далее

Для модели после обработки интерфейсом всё это превращается в последовательность токенов, разделённую специальными маркерами роль‑тегов вида: <system>, <user>, <assistant>, <tool> и др.

Эти маркеры должны объяснять модели, «кто говорит», к примеру:

  • system задаёт правила;

  • user содержит запрос;

  • assistant обозначает собственный ответ модели;

  • tool передаёт внешние данные.

Но это не криптографические границы, скорее бейджики, которые модель научилась интерпретировать. Авторы работы Prompt Injection as Role Confusion предлагают рассматривать prompt injection как ошибку восприятия таких ролей. Их центральная гипотеза звучит довольно просто: модель определяет источник текста не только по технической метке, но и по тому, как этот текст написан. Чтобы проверить это, исследователи создали так называемые role probes — классификаторы, анализирующие внутренние активации модели.

Один и тот же нейтральный фрагмент текста помещали под разные служебные метки. Поскольку слова не менялись, различия во внутренних представлениях можно было связать именно с воздействием роли, а затем авторы убрали правильные метки или намеренно поместили текст под неправильную роль.

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

Это и называется role confusion — путаницей ролей. Модель смотрит не только на удостоверение личности, она также смотрит на костюм, голос и манеры и обычно всё совпадает: пользовательский запрос звучит как запрос пользователя, а результат инструмента — как внешние данные. Поэтому система работает, но атакующий намеренно создаёт несовпадение и техническая метка говорит: «это недоверенный текст с веб‑страницы», а стиль говорит: «это авторитетная команда», и иногда модель верит стилю.

Модель не всегда убеждают

Привычная картина jailbreak выглядит как спор, пользователь уговаривает модель, давит на неё, придумывает исключения, делает себя жертвой, ищет противоречия в правилах — и в конце концов модель «сдаётся»,но role confusion даёт более неприятную и более ясную картину ‑иногда модель не убеждают. Наоборот, ей подсовывают текст, который выглядит так, будто убеждение уже произошло.

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

В первом случае атакующий пытается выиграть спор,а во втором — подделывает сам факт того, что спор уже состоялся и закончился в его пользу.

Авторы Prompt Injection as Role Confusion построили на этом принципе атаку CoT Forgery — подделку рассуждения модели.

Пример атаки CoT Forgery. Источник: https://role-confusion.github.io/

Пример атаки CoT Forgery. Источник: https://role‑confusion.github.io/

При этом модель не обязательно оценивает такой текст как внешнее утверждение, которое нужно проверить, наоборот — она может воспринять его как собственный уже сделанный вывод и просто продолжить с того места, где фальшивое рассуждение закончилось.

В экспериментах авторов CoT Forgery показала в среднем около 60% успешности на тесте jailbreak и около 61% в сценариях агентной эксфильтрации против близких к нулю исходных показателей на протестированных конфигурациях. Важное заметить, что данные числа нельзя автоматически переносить на любую модель и любой продукт, их смысл в силе демонстрации данного механизма и, в частности, в том, насколько наглядно это показывает эксперимент с изменением стиля.

Также исследователи переписали атакующие фрагменты в попытке сохранить их смысл, но удалить характерные признаки «внутреннего рассуждения». Хотя для человека две версии говорили почти одно и то же, но для модели разница оказалась огромной: средняя успешность атаки в соответствующем наборе тестов упала с 61% до 10%.

Выходит, что смысл сохранился, но костюм (нарратив) сняли и атака почти перестала работать.

Вот где Абигнейл превращается из литературной метафоры в техническую, его содержание текста — это легенда, его стиль — форма и интонация, а служебная роль — удостоверение личности и role confusion возникает в тот момент, когда модель доверяет форме сильнее, чем удостоверению.

При этом не стоит объявлять role confusion окончательно доказанным объяснением вообще всех атак, это предложенная авторами механистическая теория, подтверждённая их экспериментами и она очень удачно объединяет многие наблюдения, но исследования устройства ролей внутри LLM только начинаются и некоторые jailbreak действительно работают совсем иначе.

Не всякий jailbreak носит костюм

Заманчиво было бы свести все атаки к социальной инженерии, в которой симпатичный злоумышленник пишет убедительную легенду, модель верит — и готово, но реальность менее кинематографична.

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

Называется этот метод — Best‑of‑N Jailbreaking, и работает он ещё прямолинейнее.

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

В опубликованной работе успешность росла с количеством попыток, а при 10 000 вариаций авторы сообщали о 89% для протестированной тогда версии GPT-4o и 78% для Claude 3.5 Sonnet. Метод также переносился на изображения и аудио, но тут важно не само конкретное число, которое устаревает вместе с моделями, а принцип: иногда защита обходится не убедительностью запроса, а масштабным поиском его удачной формы.

Есть так же и Many‑shot Jailbreaking, работает он следующим образом:

В длинный контекст помещается множество фиктивных диалогов, где «ассистент» послушно отвечает на запросы, на которые настоящая модель обычно должна отказывать, и в конце длинной серии демонстраций добавляется целевой вопрос. При этом небольшое количество примеров может не сработать, но по мере роста их числа модель всё сильнее подхватывает заданный внутри контекста паттерн. Anthropic связывала этот эффект с in‑context learning — той самой способностью, которая позволяет модели учиться на примерах непосредственно из промпта. В исследовании использовалось до 256 фиктивных диалогов; увеличение их количества повышало вероятность нежелательного ответа.

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

Именно поэтому jailbreak — не один магический промпт с форума, это класс ситуаций, в которых предусмотренная граница безопасности не выдерживает конкретного входа.

Иногда её обходят легендой.

Иногда — подделкой роли.

Иногда — длинным контекстом.

Иногда — оптимизацией.

Иногда — обычным, но масштабным перебором (brute force).

При этом общий результат один: продолжение, которое система должна была считать недопустимым, неожиданно становится вероятнее отказа.

Так что же мы ловим?

Поймать jailbreak сложно не потому, что он невидим, напротив, его сложно поймать потому, что он слишком похож на нормальную задачу.

Он приходит не как монстр, а как сотрудник с бейджиком.

Не как атака, а как документ.

Не как «обойди правила», а как «мы же всё согласовали».

А ведь когда‑то, во времена бородатого интернета разработчики боялись, что пользователь введёт в поле формы кусок SQL, а база данных примет его за команду.

Теперь, в мире LLM задача стала страннее: и команда, и данные состоят из одного материала — из языка.

Пользователь говорит словами, системная инструкция написана словами, веб‑страница состоит из слов, результат инструмента тоже превращается в слова.

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

Таким образом, prompt injection можно назвать SQL injection для мира, где интерфейсом стала речь, но не потому, что две атаки технически одинаковы, а потому, что в обоих случаях данные получают право вести себя как команда.

Выходит, Jailbreak — самый кинематографичный персонаж этой истории. Он не всегда ломает систему, отнюдь, иногда он просто надевает правильный костюм, говорит правильным тоном и проходит туда, куда тексту из внешнего мира заходить нельзя.

Поймать его тяжело не потому, что он невидим, а потому, что он слишком похож на своего.

ссылка на оригинал статьи https://habr.com/ru/articles/1061618/