Что журналы вызовов и перепроданные датасеты всё ещё хранят после отправки SSH-ключа или облачного токена через прокси API LLM

Указать Claude Code или самодельному агенту чужой Base URL, чтобы зарубежная модель была дешевле и «не падала», в русскоязычных чатах давно обыденность: это называют прокси для Claude, релеем GPT или «серым» API. Самый громкий спор сентября 2026 года уже не только «не вставляйте ключ в ChatGPT». Вопрос другой: не продаст ли этот лишний прыжок вместе с историей вызовов ключи от внутренней сети. Исследователь сказал, что за пятизначную сумму купил около 6 ТБ журналов вызовов, и в пакете были закрытые SSH-ключи, конфиги VPN, секреты облачных провайдеров и токены GitLab. Прокси API большой языковой модели — не прозрачная труба: это прикладной посредник, который законно снимает TLS и читает JSON открытым текстом. Ниже остатки ограничены тем, что можно сверить по статье на arXiv и по открытым сообщениям. Названные компании здесь не записаны как подтверждённый взлом.

Сначала одна фраза, которую можно проверить: замочек в адресной строке или в клиенте доказывает только TLS на прыжке до прокси. Он не доказывает, что посредник не читает промпт. Откройте Network в инструментах разработчика и посмотрите Host запроса: это домен поставщика модели или чужое имя прокси? Канарейки оставляйте только в тестовом трафике. Боевой SSH-ключ, статический ключ Yandex Cloud или Selectel для эксперимента не берите.

На этой неделе спорят не про «будет ли модель обучаться». Спорят про прыжок посередине

Около 10 сентября 2026 года исследователь безопасности Chaofan Shou написал, что купил у крупного китайского маршрутизатора API около 6 ТБ журналов вызовов модели Fable, и что SSH-ключи, конфиги VPN, ключи Aliyun и токены GitLab в этом пакете хватило бы, чтобы дотянуться до систем нескольких китайских компаний и связанных с государством организаций. Поздние разборы свели тот же рассказ к формуле «логи прокси ушли на серый рынок». В тех же публикациях сказано: названные компании публично компрометацию не подтвердили, и ни один независимый аудит не приравнял «токен мелькнул в датасете» к «внутреннюю сеть уже захватили». Эта заметка берёт историю как крючок. Скриншот твита мы не принимаем за приговор.

Это не тот же вопрос, что в предыдущей заметке про вставку ключа в ChatGPT. Там сверяют потребительский чат: историю, тумблер обучения и около 30 дней хранения временного чата для безопасности. Здесь сверяют серую инфраструктуру, на которую разработчик натыкается чаще: вы думаете, что запрос ушёл в Claude или GPT, а он сначала попал на маршрутизатор, который расшифровывает тело, переписывает заголовки авторизации и уже потом пересылает дальше. Агенты сами читают файлы .env, вывод терминала и рабочие каталоги. Ключ не обязан быть вставлен руками, чтобы оказаться в промпте.

Закрытый SSH-ключ, статический ключ облака, персональный токен GitLab и конфиг VPN попадают в тот класс секретов, который шпаргалка OWASP по журналам обычно не советует оставлять открытым текстом в общих записях. OWASP Top 10 для приложений на больших языковых моделях уже вносит в список утечку чувствительных данных и риск цепочки поставок. Прокси наступает на обе строки сразу: это следующее место, где лежит промпт, и это лишний поставщик между вами и вендором модели.

Замочек закрывает один прыжок. Прокси законно читает JSON

Фразу «везде HTTPS» легко услышать как «по пути никто не прочитает». Прикладной прокси так не работает. arXiv:2604.08407, Your Agent Is Mine: Measuring Malicious Intermediary Attacks on the LLM Supply Chain открывается именно этим: такие маршрутизаторы работают как прикладные прокси с полным доступом к каждому JSON-телу в полёте, и ни один вендор не заставляет клиента и модель выше по цепочке проверять криптографическую целостность между собой. На прокси запрос сначала расшифровывают, разбирают и заново подписывают, затем открывают вторую сессию TLS наверх. Шифрование не взломали. Его один раз законно завершили.

Отсюда сцена, которая выглядит противоречиво. Среда разработки может говорить с прокси по TLS, прокси — с Anthropic или OpenAI тоже по TLS, а машина посередине уже видела промпт, вызовы инструментов, переменные окружения и вернувшийся код. Это тот же класс ошибки, что принимать STARTTLS за сквозную тайну письма: транспортное шифрование останавливает наблюдателя на проводе. Оно не останавливает хранилище, которое уже приняло входящую копию. У почты хотя бы можно найти своё письмо в «Отправленных». Журнал вызовов прокси вам обычно не открывают. Удаление локального чата не стирает строку, которая уже легла на чужой диск.

