Запись архива

Many-shot jailbreak: взлом через длинный контекст

Разбор работы Anthropic от 2 апреля 2024 о many-shot jailbreak: почему длинный контекст стал новым вектором обхода защит LLM, что именно измеряли авторы и какие ограничения есть у их выводов.

Схема many-shot jailbreak: длинный префикс из множества вредных демонстраций смещает ответ LLM на финальный запрос

2 апреля 2024 Anthropic опубликовала исследовательский пост и полный PDF о Many-shot Jailbreaking; позднее работа вышла в материалах NeurIPS 2024. Авторы показали, что длинный контекст можно использовать не только для полезного внутриконтекстного обучения (in-context learning, ICL), но и для систематического обхода отказов модели.

Это важно не как очередной удачный jailbreak-промпт, а как сигнал о новой площади атаки: расширение окна контекста повышает полезность LLM, но одновременно даёт модели больше шансов «выучить» вредный шаблон прямо из входа. Ниже — разбор того, что именно проверяла Anthropic, какие результаты выглядят убедительно и где выводы надо ограничивать историческим контекстом работы.

Коротко

  • Anthropic описывает many-shot jailbreak как длинный префикс из множества вредных демонстраций, который смещает ответ модели на финальный запрос.
  • Ключевая идея статьи: длинный контекст усиливает не только полезное ICL, но и нежелательное ICL; авторы прямо связывают атаку с наблюдаемыми степенными законами.
  • В основной серии экспериментов авторы не увидели плато вредных ответов даже при префиксах почти в 70 000 токенов, а на части тестов около 128 демонстраций уже хватало для устойчивого вредного поведения.
  • Простая prompt-защита ICD помогала слабо, а более жёсткая CWD в конкретной постановке снижала ASR с 61% до 2%, но это не доказательство универсальной защиты.
  • Для практиков главный вывод простой: длинный контекст нужно тестировать как отдельный класс угроз, а не считать, что однократные jailbreak-тесты покрывают всю поверхность риска.

Контекст: почему many-shot jailbreak вообще появился

Исторический контекст здесь критичен. По посту Anthropic от 2 апреля 2024 года и полной версии статьи, окно контекста у публичных LLM выросло от примерно 4 000 токенов в начале 2023 года до систем с окнами в диапазоне миллионов токенов (Anthropic, 2024); (Many-shot Jailbreaking, PDF). Авторы статьи рассматривают этот сдвиг как новую поверхность атаки, а не как нейтральное улучшение UX.

Важно и то, что сама идея «сломать» отказ модели через демонстрации в контексте не появилась из ниоткуда. Ещё 10 октября 2023 года работа Jailbreak and Guard Aligned Language Models with Only Few In-Context Demonstrations описывала короткоконтекстные атаки через несколько harmful-примеров и соответствующую защиту ICD. В терминологии Anthropic, many-shot jailbreak — это не новый принцип, а масштабирование few-shot/ICA-подхода в длинный контекст.

Почти одновременно с этим направлением появилась и более общая литература по many-shot ICL. Работа Google DeepMind Many-Shot In-Context Learning, поданная 17 апреля 2024 года, показывала, что сотни и тысячи примеров в контексте дают существенный прирост на задачах и позволяют переопределять предобученные смещения модели. Для статьи Anthropic это важный фон: если длинный контекст помогает модели лучше учиться на полезных примерах, он же может помогать ей учиться и на вредных.

Метод: как работает many-shot jailbreak

Суть атаки у Anthropic предельно проста в формулировке и неприятна по последствиям. Исследователи собирают длинный префикс из множества пар вида «вредный запрос — уступчивый ответ», перемешивают их, оформляют как фиктивный диалог и в конец добавляют целевой запрос, на который модель в норме должна была бы отказать. Веса модели не меняются: всё происходит на уровне входного контекста (PDF); (NeurIPS 2024 version).

Большинство экспериментов в основной части статьи выполнялись на Claude 2.0; отдельно авторы сравнивали перенос на GPT-3.5-turbo-16k-0613, GPT-4-1106-preview, Llama 2 (70B) и Mistral 7B (PDF); (NeurIPS 2024 version). Это важно помнить: статья фиксирует состояние моделей именно на версиях 2024 года, а не описывает «LLM вообще».

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

Есть и практическая оговорка. В статье прямо сказано, что vanilla MSJ требует API-доступа и возможности передать фиктивную историю диалога; обычные интерфейсы вроде ChatGPT или Claude.ai для этой базовой версии атаки этого не дают (PDF); (NeurIPS 2024 version). Для продакшн-систем это важное сужение области применимости.

Результаты

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

Что измеряли Что показали авторы Где именно Подтверждение
Рост атаки с длиной префикса На наборе malicious use-cases префикс масштабировали почти до 70 000 токенов и не наблюдали плато вредных ответов. Основные эксперименты на Claude 2.0 PDF Anthropic; NeurIPS 2024
Перенос на разные модели Около 128 демонстраций хватало, чтобы пять протестированных моделей приняли вредный паттерн на malevolent personality evals. Claude 2.0, GPT-3.5-turbo-16k-0613, GPT-4-1106-preview, Llama 2 70B, Mistral 7B PDF Anthropic; NeurIPS 2024
Prompt-based mitigation В одной конкретной постановке ICD снизила ASR с 61% до 54%, тогда как CWD снизила его до 2%. Deception category, 205-shot MSJ prompt Anthropic post; NeurIPS 2024
Проверка на HarmBench Во внутренней репликации авторов vanilla MSJ-128 показал 31% ASR на Claude 2.0; для PAIR в тех же материалах указан 2%, а составные варианты MSJ доходили примерно до 40%. Appendix K/M, standard behaviors HarmBench PDF Anthropic; NeurIPS 2024

