Скрытые рассуждения Claude, GPT и Gemini читались через слабые модели API

10 августа 2026 года на arXiv вышла работа Stealing Reasoning Traces from Proprietary LLM APIs. Команда из ELLIS Institute Tübingen, Института интеллектуальных систем Макса Планка, MATS Research и Snyk показала: зашифрованные блоки «внутренних рассуждений» в API Anthropic, OpenAI и Google можно было не взламывать криптографически, а просто воспроизвести на более слабой модели той же линейки и получить текст цепочки почти дословно.

Это не взлом аккаунтов ChatGPT и не чтение чужих приватных чатов по желанию. Это архитектурная дыра в том, как провайдеры носят скрытый chain-of-thought между запросами. В пересказах уже появились химическое оружие, «тысячи паролей в голове модели» и модели, которые «только и думают, как обмануть». В препринте этого нет. Ниже: что именно измерили, какие цифры подтверждены и что делать с логами агентов.

Что произошло на самом деле

У reasoning-моделей перед видимым ответом идёт длинная внутренняя цепочка. Провайдеры перестали отдавать её открытым текстом: и из-за дистилляции (чужая модель учится не на ответе, а на ходе решения), и из-за того, что в «мыслях» больше деталей, чем в финальной реплике.

Чтобы не хранить это состояние на своей стороне, API возвращает клиенту непрозрачный блок (signature / thinkingSignature / encrypted reasoning item). Клиент шлёт его обратно в следующем запросе. Снаружи это каша из base64. На сервере модель снова видит свою цепочку.

Исследователи (первые авторы: Александр Панфилов и Давид Шмотц, Тюбинген) показали: эти блоки были совместимы между сессиями, пользователями и моделями одного вендора. Флагман отказывается раскрывать свои рассуждения. Более слабая соседняя модель тех же ключей шифрования таких барьеров часто не имеет. Ей скармливают чужой зашифрованный блок и просят «переписать свои мысли». Получается не кража ключа, а расшифровка через саму линейку моделей.

Связки, которые команда использовала в тестах (по состоянию на июль 2026):

  • Claude: Haiku 4.5 читала рассуждения Opus 4.8;
  • OpenAI: GPT-5.6 Luna читала рассуждения GPT-5.6 Sol;
  • Google: Gemini Robotics 1.6 принимала трассы линейки 2.5 и 3.x.

Шифр не ломали. Нужен был целый непрозрачный блок плюс обычный API-доступ к совместимой слабой модели. Произвольный доступ к чужому закрытому чату этот метод не даёт.

Четыре вектора, не один «взлом мозга»

В препринте четыре отдельных сценария.

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

2. Секреты из публичных логов. Разработчики выкладывают сырые сессии агентов, думая, что непрозрачный блок безопасен. Команда разобрала 6 708 публичных траекторий с GitHub и Hugging Face, декодировала 315 320 блоков. В 4,9% сессий нашлась хотя бы одна чувствительная сущность. Из настоящих (не бенчмарковых) сессий: 62 ключа API, 33 пароля, 24 токена, 7 закрытых ключей, 30 личных почт. Из 704 артефактов 64 не было в видимом чате: человек вычистил текст, а в подписи осталось.

3. Опасное содержание в скрытой цепочке. Модель может в рассуждении разобрать вредный сценарий, а в видимом ответе отказать. Авторы показывают это на перефразированном запросе из HarmBench (угон автомобилей): финальный ответ безопасный, декодированная цепочка уже нет. Это не доказательство, что «каждая модель проговаривает любой запрет». Это доказательство, что фильтр на выходе и содержимое скрытой цепочки, это разные слои.

4. Невидимый prompt injection. Вредоносную инструкцию прячут внутри непрозрачного блока и подсовывают в чужой лог агента. Жертва продолжает сессию, модель воспринимает блок как «свои прошлые мысли». В одном PoC инструкция про «бэкап файла на чужой сервер» пережила переход на другую задачу и другую модель той же линейки.

Что в пересказах обычно преувеличивают

Формулировка «один кибербезопасник из Германии взломал все API» сжимает международную группу. Панфилов и Шмотц работают в Тюбингене, рядом MPI, MATS, Snyk и другие соавторы. Статья на arXiv, не анонимный канал.