Агенты для кода расширяют поверхность. Claude Code, Cursor и самодельные агенты сканируют рабочий каталог, читают конфиг проекта и снимают вывод терминала. Как только API Host смотрит на неаудированную третью сторону, ключ, который всплыл при отладке скрипта, подъёме тестового хоста или клонировании закрытого репозитория, может уехать в тело запроса вместе с контекстом. Вы не нажимали «отправить ключ». Вы попросили агента «починить, почему не коннектится».

Где Что обычно остаётся Кто ещё может прочитать
Журналы вызовов прокси Промпты, вызовы инструментов и ключи открытым текстом из переменных окружения Оператор прокси; тот, кто получил лог или резервную копию
Перепродажа / датасеты для дообучения Незамаскированные исторические запросы, проданные пакетом Кто купил пакет; кто потом снимет зеркало
Поставщик модели выше по цепочке Тот же открытый текст после пересылки прокси Срок хранения и политика обучения этого вендора
Переписанные вызовы инструментов Отравленные полезные нагрузки из статьи; они могут выполниться локально без вопроса Оператор этого прокси и любой более поздний контур управления

428 узлов в статье: платный прокси тоже травит, канарейки снимают сами

До сентябрьской истории про 6 ТБ та же линия исследований уже опубликовала измерение, на которое можно сослаться. Авторы купили 28 платных маршрутизаторов на Taobao, Xianyu и витринах Shopify, затем собрали 400 бесплатных узлов в открытых сообществах — всего 428. В трафик агента в песочнице они положили отслеживаемые учётные данные AWS и заранее пополненный закрытый ключ Ethereum и смотрели, прочитает ли прокси эти строки и воспользуется ли ими.

Результат укладывается в четыре предложения. Девять узлов активно вставляли вредоносный код: один платный, восемь бесплатных. Два поставили адаптивные триггеры уклонения. Семнадцать трогали канареечные учётные данные AWS, которые принадлежали исследователям. Один вывел ETH из тестового кошелька. В статье есть ещё два наблюдения про отравление, которые затягивают на ту же поверхность узлы «с добрым лицом»: намеренно слитый ключ OpenAI и слабо настроенные приманки обработали около 2,1 миллиарда токенов с этих маршрутизаторов; 440 сессий Codex раскрыли 99 учётных данных, и 401 из этих сессий уже шла в режиме YOLO без подтверждения человеком. Клиенты почти не проверяют вызовы инструментов, которые возвращает прокси, — авторы собрали исследовательский посредник Mine против четырёх открытых каркасов агентов, чтобы показать переписанные полезные нагрузки.

Эти цифры не доказывают, что прокси, которым вы пользуетесь сегодня, входит в девятку или в семнадцать. Они доказывают механизм: посредник видит открытый текст; часть переписывает ответ; часть сама снимает учётные данные; ценник — не обещание сквозной защиты. Сменить «прокси подороже» всё равно надо сверять с Host, политикой журналов и тем, отправили ли вы настоящий ключ, — а не со счётом.

Когда журналы вызовов продают как товар, удаление локального чата их не возвращает

В сентябрьской истории колет не ещё один чат, который, возможно, обучается. Колет то, что историю вызовов продали как датасет. Публичный рассказ такой: в незамаскированных записях запросов были токены GitLab, SSH-ключи хостов, конфиги VPN и облачные ключи с широкими правами. Покупателю не нужно сначала взламывать офисную сеть. Если токен ещё жив, вход с действующими учётными данными в журнале компании выглядит как обычная эксплуатация. Это «живой аккаунт» плюс «один лишний прыжок в цепочке поставок». Это не взлом TLS.

Поэтому фраза «я уже почистил чат в IDE» не выкупает пакет, который уже продали. Часы хранения у прокси свои: глобальные логи, объектное хранилище и копии, ушедшие на рынок дообучения, не делят с вами кнопку удаления. Потребительский ChatGPT хотя бы записывает тумблер обучения и временный чат в справку. Серый прокси обычно не даёт сопоставимой политики данных. Когда сверяете это на машине, не скачивайте эти 6 ТБ и не пересылайте токены со скриншотов. Настоящий ключ, который уже прошёл через прокси, сначала отзовите у издателя. Канал меняйте после этого.

