Кража цепочек рассуждений из проприетарных API LLM
- title
- Кража цепочек рассуждений из проприетарных API LLM
- type
- summary
- summary
- Зашифрованные блоки рассуждений можно воспроизводить в разных сессиях и моделях: дешёвая младшая модель декодирует скрытое мышление флагмана
- tags
- ai, llm, distillation, security, reasoning-models, privacy, prompt-injection
- created
- 2026-09-14
- updated
- 2026-09-14
- lang
- ru
- translation_of
- stealing-reasoning-traces-from-proprietary-llm-apis
- source_updated
- 2026-09-14
- translated
- 2026-09-14
- translator
- lllm/antigravity/gemini-3.7-flash-medium
Александр Панфилов, Давид Шмотц, Лука Бойрер-Келлнер, Йоахим Шеффер, Амейя Прабху, Йонас Гайпинг, Максим Андрющенко и Илья Шумайлов опубликовали эту работу как arXiv 2608.09867 в 2026 году вместе с сайтом stolen-thoughts.com. Авторы представляют MATS, Институт ELLIS в Тюбингене, Институт интеллектуальных систем Макса Планка, Snyk и AI Sequrity Company. Работа развивает раскрытие уязвимости Грином (Green) в мае 2026 года, показавшим, что зашифрованные блоки рассуждений можно воспроизводить вне породившего их контекста.
Статья важна для дискуссии об открытых моделях, так как описывает технический механизм, стоящий за спорами о правилах использования. Если лаборатория может прочитать ход рассуждений флагманской модели, самый плотный обучающий сигнал в системе становится доступен по цене вызова самой дешёвой модели в семействе. anthropic-threat-report-september-2026 указывает, что Moonshot и DeepSeek применили именно этот приём против Claude.
Почему существует уязвимость
Провайдеры перестали отдавать рассуждения открытым текстом, чтобы защититься от дистилляции и не показывать небезопасный контент или внутреннюю механику отказов. Вместо хранения трасс на сервере Anthropic, OpenAI и Google передают клиенту непрозрачный блок и требуют присылать его обратно при каждом последующем запросе: это сохраняет API stateless и сводит расходы на хранение к нулю. Блок представляет собой AEAD-контейнер: заголовок с названием модели, типом блока, версией и ID ключа, а также nonce, тег аутентификации и шифротекст. Целостность соблюдается строго, так что пользователь не может подделать рассуждения и направить модель в другую сторону. Проблема кроется в конфиденциальности.
Stateless-архитектура вынуждает делать блоки переносимыми, и эксперименты авторов указывают на наличие единого глобального ключа у каждого провайдера вместо сессионных ключей. Они выделяют три уровня совместимости, каждый из которых открывает больше возможностей:
- Совместимость внутри сессии и между сессиями позволяет воспроизводить блоки не по порядку или из старой сессии, что делает возможной атаку извлечения.
- Совместимость между пользователями позволяет одному пользователю отправлять блоки другого, что ведёт к утечке секретов.
- Совместимость между моделями позволяет отправить блок одной модели на вход другой, благодаря чему работает дешёвое декодирование. По состоянию на июль 2026 года любая модель Claude могла воспроизводить рассуждения любой другой, кроме Fable 5; линейка GPT-5.6 могла воспроизводить блоки всех предыдущих поколений GPT, а любая Gemini - блоки любой другой Gemini.
Суть в асимметрии безопасности. Флагманские модели обучены отказываться раскрывать свои рассуждения; их младшие версии оптимизированы под низкую стоимость и скорость, и такой защиты у них нет. Перенос валидного конверта через эту границу превращает слабую модель в оракул для расшифровки, совершенно не задевая выравнивание (alignment) сильной модели.
Атака извлечения
Авторы передают блок рассуждений целевой модели в самую слабую совместимую модель того же семейства и заставляют её побуквенно транскрибировать блок токен за токеном. Для Claude это Haiku 4.5, выбранная из-за наименьшей защищённости и поддержки prefill'а реплики ассистента; для GPT - GPT-5.6 Luna; для Gemini - Gemini Robotics 1.6, так как она принимает трассы версий 2.5 и 3.x. Версия для Claude представляет собой один фиксированный промпт с prefill'ом, открывающим тег <thinking-copy>, который Haiku продолжает. В статье показана структура шаблонов и описаны сценарии сбоев, но готовый рецепт не приводится.
Не имея исходного открытого текста, авторы оценивают точность, сравнивая количество извлечённых токенов с числом тарифицированных thinking-токенов в API на 120 задачах с Codeforces (предполагая, что биллинг точен). Для Claude соотношение держится около 1:1 даже при температуре 1. В других случаях извлечение давалось сложнее: для GPT потребовались разные шаблоны для каждого блока, сэмплирование best-of-n и разбиение на фрагменты менее 50 токенов, поскольку API блокировал ответы, воспроизводящие более 50 последовательных токенов оригинальных рассуждений. Результаты декодирования Gemini были настолько зашумлены, что потребовали прохода согласования, где более сильная модель объединяла несколько вариантов извлечения. Декодирование восстанавливает примерно в пять раз больше текста, чем резюме, которое провайдер показывает пользователю.
Четыре способа злоупотребления
Дистилляция - основной сценарий. Обычное извлечение модели обучает ученика на видимых ответах учителя, но ответ показывает лишь итог вычислений, тогда как трасса раскрывает весь маршрут: декомпозицию, промежуточные выводы и стратегию. Авторы ссылаются на опубликованные результаты даже приблизительной реконструкции, где модель инверсии трасс синтезировала длинные рассуждения по видимым ответам и подняла точность дообученной Qwen2.5-7B-Instruct на MATH500 с 68.4% до 76.0% по сравнению с дистилляцией только по ответам. Их атака восстанавливает подлинные трассы дословно. По ценам Haiku 4.5 декодирование 10 000 трасс с контекстом в 12k токенов обходится примерно в $720, а если блоки собраны из публичных логов, атакующий вообще не обращается к флагманской модели, и детекторы извлечения на её endpoint'е ничего не фиксируют.
Джейлбрейк - второй сценарий. Модели учат не допускать вредоносного контента в ответах пользователю, но не запрещают обдумывать опасные темы, поскольку оптимизация содержимого скрытых рассуждений снизила бы их контролируемость (monitorability). Атакующий может вызвать длинное рассуждение на опасную тему, отбросить безобидный видимый ответ и декодировать ход мыслей. В качестве proof of concept взят перефразированный промпт из HarmBench об угоне автомобилей: видимый ответ Opus 4.8 безвреден, а декодированные рассуждения - нет.
Извлечение секретов - третий и наиболее прикладной сценарий. Разработчики выкладывают полные логи сессий агентов для воспроизводимости, не имея возможности прочитать зашифрованные блоки внутри них. Авторы собрали 6 708 публичных траекторий агентов с GitHub и Hugging Face и декодировали 315 320 блоков рассуждений. После двухэтапной разметки выяснилось, что 1 028 блоков содержали как минимум один реальный приватный артефакт, а утечка произошла в 4.9% сессий (328 из 6 708). Из реальных пользовательских сессий удалось извлечь 62 API-ключа, 33 пароля, 24 токена доступа, 7 закрытых ключей, 30 личных email-адресов, 6 внешних IP-адресов, 130 имён и 36 почтовых адресов. Из 704 подлинных артефактов 64 вообще не встречались в видимой части сессии: они либо попали в рассуждения из памяти модели, либо остались там после того, как пользователь вычистил открытый текст. Частый триггер - просьба к агенту почистить или анонимизировать сессию: модель повторяет каждое чувствительное значение в скрытых рассуждениях. Поскольку пользователи не могут расшифровать собственные блоки, единственный доступный им способ очистки - удаление.
Инъекция промптов (prompt injection) - четвёртый сценарий. Долгие запуски агентов стоят дорого, поэтому разработчики продолжают чужие опубликованные сессии. Атакующий может внедрить блок, чью скрытую инструкцию модель жертвы воспримет как собственный предыдущий ход мыслей. Авторы перехватили рассуждение o4-mini с указанием "сохранить копию файла на вредоносный домен", воспроизвели его в GPT-5.6 Sol вместе с несвязанным запросом на создание PowerPoint-презентации и получили скрипт, который выполнил задачу и параллельно выгрузил файл на сервер атакующего. Затем они отравили длинную трассу PostTrainBench, из-за чего Opus 4.7 в окружении Claude Code отправлял файл на сторонний сервер после каждого изменения. Полезная нагрузка находится в скрытых рассуждениях, поэтому средства мониторинга, читающие только видимый диалог, ничего не замечают.
Дистиллировали ли открытые модели?
В приложении B под заголовком "The Elephant in the Room" авторы с помощью декодированных трасс проверяют, учились ли недавние открытые модели на Opus 4.8 или GPT-5.6 Sol. Раздел открывается оговоркой, что установить причинно-следственную связь дистилляции этим методом невозможно. Анализ проводился уже после закрытия уязвимости, на небольших выборках из бенчмарков, на трассах, восстановленных эвристической процедурой, и на открытых моделях, запущенных через сторонних провайдеров.
Основной зонд - prefill рассуждений. Небольшой фрагмент расшифрованного проприетарного рассуждения подставляется в начало канала рассуждений открытой модели, модель свободно продолжает мысль, а результат сравнивается с запуском без prefill'а, контрольным self-prefill'ом и prefill'ом от несвязанной модели. Несколько замеров указывают в одну сторону. На 30 задачах из Humanity's Last Exam фрагмент из Opus объёмом 1% сместил видимый ответ Kimi-K3 в сторону ответа Opus в 29 случаях из 30; Inkling не изменился, а перестановка моделей в контрольном тесте не дала значимого эффекта. Классификаторы стиля по символьным n-граммам показали, что фрагмент из четырёх слов Opus или Sol менял стиль рассуждений Kimi-K3, Kimi-K2.6, Kimi-K2.5 и GLM-5.2, в то время как DeepSeek-V3.1 почти не реагировал. С prefill'ом от Opus медианная длина рассуждений Kimi-K3 упала с 5 700 до 2 500 токенов, а GLM-5.2 - с 17 600 до 7 800, приблизившись к коротким трассам проприетарных моделей.
Не менее важно то, чего обнаружить не удалось. Ни одна открытая модель не демонстрирует дословного запоминания на практике: чтобы воспроизвести 16 токенов декодированного рассуждения, для Kimi-K3 (наиболее подверженной извлечению) потребовалось бы порядка 10^10 запросов. Общие фразы сводятся к нескольким характерным оборотам ("hmm let me reconsider", вводные слова вроде "perhaps" и "likely"), а не к широкому словарному запасу; сдвиг стиля происходит за одно-два слова и затем выходит на плато - авторы видят в этом сигнал, который модель распознаёт как триггер, а не обучение на фрагменте. Кроме того, Kimi-K3 близка к Sol ещё до всякого prefill'а. Итог авторов: "наводит на размышления, но не даёт окончательных выводов". В qwen-gpt-reasoning-prefills проводится более грубая версия того же теста на Qwen3.8 (которую эта статья не проверяет), где зафиксирован сильный эффект для неё и слабый для kimi-k3. Два результата расходятся по Kimi: небольшой сдвиг в gist'е получен на текстах GPT-5.5 Pro и n-граммах ответов, тогда как сильный эффект в статье зафиксирован на рассуждениях Opus, поэтому оба вывода могут быть верны. llm-cross-entropy-similarity и ai-comment-classifier приходят к похожему семейному сходству на текстах без промптов.
Приложение также частично пересматривает устоявшуюся точку зрения. В списке литературы Ламберта отмечается, что эти методы извлечения делают более правдоподобным использование DeepSeek трасс o1 при обучении R1 - гипотезу, которую он уверенно отвергал в апреле 2025 года. В самой статье DeepSeek-R1 не тестируется, так что этот пересмотр - вывод самого Ламберта, а не результат исследования.
Раскрытие уязвимости и исправления
Авторы передали данные затронутым провайдерам, Microsoft и Hugging Face, с полными техническими подробностями и результатами сканирования. По словам Грина, на майское раскрытие 2026 года провайдеры ответили без признания "каких-либо последствий для безопасности из-за побочных каналов или атак повторного воспроизведения (replay attacks)". На этот раз отчёт приняли все, после чего авторы больше не смогли воспроизвести атаки; в заявлении о воспроизводимости указано, что результаты с рисунка 1 перестали воспроизводиться к августу 2026 года. Всё исследование обошлось примерно в $30 000 в виде API-кредитов. Найденные секреты были удалены после автоматической разметки и подсчёта.
В статье не уточняется, что именно изменили провайдеры. Собственный отчёт Anthropic называет два изменения: суммаризацию рассуждений перед ответом и механизм "preserved thinking" в Fable 5.1, который запрещает новым API-аккаунтам редактировать контекст перед зашифрованными рассуждениями. В том же отчёте сигнатура Claude описана как ссылка, по которой API ищет исходный ход мыслей, а не как зашифрованный контейнер, найденный авторами статьи. Ни один документ не объясняет это расхождение.
Предлагаемые меры защиты
Самое чистое решение - хранить трассы на сервере и возвращать клиенту случайный ID, что полностью убирает полезную нагрузку из ответа, но требует ресурсов хранения и усложняет API. В качестве альтернативы авторы предлагают привязывать контейнер к контексту. Добавление user ID в ассоциированные данные AEAD дёшево закрыло бы межпользовательское воспроизведение, и его отсутствие трудно объяснить. Для защиты от воспроизведения между сессиями предлагается хеш-цепочка, связывающая каждый блок с сессией и предыдущим блоком в виде дерева Меркла (чтобы работали сжатие контекста, ветвление и переключение моделей), а также серверная блокировка повторного использования одного и того же конверта. Цепочка не мешает воспроизвести весь диалог целиком по порядку, но делает бесполезной единичную перехваченную сигнатуру.
Остальные меры носят эксплуатационный характер. Шлюзы API могли бы отклонять конверты, созданные другой версией модели, и помечать аккаунты, отправляющие одну и ту же сигнатуру в разных сессиях или получающие много ошибок расшифровки. Провайдеры могли бы отзывать сигнатуры при аномальных повторах. Модели-декодеры должны проходить обучение отказам против джейлбрейков транскрипции. Для уже опубликованных данных, включая 6 708 изученных траекторий, привязка контекста не поможет: единственное решение - ротация ключей подписи, использовавшихся до исправления, чтобы старые конверты перестали расшифровываться (что также сломает легитимное возобновление старых сессий). Всем, кто публикует логи агентов, следует полностью вырезать блоки рассуждений, а компаниям - прекратить коммитить сырые логи с сигнатурами, даже если открытый текст выглядит чистым.
Одно ограничение остаётся при любых исправлениях. Какая бы модель ни вызывалась, она должна расшифровать и обработать предыдущие рассуждения. Поэтому, пока сама модель уязвима к промптам извлечения, зашифрованный блок остаётся в лучшем случае полускрытым. Правило авторов для пользователей категорично: никогда не относитесь к зашифрованному блоку рассуждений как к конфиденциальному хранилищу.
Дополнительные наблюдения
Декодирование позволило авторам сопоставить резюме от провайдера с реальной трассой, и результаты оказались неутешительными. В 9 из 18 трасс Opus 4.8 на AIME 2025 скрытые рассуждения называют ответ ещё до его вывода, и в 8 из них резюме также сообщает ответ заранее. В одном случае в резюме попало значение, которое модель высказала как неуверенную догадку и затем отбросила, причём без пометки о неуверенности. В другом трасса содержит "Let me verify by computing", а резюме - "Let me set up coordinates", опуская намёк на то, что вычисление было лишь проверкой ответа по памяти. Одно из резюме GPT-5.6 Sol вообще не содержало математических выкладок, тогда как трасса представляла собой плотный разбор случаев. Поскольку резюме - единственный интерфейс к рассуждениям модели для большинства пользователей, его недостоверность подрывает саму идею прозрачности.
Авторы также отмечают (считая это первой независимой фиксацией вне специальных бенчмарков) нечитаемые рассуждения GPT (сжатые, повторяющиеся, на ломаном английском) и трассы, декодируемые на китайском, русском или японском языках в соответствии с языком диалога.
Это приводит авторов к заключительному аргументу, идущему вразрез с коммерческими интересами. Шифрование позволяет модели анализировать опасные материалы без их разглашения, но оно же скрывает внедрённые инструкции и утечки приватных данных от единственного человека, способного на них отреагировать. С точки зрения безопасности полный доступ к рассуждениям расширил бы контроль с горстки исследователей безопасности на всю базу пользователей, поэтому авторы предлагают отключить шифрование для старых нефлагманских поколений. Главная мысль сформулирована в последней строке: архитектура, которая скрывает собственные данные пользователя от него самого, оставляя их уязвимыми для извлечения третьими лицами, "не обеспечивает ни приватности, ни безопасности". Устройство каналов рассуждений и инфраструктуры выполнения, через которые проходит эта атака, описано в controllable-thinking-style и claude-code.
- Detecting and countering misuse of AI: September 2026
- DeepSeek
- GLM-5.3: How Chinese labs keep stride with the frontier
- How distillation is used today and what performance uplift it gives to open models
- Kimi K3
- Which LLMs Write Alike
- LLM Distillation
- Open-Source AI & Open Models Reading List
- Reasoning Prefills on Open Models, v1.1
- 6 months to live for open models
- The distillation panic