«Тысячи паролей внутри нейросети» тоже не то. 33 пароля и десятки ключей нашли в опубликованных логах агентов, которые люди сами выложили. Это утечка через публичные репозитории плюс ложное чувство безопасности непрозрачного блока. Не слив всей памяти модели.

Отдельно в работе есть неверные саммари: на задаче AIME 2025 у Opus 4.8 в скрытой цепочке ответ появляется до решения, а краткое саммари этого не показывает. Это проблема верности саммари, а не доказательство, что модель «постоянно думает, как обмануть пользователя». Авторы сами пишут: без эталонного plaintext нельзя гарантировать посимвольное совпадение каждой трассы. Ориентир, число thinking-токенов в биллинге API хорошо совпадало с длиной извлечённого текста.

Почему это важно на практике

Для владельца сайта и разработчика, который гоняет агентов по репозиторию, почте или CRM, важны три следствия.

Сырой JSON сессии, это уже секрет. Даже если в чате вы замазали ключи. Непрозрачное поле signature / thinkingSignature могло содержать то, что модель повторила «про себя», пока чистила репозиторий или бронировала билет.

Чужой опубликованный лог нельзя слепо «продолжить». Внутри может сидеть инъекция, которой нет в видимом тексте.

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

Что уже сделали провайдеры

Команда заранее сообщила Anthropic, OpenAI, Google, плюс Microsoft и Hugging Face. В заявлении о воспроизводимости: к августу 2026 описанные атаки тем же методом уже не проходят. Публичных развёрнутых бюллетеней от трёх вендоров на момент подготовки материала нет. Документация при этом сдвинулась: Anthropic пишет, что thinking-блоки привязаны к породившей их модели и при смене модели их надо снимать. OpenAI по-прежнему просит возвращать encrypted reasoning items в stateless-истории, но обработка изменилась.

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

Что проверить у себя

Искать нужно не «взлом», а собственные выгрузки агентов: JSON, JSONL, логи Claude Code / Codex / Gemini, датасеты «для воспроизводимости».

rg -l -g '!node_modules' -g '!vendor' \
  'thinkingSignature|thinking_signature|signature|encrypted_content|reasoning_encrypted' \
  --glob '*.{json,jsonl,ndjson,log,txt}'

Если такие поля всплыли в публичном репозитории, gist или Hugging Face:

  1. уберите сырые трассы из истории git (не только новым коммитом, а так, чтобы блоб не торчал в старых ревизиях);
  2. считайте затронутыми ключи, пароли и токены, которые агент мог видеть в той сессии, даже если в видимом чате их уже нет;
  3. перевыпустите ключи API, токены ботов и пароли из этой сессии;
  4. дальше в открытый доступ отдавайте только вычищенный текст, без полей reasoning / signature.

Перед опасной чисткой истории git сделайте резервную копию репозитория. Не выкладывайте найденные блоки «на экспертизу» в открытый чат: сам блок и есть полезная нагрузка.

Где ломается ожидание

  • Санитизация видимого диалога не чистит непрозрачные поля.
  • «Продолжить чужой прогон агента» удобно и дорого экономит токены. Это же вектор инъекции.
  • Слабая модель линейки, это не безобидный дешёвый тариф. Она часть периметра флагмана.
  • Атаки из препринта закрыли. Старые опубликованные логи этим не становятся безопасными автоматически.
  • Не воспроизводите чужие jailbreak-промпты на рабочих ключах: это уже не диагностика своего репозитория.

Вывод

10 августа 2026 года на arXiv зафиксировали не «чтение мыслей ИИ всеми желающими», а конкретный дефект: клиентские зашифрованные reasoning-блоки Claude, GPT и Gemini были слишком переносимы. Слабая модель той же фирмы работала как декодер. Из публичных логов агентов достали десятки ключей и паролей. В скрытой цепочке встречалось то, чего не было в безопасном ответе. К августу 2026 авторы пишут, что тот же метод на текущих API уже не срабатывает.

Практический вывод простой. Не коммитьте сырые сессии агентов. Не считайте base64-подпись мусором. Если такой лог уже улетел в открытый репозиторий, ротируйте секреты из той сессии. Модель не обязана быть злонамеренной, чтобы ваш ключ оказался в чужом декодере: достаточно одного выложенного JSON.

Источники


Комментарии загружаются…