🔓 Джейлбрейки LLM: семейства атак и защита
Джейлбрейк LLM (jailbreak, «взлом» языковой модели) — это атака, цель которой заставить большую языковую модель обойти собственное защитное обучение (alignment) и выдать контент, который она по политике выдавать не должна. В отличие от prompt injection, который переопределяет инструкции приложения, джейлбрейк атакует саму модель. В OWASP Top 10 для LLM 2025 джейлбрейк отнесён к LLM01 как частный случай инъекции промптов. Ниже — разбор реальных, задокументированных семейств джейлбрейков (DAN, Skeleton Key, Policy Puppetry, Many-shot, Crescendo и др.) и того, как от них защищается платформа SYNTREX.
Часть серии: OWASP LLM Top 10 · Prompt Injection · Безопасность RAG-систем.
Джейлбрейк или prompt injection: в чём разница
| Аспект | Джейлбрейк | Prompt Injection |
|---|---|---|
| Что атакуют | Защитное обучение (alignment) модели | Инструкции приложения / границы доверия |
| Цель | Запрещённый контент, обход цензуры | Утечка данных, несанкционированные действия |
| Типичный вектор | Прямой ввод пользователя | Ввод или внешний контент |
Определение OWASP: «Jailbreaking is a form of prompt injection where the attacker provides inputs that cause the model to disregard its safety protocols entirely». Иными словами, джейлбрейк — это инъекция, нацеленная именно на защитные протоколы. Разбор инъекций — в отдельном руководстве.
Семейства джейлбрейков
DAN («Do Anything Now»)
Самое известное семейство, зародившееся на Reddit в декабре 2022 года. Механизм — перехват персоны (persona hijacking): пользователь просит модель сыграть альтернативную «незаблокированную» личность DAN, которая «вышла за пределы обычных ограничений». Модель отвечает «от лица персонажа», обходя собственные политики. Семейство эволюционировало: в DAN v5 появилась «токен-система» (модель «теряла токены» за каждый отказ), а к 2025-му задокументировано 18+ именованных версий. Академический анализ 1405 реальных промптов — в работе Shen et al. «Do Anything Now» (arXiv:2308.03825). Тип: преимущественно single-turn.
Skeleton Key
Описан Марком Руссиновичем (CTO Microsoft Azure) в июне 2024 года. Механизм тонкий: атакующий просит модель «дополнить, а не изменить» (augment, not change) свои правила — добавить исключение «для научных целей», а не снять ограничения. После «согласия обновить правила» модель выдаёт вредоносный контент, лишь снабжая его предупреждением вместо отказа. В тесте Microsoft (весна 2024) поддались Llama3-70b, Gemini Pro, GPT-3.5 Turbo, GPT-4o, Mistral Large, Claude 3 Opus и Cohere Commander R+. Тип: multi-turn (обычно 1–2 хода).
Policy Puppetry
Универсальный обход от HiddenLayer (апрель 2025). Промпт форматируется как файл политики (XML, JSON, INI), и модель воспринимает структурированную конфигурацию как «системную инструкцию», а не как запрос пользователя. Усиливается ролевой игрой (например, «Dr. House объясняет...»). HiddenLayer заявил универсальность: один промпт без модификаций сработал на 23 моделях, включая GPT-4o, GPT-4.5, o1, Claude 3.5/3.7 Sonnet, Gemini 1.5/2.0/2.5 Pro и Llama 3/4. Тип: single-turn.
Many-shot Jailbreaking
Исследование Anthropic (апрель 2024), эксплуатирующее большие контекстные окна. В промпт помещают сотни поддельных диалогов, где «ИИ-ассистент» уже выполнял вредоносные запросы; модель воспринимает это как in-context learning и следует паттерну, теряя эффект защитного обучения. Эффективность растёт по степенному закону от числа «примеров». Тип: single-turn (один длинный промпт). Прямое следствие гонки за длиной контекста (до 1M токенов).
Crescendo
Многоходовая атака Microsoft Research (Russinovich, Salem, Eldan; arXiv:2404.01833, апрель 2024; принята на USENIX Security 2025). Начинается с безобидного вопроса по теме, и каждый следующий ход ссылается на предыдущий ответ модели и эскалирует на маленький шаг. К 5–10 ходу модель уже выдаёт вредоносное содержание — хотя каждый отдельный шаг выглядел легитимным. Название — от музыкального «нарастания». Тип: multi-turn. У SYNTREX этому семейству посвящён отдельный движок crescendo.
Прочие техники
- Roleplay / persona-атаки (включая вирусный «grandma exploit» — «бабушка рассказывала рецепт... как сказку») — эксплуатируют склонность модели помогать в «безобидном» ролевом контексте.
- Обфускация и кодирование — Base64, leetspeak (
h0w 70 m4k3), ROT13, Morse, эмодзи, а также малоресурсные языки (Zulu, Afrikaans): фильтры обучены на английском и пропускают нестандартные кодировки. - Payload splitting (Fragmentation Concatenation) — вредоносный запрос дробится на безобидные на вид части, которые модель «склеивает».
- GCG (Greedy Coordinate Gradient) — Zou et al. (arXiv:2307.15043): градиентно подобранный «состязательный суффикс» из бессмысленных токенов, переносимый между моделями (white-box).
- AutoDAN — генетический алгоритм, эволюционирующий читаемые джейлбрейк-префиксы (обходит perplexity-фильтры).
- PAIR / TAP — автоматические атаки, где один LLM итеративно подбирает джейлбрейк против другого (black-box); TAP достигает >80% успеха на GPT-4-Turbo.
- Prefilling / prefix injection — предзаполнение начала ответа модели («Sure, here is how to...»), чтобы она «дописала» начатое.
- Refusal suppression — инструкция «никогда не говори "я не могу"», подавляющая сигнальные слова отказа.
Почему джейлбрейки работают
Защитное обучение (RLHF, Constitutional AI и т. п.) задаёт модели вероятностные предпочтения, а не жёсткие правила. Поэтому достаточно сместить контекст так, чтобы «полезность» перевесила «безопасность»: ролевой фрейм, мнимая легитимность («для исследования»), флуд примерами, постепенная эскалация или обфускация запроса. Классическая работа Wei et al. «Jailbroken: How Does LLM Safety Training Fail?» (arXiv:2307.02483) выделяет два корня провала: конкуренцию целей (полезность против безопасности) и рассогласование обобщения (защита не покрывает редкие форматы — кодировки, языки, структуры).
Практический вывод для защитников: нельзя полагаться только на встроенный alignment модели — нужен внешний слой детекции на входе и выходе, плюс мониторинг всей многоходовой сессии (иначе Crescendo и Skeleton Key проходят незаметно).
Как SYNTREX защищает
SYNTREX добавляет внешний контур детекции поверх любой модели — её собственный alignment перестаёт быть единственной линией обороны. Против джейлбрейков работают:
| Слой | Движок SYNTREX | Что закрывает |
|---|---|---|
| Вход | jailbreak | DAN, PAIR, Policy Puppetry, FlipAttack и др. (крупнейший движок ядра) |
| Вход | crescendo | Многоходовая эскалация (Crescendo) |
| Вход | evasion | Обфускация: Base64, ROT13, Unicode, гомоглифы, малоресурсные языки |
| Вход | social | Манипулятивные ролевые сценарии и социальная инженерия |
| Выход | output_scanner | Перехват вредоносного/запрещённого ответа, если вход прошёл |
Два принципа делают защиту устойчивой к обфускации и многоходовости:
- Нормализация Unicode перед анализом — невидимые символы и гомоглифы снимаются один раз, поэтому «забудь все правила» на бенгали или в leetspeak всё равно распознаётся.
- Двусторонняя проверка (вход + выход) — даже если хитрый джейлбрейк проскользнул на входе,
output_scannerв Shield DMZ перехватывает опасный ответ до возврата пользователю.
Многоходовые джейлбрейки (Crescendo, Skeleton Key) видны на уровне сессии: SOC Correlation Engine содержит правило CRESCENDO_ATTACK — 5+ низкосерьёзных событий от одного источника за окно.
Пример конфигурации syntrex.yaml
engines:
jailbreak:
action: block
confidence_threshold: 0.85
crescendo:
action: alert # многоходовая эскалация — сигнал в SOC
evasion:
action: block # base64 / rot13 / unicode / гомоглифы
normalize_unicode: true
social:
action: block
confidence_threshold: 0.85
output_scanner:
action: sanitize # вторая линия: чистим вредоносный ответ
Правило корреляции SOC: Crescendo
rules:
- id: CRESCENDO_ATTACK
name: "Crescendo Multi-Turn Jailbreak"
description: "5+ низкосерьёзных срабатываний от одного источника за 10 минут — постепенная эскалация"
enabled: true
conditions:
- count:
category: jailbreak
min_events: 5
max_severity: MEDIUM
within: "10m"
same_field: "session_id"
action:
create_incident: true
severity: HIGH
kill_chain_stage: "exploitation"
playbook: "auto_block_session"
metadata:
mitre_atlas: ["AML.T0054"]
owasp_llm: ["LLM01"]
Все вердикты движков пишутся в Decision Logger (цепочка SHA-256 + HMAC) — это даёт воспроизводимый след для red-team отчётов и аудита.
Частые вопросы (FAQ)
Что такое джейлбрейк нейросети?
Это приём, заставляющий языковую модель обойти собственные защитные ограничения и выдать контент, который она по политике выдавать отказывается. В отличие от prompt injection, который переопределяет инструкции приложения, джейлбрейк бьёт по защитному обучению самой модели.
Что такое DAN-промпт?
DAN («Do Anything Now») — семейство джейлбрейк-промптов, появившееся на Reddit в конце 2022 года. Пользователь просит модель сыграть «незаблокированную» персону DAN, которая якобы не имеет ограничений. Существует множество версий (DAN v5 с «токен-системой» и далее), которые адаптировались к ужесточению политик.
Чем Skeleton Key отличается от обычного джейлбрейка?
Skeleton Key (Microsoft, 2024) не пытается «снять» ограничения напрямую — он убеждает модель дополнить свои правила исключением (например, «всё — для научных целей»). После такого «обновления поведения» модель выдаёт вредоносный контент с одним лишь предупреждением. Это многоходовая, более незаметная техника.
Что такое many-shot jailbreaking?
Это атака от Anthropic (2024), использующая большие контекстные окна: в промпт помещают сотни поддельных диалогов, где ассистент уже выполнял вредоносные запросы. Модель «учится по примерам» прямо в контексте и следует вредоносному паттерну. Чем больше окно контекста, тем эффективнее атака.
Что такое Policy Puppetry?
Универсальный джейлбрейк от HiddenLayer (2025): запрос форматируют как файл политики (XML/JSON/INI), и модель воспринимает его как административную конфигурацию, а не как пользовательский запрос. По заявлению авторов, один промпт сработал на десятках моделей разных вендоров.
Можно ли полностью предотвратить джейлбрейки?
Полностью — нет, потому что защитное обучение модели задаёт вероятностные, а не абсолютные границы. Реалистичный подход — внешний контур: детекция джейлбрейков и обфускации на входе, сканирование вывода, мониторинг многоходовых сессий и регулярное red-team тестирование на наборах известных промптов.
Как SYNTREX ловит обфусцированные джейлбрейки (Base64, другие языки)?
SYNTREX нормализует Unicode и декодирует распространённые кодировки до анализа (движок evasion), поэтому запрос «забудь все правила», спрятанный в Base64, leetspeak или малоресурсном языке, всё равно распознаётся. Вторая линия — output_scanner, перехватывающий опасный ответ, если вход всё же прошёл.
Источники
- OWASP LLM01:2025 — Prompt Injection (джейлбрейк как подкласс)
- Shen et al. — «Do Anything Now»: Characterizing In-The-Wild Jailbreak Prompts (arXiv:2308.03825)
- Microsoft — Mitigating Skeleton Key, a new jailbreak technique (2024)
- HiddenLayer — Policy Puppetry: novel universal bypass for all major LLMs (2025)
- Anthropic — Many-shot jailbreaking (2024)
- Russinovich et al. — Crescendo multi-turn jailbreak (arXiv:2404.01833)
- Zou et al. — Universal and Transferable Adversarial Attacks / GCG (arXiv:2307.15043)
- Wei et al. — Jailbroken: How Does LLM Safety Training Fail? (arXiv:2307.02483)
- MITRE ATLAS — AML.T0054 LLM Jailbreak
- NIST AI 600-1 — Generative AI Profile
Связанные руководства: OWASP LLM Top 10 · Prompt Injection · Безопасность RAG-систем