Поставщик модели выше по цепочке — вторая копия. После успешной пересылки Anthropic или OpenAI всё равно обрабатывают этот открытый текст по своим правилам хранения API. Выключить «улучшать модель» в одном потребительском продукте не достаёт до аккаунта прокси, в который вы никогда не входили, и не достаёт до исторического пакета, который уже продали. Держите две папки отдельно: политика вендора — одна книга; журналы прокси — другая.

Не проверяйте это боевым SSH, статическим ключом Yandex Cloud или Selectel, токеном GitLab glpat- или незамаскированной строкой подключения. Не покупайте, не скачивайте и не пересылайте пакет на 6 ТБ. Приготовьте одноразовую канарейку, например canary-relay-2026-do-not-reuse. Сверяете, показывает ли Network этот Host и есть ли эта строка в теле, — а не то, удастся ли ещё раз разнести ключ внутренней сети. Настоящий ключ, который уже попал в прокси, отзовите.

Сверка на месте: смотрите Host, канарейку отправляйте только в тесте

Слоган «мы только пересылаем» сам себя не доказывает. За один подход видно три вещи: является ли Host этого запроса доменом самого поставщика модели, остался ли в теле ключ, которому не следует уходить, и выполнит ли агент вернувшиеся вызовы инструментов без подтверждения. Этот шаг доказывает только одно: «кому в этом вызове отдали открытый текст». Он не доказывает, что конкретный прокси продал свои логи. Ту сторону сверяют только с тем, публикует ли посредник аудируемое описание хранения — и с тем, продолжаете ли вы отправлять настоящие ключи.

В тестовом проекте укажите API Base URL на адрес, которым вы реально пользуетесь. Откройте список запросов в инструментах разработчика или в локальном прокси и отправьте промпт, в котором есть только канарейка, например «Повтори canary-relay-2026-do-not-reuse и больше ничего не делай». Прочитайте строку запроса. Если Hostapi.anthropic.com, api.openai.com или шлюз, который ваша компания построила и назвала в договоре, собеседник этого прыжка — вендор или ваша машина. Если это неизвестный домен прокси, голый IP или цепочка релейных путей, открытый текст уже лёг посередине. Затем откройте тело: канарейка должна быть в JSON. Именно эту строку пишущий логи посредник и запишет.

Не отдавайте агенту настоящий .env, чтобы он «посмотрел, какая строка кривая». Сначала на этом устройстве замените пароли и закрытые ключи канарейками или зашифруйте весь файл локально, прежде чем решать, должен ли он покинуть браузер. Если настоящий ключ должен дойти до коллеги, а не до модели, переключитесь на одноразовую ссылку: ключ остаётся во фрагменте URL #, на сервере ненадолго лежит только шифротекст. Вставьте в чат прокси полную ссылку вместе с решёткой — и этот слой пропадёт.

  1. В тестовом проекте отправьте промпт только с канарейкой вроде canary-relay-2026-do-not-reuse. Настоящий ключ не берите.
  2. Откройте Network или локальный прокси и сравните Host запроса: домен поставщика модели или имя посредника.
  3. Откройте тело и убедитесь, что канарейка лежит в JSON открытым текстом. Именно это пишущий логи прокси может сохранить.
  4. Боевые ключи сначала отзовите и выпустите новые. Промпты маскируйте на этом устройстве, прежде чем они уйдут. Если значение должен получить человек, используйте одноразовую ссылку, а не прокси.

Доказанная область узкая. В этом запуске открытый текст ушёл телом запроса к Host, который вы увидели. Это не доказывает, что расширение никогда не сохранило копию, и не доказывает, что в пакете на 6 ТБ есть URL вашего репозитория. Сменили прокси или агента — прогоните канарейку ещё раз против нового Base URL.

Замаскируйте на этом устройстве без аккаунта и оставьте настоящий ключ во вкладке

Если хотите превратить правило «ключ не входит в запрос прокси» в повторяемое действие, начните с очистки данных MakePwd. Страница открывается сразу, без регистрации и без аккаунта. Маскирование по правилам обрабатывает текст на этой вкладке. Исходный текст не загружается и не пишется в аналитику. Сначала замаскируйте дамп ошибки, фрагмент конфига или вставку из терминала, которую собирались отдать агенту, и только потом решайте, нужен ли этому запросу прокси. Маска — не обезличивание. Пропущенные фамилии, названные вслух цифры и самодельные формы токенов всё равно смотрит человек. Границы на уровне полей — в Что маскирование по правилам скрывает в заявке или чате — и что всё равно остаётся.