Кроме «лобовой» атаки, статья показывает ещё две неприятные вещи. Во-первых, форматирование важно меньше, чем можно было бы ожидать: смена user/assistant-тегов, перевод тегов или переход к формату Q&A меняют сдвиг кривой, но не убирают сам механизм. Во-вторых, разнообразие демонстраций важнее их буквального совпадения с целевым запросом: слишком узкие, однотипные префиксы работают хуже, а более разнообразные — лучше (PDF); (NeurIPS 2024 version).

Отдельно стоит отметить раздел про HarmBench. С одной стороны, наличие стандартизованного бенчмарка HarmBench делает результаты сопоставимее. С другой — сама «репликация» у Anthropic не была внешней независимой проверкой: в версии NeurIPS авторы честно пишут, что это была попытка репликации независимой частью их команды на отдельной кодовой базе, а не внешнее воспроизведение сторонней группой.

Интерпретация

Наш комментарий

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

Для инженерной практики это означает сдвиг в модели угроз. Нужно тестировать не только одиночные «вредные промпты», но и длинные не доверенные префиксы: большие переписки, цепочки tool-output, длинные retrieved-документы, объединённые системные логи и всё, что попадает в окно контекста как якобы «данные». MSJ — это не буквально prompt injection в RAG-системе, но интуиция очень близкая: модель получает слишком много примеров поведения, которое ей не следовало бы перенимать.

Второй важный вывод — защита должна оцениваться по форме кривой, а не только по одному числу ASR. Если мера просто сдвигает атаку вправо, но не уменьшает её «скорость обучения» с ростом контекста, то при ещё более длинных окнах проблема может вернуться. В этом смысле статья Anthropic хорошо объясняет, почему later-stage патчи к отдельным prompt-паттернам часто дают краткосрочный эффект.

Ограничения и критика

  • Историческая область действия. Работа описывает конкретные версии моделей 2024 года: Claude 2.0, GPT-3.5-turbo-16k-0613, GPT-4-1106-preview, Llama 2 70B и Mistral 7B. Нельзя механически переносить проценты ASR из статьи на модели и guardrails 2025–2026 годов.
  • Не всякая продуктовая поверхность уязвима одинаково. Авторы прямо оговаривают, что базовая версия MSJ требует API-доступа и вставки фиктивной истории диалога; это ограничивает прямую применимость к обычным consumer-чатам (PDF); (NeurIPS 2024 version).
  • HarmBench-раздел полезен, но это не внешняя независимая репликация. В версии NeurIPS авторы пишут, что прогон делала независимая часть их команды на отдельной кодовой базе. Это повышает доверие к воспроизводимости внутри организации, но не заменяет сторонней валидации.
  • Сильный результат по CWD узок по постановке. Падение ASR с 61% до 2% выглядит значимым (Anthropic post); (NeurIPS 2024 version), но речь идёт о конкретной категории deception и 205-shot prompt. Сама статья не утверждает, что это универсальный фикс.
  • «Не увидели плато до ~70k токенов» не означает математическую неограниченность атаки. Это эмпирический результат на выбранных наборах задач и текстовой модальности, а не доказательство для любых длин контекста и любых агентных конфигураций.
  • Метрика успеха опирается на классификаторы и прокси. Это нормальный исследовательский компромисс, но он не равен полной оценке реального вреда в end-to-end сценариях. В частности, в HarmBench-репликации авторы использовали GPT-4 как judge вместо исходного distilled-классификатора HarmBench.

Вывод

Many-shot jailbreak — одна из тех работ 2024 года, которые меняют не столько список известных атак, сколько саму рамку обсуждения безопасности длинного контекста. Она показывает, что расширение окна контекста может ослаблять alignment не через «магический баг», а через обычное внутриконтекстное обучение на вредных примерах.

Для практиков отсюда следует приземлённый вывод: long-context safety надо мерить отдельно. Если ваша система принимает большие объёмы внешнего текста, одной проверки на коротких jailbreak-промптах недостаточно; нужно смотреть, как риск растёт с длиной контекста, разнообразием префикса и составными атаками.

Источники

FAQ

Это то же самое, что prompt injection?

Не совсем. Prompt injection — более широкий класс атак, где недоверенные инструкции смешиваются с данными. Many-shot jailbreak — конкретная jailbreak-техника, использующая длинный префикс с множеством вредных демонстраций и опирающаяся на in-context learning.

Работает ли атака в обычном интерфейсе ChatGPT или Claude?

Базовая версия из статьи — не напрямую. Авторы прямо пишут, что vanilla MSJ требует API-доступа и возможности передать фиктивную историю диалога; обычные chat UI этого не позволяют без дополнительных приёмов.

Почему длинный контекст делает атаку сильнее?

Потому что модель получает больше демонстраций поведения и начинает учиться на них прямо во входе. Anthropic интерпретирует это как частный случай many-shot in-context learning, а не как отдельную «дыру» в одном конкретном guardrail.

Решена ли проблема после публикации статьи?

Нет оснований говорить, что она решена окончательно. В самой работе finetuning-подходы не дали устойчивого облегчения при длинных префиксах, а позже Anthropic по собственным публикациям исследовала более сильные classifier-based safeguards. Но это уже следующая стадия исследований, а не автоматическое опровержение результатов статьи 2024 года.

Читайте также