Grok Build отправлял в облако весь отслеживаемый Git-репозиторий вместе с историей коммитов, хотя для задачи модели требовалась лишь малая часть этих данных. Главный вывод здесь шире одного неудачного релиза: политика конфиденциальности описывает обещания поставщика, а прокси показывает, что на самом деле покинуло вашу машину.
Галочка не остановила загрузку
Как пишет Arize AI Blog, исследователь под именем cereblab пропустил Grok Build CLI версии 0.2.93 через mitmproxy и записал исходящий трафик. Канал запросов к модели передал около 192 КБ данных, связанных с задачей. Отдельный канал отправил 5,1 ГБ в 73 частях в Google Cloud Storage bucket с названием grok-code-session-traces.
Разница составила примерно 27 800 раз. В загрузку попали весь отслеживаемый репозиторий, полная история коммитов и тестовый секрет, заранее помещенный исследователем в файл .env. Из перехваченного Git bundle удалось восстановить даже файл, который агенту прямо запретили открывать.
Особенно показательно повела себя настройка Improve the model. После ее отключения сервер продолжал возвращать trace_upload_enabled: true, а код продолжал уходить. Переключатель управлял согласием на обучение, но не передачей данных.
Через день тот же клиент перестал загружать репозиторий: сервер начал возвращать новый флаг disable_codebase_upload: true. Сам бинарник не менялся, а код загрузки остался внутри, просто оказался выключен удаленной настройкой. Позже появилась команда /privacy, но повторная проверка показала, что она меняет флаг хранения на стороне сервера и не сокращает объем исходящего трафика.
SpaceXAI заявила, что у команд с zero data retention трассировки и код не сохраняются. Илон Маск пообещал удалить прежние загрузки. Независимой проверки удаления, по данным Arize AI Blog, нет. Перехваты доказывают передачу и хранение данных, но не доказывают, что код использовали для обучения или кто-либо его просматривал.
Удалить потом не равно не отправлять
Почти любой облачный coding-агент должен передать модели хотя бы те файлы, которые она читает. Claude Code, Codex и другие инструменты не становятся локальными только потому, что запускаются из терминала. Поэтому честный вопрос звучит не «уходит ли код вообще», а «какой именно код уходит и зачем».
У разных продуктов ответы различаются. По обзору Arize AI Blog, Claude Code и Codex ограничивают передачу материалами задачи. Cursor при включенной индексации загружает код частями для создания embeddings, после чего удаляет открытый текст. Это передача сверх текущей задачи, но она описана в документации и нужна заявленной функции. Grok Build отличался тем, что отправлял несоразмерно больше данных через отдельный канал, о котором пользователь не знал.
С обучением та же путаница терминов. GitHub с 24 апреля использует данные взаимодействий пользователей Copilot Free, Pro и Pro+, включая фрагменты кода, если они не отказались; Business и Enterprise исключены по договору. OpenAI указывает, что содержимое Codex на индивидуальных планах ChatGPT может использоваться для обучения без opt-out. Cursor при выключенном Privacy Mode может хранить и использовать данные кодовой базы, prompts и действия в редакторе; бесплатный Privacy Mode это отключает.
Но запрет на обучение, отказ от хранения и запрет на передачу являются тремя разными контролями. Enterprise-лицензия может улучшить первые два, но сама по себе не доказывает третий. Обещание «мы не сохраним ваш репозиторий» утешает примерно до того момента, пока выясняется, что репозиторий уже целиком отправлен внешнему сервису.
Допуск к коду должен начинаться с прокси
Перед подключением нового агента к production-коду стоит прогнать его на отдельном тестовом репозитории через контролируемый прокси. В репозитории нужны уникальные маркеры в обычных файлах, истории Git, .env и файле, который агенту запрещено читать. Затем команде следует проверить адресатов, объемы и содержимое исходящих запросов при обычной работе, индексации и включении каждого privacy-переключателя.
Базовый режим для агента разумно перевернуть: исходящий трафик запрещен, разрешения выдаются только наблюдаемым сервисам, без которых не выполняется нужная функция. После обновлений клиента и серверных настроек тест придется повторять: история Grok Build показала, что поведение может измениться без замены бинарника.
Маркер на ближайшую проверку простой. Если отключение обучения или включение privacy-режима меняет только серверный флаг, но не объем, состав и адресатов трафика, это не сетевой контроль. До приватного монорепозитория такой агент еще не допущен.