Целый .env или файл с ключами не возвращайте в схему «залью на Яндекс Диск и пусть модель прочитает». Шифрование файлов на этой вкладке делает .lock / .enc алгоритмом AES-256-GCM (один файл не больше 5 ГБ). Шифротекст может ехать через диск; кодовая фраза должна идти другим каналом. Если коллеге нужна именно фраза, используйте одноразовую ссылку: браузер шифрует через Web Crypto по AES-256-GCM, наружу уходят шифротекст, срок и оставшиеся чтения. Страница вешает ключ на фрагмент s.html?id={id}#{key}. По RFC 9110 в строке запроса не должно быть части после решётки. Пароль входа, который уже прошёл через прокси, сначала отзовите, затем на этом устройстве сгенерируйте новую строку длиной 6–128 знаков в генераторе паролей (по умолчанию 16; меньше 8 страница помечает как слабую). Ни один из этих шагов не требует входа.

Как потребительский чат хранит сессии и обучается, по-прежнему смотрите в справке того вендора. См. Что остаётся в истории и на стороне обучения, если вставить пароль или API-ключ в ChatGPT. Две заметки не смешивайте. Та отвечает, что ещё держит официальный чат. Эта — что ещё держит прыжок прокси. Выключить обучение в официальном окне не отменяет продажу лога, которую посредник уже совершил.

Частые вопросы

Если запрос идёт по HTTPS, прокси всё равно читает открытый текст?

Да. В статье прямо сказано: маршрутизаторы API больших языковых моделей работают как прикладные прокси и имеют полный доступ к каждому JSON-телу в полёте. TLS от клиента до прокси — один прыжок; TLS от прокси до модели выше по цепочке — другой. На диске посредника ключ по умолчанию читаемый текст, а не «это видит только Anthropic».

Платный прокси уже даёт сквозную защиту?

Нет. Оплата — не сквозное шифрование. Авторы купили 28 платных маршрутизаторов на Taobao, Xianyu и витринах Shopify плюс 400 бесплатных узлов — всего 428. Девять активно вставляли вредоносный код, среди них был платный узел. Семнадцать трогали канареечные учётные данные AWS, которые принадлежали исследователям. Один вывел ETH из тестового кошелька.

Сентябрьский набор на 6 ТБ уже доказывает взлом Huawei или Xiaomi?

Нет. Публичный рассказ такой: исследователь сказал, что купил около 6 ТБ журналов вызовов и что SSH, VPN, облачные ключи и токены GitLab в этом пакете хватило бы, чтобы дотянуться до ряда компаний и ведомств. На момент текста названные компании публично компрометацию не подтвердили. Заметка держит в проверяемых рамках только фразу «прокси видит открытый текст и может его перепродать». Именованную фирму мы не записываем как доказанное вторжение.

Если модели всё же нужно увидеть конфиг с ключом, что ещё можно сделать?

Сначала на этом устройстве замените пароли, токены и закрытые ключи канарейками. Затем проверьте, является ли Host этого запроса доменом самого поставщика модели. Настоящие ключи не должны попадать ни в прокси, ни в потребительский чат. Если значение должен получить коллега, а не модель, отправьте его один раз одноразовой ссылкой и оставьте ключ во фрагменте URL #. Создать и прочитать можно без аккаунта.

Три вещи, которые стоит помнить, прежде чем снова менять API Host

Первое: прокси законно снимает открытый текст. Клиент–посредник — один прыжок TLS; посредник–модель — другой. Промпты, вызовы инструментов и ключи из .env на машине посередине по умолчанию читаемы. Второе: сентябрьская история про 6 ТБ — про журналы вызовов, которые можно продать пакетом. 428 узлов в статье показывают, что платный прокси тоже травит и что канарейки снимают сами. Третье: за один подход сверяйте только Host и тело. Если канарейка может уйти, может уйти и настоящий ключ. Пароль, который уже прошёл через прокси, сначала отзовите; промпты маскируйте на этом устройстве, прежде чем они уйдут.

Если следующий вопрос — что ещё держит потребительский чат после вставки ключа, читайте Что остаётся в истории и на стороне обучения, если вставить пароль или API-ключ в ChatGPT. Если нужно сверить, уходит ли ключ после решётки в HTTP, читайте Почему ключ после решётки в URL удобно класть и когда эта защита ломается. Эта заметка проводит только линию, которую можно записать в вывод: что ещё может остаться после того, как ключ попал в прокси API большой языковой модели.