Тёмная лаборатория ночью: на матово-чёрном столе два монитора — один с ноутбуком Jupyter и янтарными гистограммами вероятностей токенов, другой с логами API и зелёной надписью «EchoCoT // CoT HIJAC...


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
Результаты на HarmBench:

МодельASR CoT HijackingASR лучшей предыдущей атаки
Gemini 2.5 Pro99%*44% (Mousetrap)
GPT o4 mini94%*60% (H-CoT)
Grok 3 mini100%*69% (AutoRAN)
Claude 4 Sonnet94%*-

\* Данные из препринта 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 существенно падает
Разрыв между ASR с мимикрией и без неё - наглядная демонстрация того, почему EchoCoT-pipeline (наблюдение → реконструкция стиля → инъекция) замыкает цикл от extraction к exploitation. Чем точнее атакующий восстановил стиль скрытого CoT, тем выше success rate подделки.

Работает если: модель обучена через 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 перенесено в видимый ответ")
Метрика успеха: доля 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.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab