CoT Hijacking - атака из препринта 2025 года на arXiv - выдаёт 99% attack success rate на Gemini 2.5 Pro, 100% на Grok 3 mini и 94% на Claude 4 Sonnet (цифры из препринта, независимая верификация пока не проведена). Вектор один: длинные последовательности безобидных рассуждений перед вредоносным запросом. Но jailbreak - верхушка. За ним прячется класс атак тоньше: не обход safety через chain-of-thought, а извлечение самого скрытого CoT - тех внутренних рассуждений, которые провайдеры reasoning-моделей намеренно прячут за API-стеной. Ниже - таксономия таких атак, механика их работы и практическая методология воспроизведения на уровне API.
Зачем красть скрытые рассуждения ИИ: бизнес-логика атаки
OpenAI, Google, Anthropic тратят месяцы compute на RLHF-обучение reasoning-моделей. Скрытый chain-of-thought - прямой продукт этих вложений: стратегии декомпозиции задач, паттерны самопроверки, внутренние heuristics - всё, что отличает o3 от GPT-4. Извлечение цепочек рассуждений LLM - не абстрактная проблема. Три конкретных вектора ущерба.Model distillation и кража интеллектуальной собственности ИИ моделей. Восстановленные reasoning-траектории - готовые training data для дистилляции: берёшь менее мощную модель, скармливаешь ей чужие reasoning-паттерны, получаешь клон за копейки. В препринте о black-box skill stealing для коммерческих LLM-агентов (arXiv, 2025; результаты требуют верификации) утверждается, что для экстракции проприетарного поведения агента хватает нескольких взаимодействий через API. Одна успешная экстракция - и проприетарный навык можно скопировать, перепродать или встроить в конкурирующий продукт почти бесплатно.
Jailbreak amplification. Понимание того, как модель рассуждает о safety - какие шаги проходит перед отказом, какие триггеры вызывают refusal - позволяет конструировать точечные обходы. В работе CoT Hijacking показан механизм: средние слои трансформера кодируют силу проверки безопасности, поздние - результат верификации. Зная эту структуру, атакующий целенаправленно «разбавляет» safety-сигнал. Знание о внутреннем reasoning превращается в оружие.
Утечка системной логики. OWASP классифицирует это как LLM07:2025 - System Prompt Leakage. Скрытый CoT - по сути расширенный системный промпт: бизнес-логика обработки запроса, правила отказа, стратегии решения. Его утечка раскрывает не только конкретную модель, но и методологию обучения - какие задачи использовались для RL, какие reward signals формировали reasoning-поведение.
Поверхность атаки API LLM: что раскрывают reasoning-модели
Скрытый chain-of-thought как объект извлечения
Reasoning-модели различаются по степени прозрачности скрытых токенов. Эта разница определяет threat model:| Модель / семейство | Видимость CoT | Что раскрывает API |
|---|---|---|
| OpenAI o-серия (o1, o3) | Полностью скрыт | reasoning_tokens (число), TTFT |
| DeepSeek R1 | Полностью открыт | Текст CoT в тегах <think>...</think> |
| Claude (extended thinking) | Частично видим | Суммаризация reasoning |
| Gemini 2.5 Pro | Скрыт (частично наблюдаем через механистический анализ) | Метаданные использования токенов |
[Применимо: исследовательский контекст, API-уровень доступа]
DeepSeek R1 наименее интересен как цель extraction-атаки - зачем красть то, что и так лежит в открытом виде? Зато полезен как эталон: для тех же задач полный текст CoT виден в
<think>, и гипотезы об извлечении CoT у закрытых моделей можно верифицировать по нему. Модели OpenAI o-серии - противоположность: текст рассуждений скрыт, но API возвращает количественные метаданные. Claude с extended thinking - между ними: суммаризация reasoning выдаёт стилистические маркеры, по которым можно реконструировать полную цепочку.Работает если: у атакующего есть легитимный API-ключ и модель возвращает usage-метаданные. Не работает если: провайдер полностью отключает reasoning-метаданные в ответе - на момент написания ни один крупный провайдер этого не делает, потому что usage-данные нужны клиентам для бюджетирования.
Наблюдаемые сигналы при black-box атаках на языковые модели
При стандартном black-box доступе через API атакующий наблюдает четыре класса сигналов. Каждый - side-channel.Количество reasoning-токенов. API o-серии возвращает поле
completion_tokens_details.reasoning_tokens - точное число токенов скрытых рассуждений. Текст не виден, но видно, сколько модель «думала». Для серии задач разной сложности этот сигнал позволяет реконструировать reasoning-профиль: на каких задачах срабатывает self-correction (скачок reasoning_tokens), где модель идёт shortcut'ом (минимальный reasoning).Time-to-first-token (TTFT). Задержка до первого видимого токена коррелирует с длиной скрытого CoT. Reasoning-модели «думают» перед ответом - это характерно для большинства современных reasoning-архитектур. Замер TTFT через
time.monotonic() в streaming-режиме даёт дополнительный канал inference для side-channel атак на LRM.Streaming-паттерны. Частота и размер chunk'ов при
stream=True различаются для задач с разной reasoning-нагрузкой. Модель, завершившая длинную скрытую цепочку рассуждений, часто выдаёт видимый ответ «рывками» - паттерн, отличимый от плавной генерации обычных LLM.Total vs visible tokens. Разница между
total_tokens и суммой prompt_tokens + completion_tokens косвенно указывает на объём скрытого reasoning - ещё один observable channel для атакующего с API-доступом.Таксономия атак на reasoning-модели: от prompt extraction до side-channel inference
Prompt-based extraction и EchoCoT-атака
Самый прямолинейный вектор - заставить модель «эхом» отразить свой скрытый reasoning в видимом ответе. Методология EchoCoT строится на принципе reasoning echo из таксономии criteria attacks: атакующий наблюдает стиль рассуждений модели через частично видимые фрагменты или стилистические маркеры финальных ответов, затем реинъецирует matching-фрагменты, побуждая модель раскрыть больше.Работает если: модель частично раскрывает CoT (Claude extended thinking, DeepSeek R1 как reference) или формат reasoning выводится из стиля финальных ответов. Не работает если: CoT полностью инкапсулирован и ответы стилистически стерильны. На практике маловероятно - reasoning-модели сохраняют характерные маркеры: формулировки самопроверки, декомпозиции, пересмотра подхода.
Extraction-pipeline в три этапа:
Зондирование стиля. Серия типовых задач (математика, логические головоломки, coding), где модель демонстрирует reasoning-паттерн в видимых ответах. Цель - собрать корпус стилистических маркеров: какие фразы модель использует для самопроверки, как формулирует альтернативы, какой структуры придерживается при декомпозиции.
Реконструкция формата. Анализ собранных маркеров. В работе по criteria attacks выделены характерные элементы: analysis → decomposition → systematic solution → alternative approaches → self-verification → self-correction. У каждого элемента - стилистические fingerprints, специфичные для конкретной модели.
Инъекция echo-запроса. Промпт с «отражённым» стилем и просьбой продолжить рассуждения развёрнуто. Ключевой момент: промпт должен стилистически мимикрировать под наблюдённый формат reasoning. В исследовании black-box skill stealing (arXiv, 2025) показано, что автоматизированный pipeline из model-generated seed-промптов с scenario rationalization и structure injection извлекает проприетарный контент LLM-агентов с высокой полнотой за три итерации. Та же методология применима к извлечению chain-of-thought через API.
Side-channel атаки на LRM через API
Когда прямое prompt-based выманивание не даёт полного текста CoT, side-channel analysis позволяет восстановить структуру рассуждений статистически.Работает если: API возвращает timing-данные и token usage, атакующий может отправить серию запросов (>100) для статистического анализа. Не работает если: провайдер добавляет искусственный jitter к TTFT и округляет token counts до порядков.
Timing analysis. Для одного класса задач (скажем, арифметика разной сложности) измеряем TTFT. Корреляция TTFT с количеством reasoning_tokens позволяет оценить, сколько шагов модель выполняет скрыто. Статистически значимое различие в TTFT между тривиальным и сложным вариантом одной задачи подтверждает наличие активного скрытого reasoning и даёт нижнюю границу его сложности.
Token-count profiling. Если API раскрывает
reasoning_tokens, анализ распределения по типам задач строит карту reasoning-поведения модели. Резкие скачки reasoning_tokens на определённых задачах - сигнал активации self-correction, наиболее ценной для extraction части CoT.
Python:
# Профилирование reasoning через token metadata
import openai, time
client = openai.OpenAI()
prompts = [("trivial", "2+2=?"), ("complex", "Solve x^3-6x^2+11x-6=0")]
for label, p in prompts:
t0 = time.monotonic()
resp = client.chat.completions.create(
model="o3-mini",
messages=[{"role": "user", "content": p}]
)
ttft = time.monotonic() - t0
r_tok = resp.usage.completion_tokens_details.reasoning_tokens # требует проверки в docs
print(f"{label}: reasoning_tokens={r_tok}, TTFT={ttft:.2f}s")
reasoning_tokens между простой и сложной задачей - прямое свидетельство скрытого CoT. Повторяем замеры для сотен промптов, строим профиль reasoning-поведения, затем используем его для таргетированного extraction.Безопасность LLM API под угрозой: от извлечения к эксплуатации
CoT Hijacking: weaponized reasoning dilution
Извлечённое знание о структуре CoT напрямую усиливает jailbreak-атаки. Работа Chain-of-Thought Hijacking (arXiv, 2025) демонстрирует механизм: вставка длинных последовательностей безобидных рассуждений (puzzle-solving, математические выкладки) перед вредоносным запросом систематически ослабляет refusal.Механизм на уровне representations (установлен через probing и causal interventions):
- Средние слои трансформера кодируют силу safety-проверки
- Поздние слои кодируют результат верификации (refusal/comply)
- Длинный benign CoT сдвигает attention от harmful-токенов, разбавляя оба сигнала - refusal dilution
| Модель | ASR CoT Hijacking | ASR лучшей предыдущей атаки |
|---|---|---|
| Gemini 2.5 Pro | 99%* | 44% (Mousetrap) |
| GPT o4 mini | 94%* | 60% (H-CoT) |
| Grok 3 mini | 100%* | 69% (AutoRAN) |
| Claude 4 Sonnet | 94%* | - |
\* Данные из препринта CoT Hijacking (arXiv, 2025), требуют независимой верификации.
H-CoT - другая атака на reasoning-модели из таксономии criteria attacks - тоже показывает впечатляющие результаты: по данным препринта, refusal rates падают с 98% до менее 2% на OpenAI o1, DeepSeek-R1 и Gemini 2.0 (цифры требуют верификации). Process-level style transfer, по заявлениям авторов, вызывает до 4.4x инфляцию reasoning-токенов или 22% drop accuracy в агентных сценариях.
Ограничение: атаки протестированы на конкретных моделях и бенчмарках. Для моделей с усиленным instruction hierarchy эффективность может быть ниже. Но все крупные reasoning-модели показали схожую уязвимость - это указывает на архитектурный, а не конфигурационный характер проблемы.
CoT Forgery: подделка внутреннего монолога модели
Второй вектор - CoT Forgery, основанный на феномене «Policy over Values». Модели, обученные через Deliberative Alignment, приучены проверять запросы по текстовым safety-политикам перед ответом. Уязвимость reasoning моделей тут в следующем: модель учится приоритизировать текстовую политику из контекста над глубинным этическим обучением.Атакующий инъецирует в промпт фальшивый reasoning-блок, стилистически мимикрирующий под внутренний монолог модели. Модель принимает инъецированный текст за собственную safety-проверку и считает запрос одобренным. В терминах OWASP LLM Top 10 - пересечение LLM01:2025 (Prompt Injection) и LLM07:2025 (System Prompt Leakage).
Критический фактор - качество стилистической мимикрии, которое напрямую зависит от предшествующей extraction-фазы:
- С мимикрией под стиль внутренних рассуждений: ASR, по оценкам исследователей, значительно выше
- Без мимикрии: ASR существенно падает
Работает если: модель обучена через Deliberative Alignment и различает «свои» рассуждения по формату (стиль текста, характерные маркеры), а не по криптографическим токенам. Не работает если: провайдер использует strict role separation с невоспроизводимыми токенами для разграничения system/user/assistant. На практике широко распространённые коммерческие модели этого пока не делают.
Практическая методология: извлечение chain-of-thought через API
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Фаза 2: Echo probing. Для каждого класса задач конструируем extraction-промпты трёх типов: (a) прямой - «покажи все промежуточные шаги», (b) стилистический echo - промпт с реконструированными маркерами reasoning из Фазы 1, (c) контрольный - нейтральный промпт без extraction-элементов. Сравниваем длину и детальность ответов с baseline.
Фаза 3: Statistical inference. Анализируем корреляцию: растёт ли детальность видимого ответа при снижении
reasoning_tokens для echo-промптов. Высокая обратная корреляция означает: extraction-промпт «вытаскивает» контент скрытого CoT в видимую часть.
Python:
# Сравнение baseline vs echo extraction
baseline = {"reasoning_tokens": 847, "visible_steps": 2} # обычный промпт
echo = {"reasoning_tokens": 312, "visible_steps": 7} # echo-промпт
delta_hidden = baseline["reasoning_tokens"] - echo["reasoning_tokens"]
delta_visible = echo["visible_steps"] - baseline["visible_steps"]
# hidden снизился И visible вырос - extraction работает
extraction_rate = delta_hidden / baseline["reasoning_tokens"] * 100
print(f"Estimated extraction: {extraction_rate:.0f}% reasoning перенесено в видимый ответ")
extraction_rate выше 30% для серии задач - свидетельство работающего extraction-вектора.Уязвимости reasoning-моделей: защитные меры и их границы
Провайдеры применяют несколько категорий защит от атак на поверхность API LLM. У каждой - конкретные ограничения.Context sanitization. Очистка пользовательского ввода от блоков, имитирующих внутренний reasoning. Ограничение: определить «что похоже на reasoning» без false positives - задача нетривиальная. Легитимные chain-of-thought промпты стилистически неотличимы от malicious echo-промптов. Любой фильтр на pattern matching обходится парафразированием.
Instruction hierarchy. Строгое разделение system/user контента, где модель обучена игнорировать попытки пользователя переопределить системные инструкции. Прямое противоядие от CoT Forgery - если модель не доверяет user-generated reasoning-блокам, подделка не работает. Ограничение: в исследовании black-box skill stealing показано, что даже с inference-phase context hardening атакующий запускает множество автоматизированных попыток, а стоимость атаки остаётся низкой. Для компрометации достаточно одного успешного извлечения из сотен попыток.
Output filtering. Постпроцессинг ответов для удаления фрагментов, похожих на внутренние рассуждения. Ограничение: не защищает от side-channel inference через метаданные.
reasoning_tokens, TTFT - всё это доступно атакующему независимо от содержания видимого ответа.Рандомизация метаданных. Добавление шума к
reasoning_tokens и TTFT - теоретически наиболее эффективная мера против side-channel атак на LRM. На практике провайдеры не делают этого: jitter ухудшает UX для легитимных пользователей, которые полагаются на usage-данные для бюджетирования API-расходов и мониторинга.Фундаментальная проблема: reasoning-модели архитектурно уязвимы к extraction, потому что сам механизм reasoning - генерация промежуточных токенов - неизбежно оставляет observable traces. Полностью скрыть факт и объём reasoning при сохранении функциональности - нерешённая задача. На уровне абстракции она сводится к проблеме неразличимости: как сделать так, чтобы ответ на сложный вопрос (800 reasoning-токенов) был неотличим по метаданным от ответа на тривиальный (50 reasoning-токенов)?
Последние полтора года я строю pipeline'ы для анализа reasoning-поведения через API: от token-level profiling до statistical reconstruction скрытых CoT-фрагментов. Вывод неутешительный для провайдеров и неочевидный для большинства исследователей безопасности: reasoning-модели создали новый класс уязвимостей, которого не было в «обычных» LLM. Когда модель не рассуждала скрыто - красть было нечего. Теперь скрытый CoT - одновременно ценнейший актив провайдера и его самое уязвимое место. Индустрия движется к всё более длинным цепочкам рассуждений - o3 генерирует тысячи reasoning-токенов, каждый из которых потенциальная утечка. Защиты на уровне prompt filtering и output sanitization устраняют симптомы, не причину. Единственный подход, который может закрыть проблему в горизонте 1-2 лет, - криптографическая верификация origin'а reasoning-блоков: модель должна отличать свои рассуждения от инъецированных не по стилю, а по невоспроизводимому токену. Пока этого нет - extraction будет работать, и чем мощнее reasoning, тем больше информации утекает через side channels. Если хотите посмотреть, как prompt injection ломает reasoning-логику на живом стенде, - задачи web-категории на HackerLab дают именно эту механику, от базового injection до multi-step extraction.