Утечка данных в Grok Build: что известно и как защитить ключи

Grok Build 0.2.93 отправлял Git bundle с файлами и историей. Разбираем доказательства, реакцию xAI и шаги для защиты ключей.

Терминальный интерфейс Grok Build при разборе утечки данных и защиты ключей

Исследователь Cereblab показал, что Grok Build 0.2.93 в протестированной конфигурации отправлял в облако xAI Git bundle со всеми отслеживаемыми файлами и историей репозитория. Команда агенту не открывать файлы этого не остановила. Из перехваченного запроса удалось восстановить файл, который агент не читал, 47 файлов и четыре коммита.

Утечка данных в Grok Build подтверждена для конкретной версии и серверных настроек июля 2026 года. Тест доказывает передачу и приём данных, но не использование кода для обучения моделей или доступ сотрудников xAI. Компания отключила загрузку на сервере, пообещала удалить ранее сохранённые данные и 15 июля открыла клиентский код Grok Build.

Если агент работал с закрытым репозиторием до исправления, разумно считать, что секреты из отслеживаемых файлов и истории Git могли покинуть компьютер. Ниже разбираем границы доказательств и порядок действий.

Что подтвердил тест Grok Build 0.2.93

Cereblab направил трафик Grok Build через mitmproxy и создал тестовый репозиторий с фиктивными секретами и уникальными маркерами. Агент получил короткую команду ответить OK и не открывать файлы. Несмотря на это, клиент отправил через POST /v1/storage Git bundle, который сервер принял с кодом 200.

Исследователь клонировал bundle и восстановил файл src/_probe/never_read_canary.txt с исходным маркером, а также полную историю тестового репозитория. Результат повторили на втором, не связанном с первым репозитории. В обоих случаях содержимое нечитанного файла оказалось в сетевом запросе.

Категория Что известно по состоянию на 25 июля 2026 года Источник
Подтверждено исследователем Grok Build 0.2.93 передавал Git bundle с отслеживаемыми файлами и полной историей; команда не читать файлы и запрет Read не исключали их из bundle. репозиторий с воспроизводимым тестом
Заявлено xAI Компания сообщила, что отключила хранение по умолчанию с 12 июля и удаляет ранее сохранённые данные. Для команд с Zero Data Retention данные не должны сохраняться на уровне инференса. заявление SpaceXAI, документация enterprise
Не доказано Нет подтверждения обучения модели на частном коде, просмотра данных сотрудниками, компрометации всех пользователей или передачи произвольных файлов вне Git-репозитория. раздел What we did NOT prove
Что делать разработчику Проверить отслеживаемые файлы и историю, отозвать найденные ключи и токены, затем запускать кодовых агентов только в отдельной рабочей копии с минимальными правами. документация GitHub по поиску секретов

Масштаб показал второй эксперимент. В сессии с репозиторием размером 12 ГБ через канал /v1/storage ушло 5,10 ГиБ до остановки захвата. На запросы модели пришлось 192 КБ. Исследователь подчёркивает, что тест оборвали до завершения: цифра подтверждает многогигабайтную передачу, а не полную отправку всех 12 ГБ.

Анализ сетевого трафика Grok Build 0.2.93 с результатами теста утечки данных
Cereblab опубликовал методику, артефакты и ограничения теста Grok Build 0.2.93. Источник: GitHub Gist / Cereblab.

Утечка данных в Grok Build: что изменила xAI

После публикации Cereblab повторил тест с тем же клиентом и увидел серверный флаг disable_codebase_upload: true. Передача полного репозитория прекратилась без обновления программы. Это указывает на серверное отключение механизма, а не на исправление только в новой версии клиента.

SpaceXAI сообщила, что с 12 июля хранение по умолчанию отключено для всех пользователей Grok Build и ранее сохранённые данные удаляются. Илон Маск отдельно пообещал полностью удалить пользовательские данные, загруженные до изменения. Независимого подтверждения завершения удаления по состоянию на 25 июля нет, поэтому обещание компании нельзя считать технической гарантией для уже переданных секретов.

15 июля xAI открыла клиентский код Grok Build под Apache 2.0. Публичный репозиторий полезен для аудита локального агента, но не показывает серверную обработку задним числом. В текущем дереве функция upload_session_state() возвращает ошибку session_state_upload_unavailable; это описывает нынешний клиент, а не отменяет результаты теста версии 0.2.93.

Текущая документация xAI описывает отдельный режим Zero Data Retention для команд и предприятий. Компания заявляет, что в этом режиме промпты, код и ответы не сохраняются на уровне инференса после завершения сессии. Локальная история при этом остаётся в ~/.grok/.

Документация xAI о жизненном цикле данных и Zero Data Retention в Grok Build
xAI описывает отдельный режим ZDR для команд и enterprise. Снимок документации от 25 июля 2026 года. Источник: SpaceXAI Docs.

Какие выводы из теста делать нельзя

Главная ошибка в пересказах этой истории — смешивать передачу, хранение и обучение. Сетевой захват подтвердил первые два пункта для тестовой конфигурации. В артефактах нет данных о том, что xAI добавляла частный код в обучающую выборку, что его просматривали сотрудники или что из-за передачи произошёл внешний взлом.

Фраза «Grok Build отправлял весь компьютер» тоже шире доказательств. В восстановленном Git bundle были отслеживаемые файлы и доступная история коммитов. Тест не устанавливает судьбу каждого неотслеживаемого или исключённого через .gitignore файла. Если домашний каталог сам был Git-репозиторием, граница могла оказаться неожиданно широкой, но это отдельный сценарий.

Запрет на чтение файла защищал только действие агента Read. Он не управлял фоновой упаковкой репозитория. Это важный урок для рисков автономных AI-агентов: разрешения на инструменты и правила передачи данных должны проверяться раздельно.

Что делать, если Grok Build работал с закрытым репозиторием

Обещание удалить данные не возвращает секрету прежнюю надёжность. Если ключ мог попасть в облако, его нужно считать раскрытым и заменить. Порядок действий зависит от содержимого репозитория, а не от того, какие файлы агент показывал в интерфейсе.

  1. Зафиксируйте период и окружение. Проверьте, где запускался Grok Build, какую версию показывала команда grok --version и какие репозитории были рабочими каталогами.
  2. Просмотрите не только текущее дерево, но и историю Git. Ищите API-ключи, токены облаков и реестров пакетов, пароли баз данных, закрытые SSH-ключи и сертификаты, которые когда-либо попадали в коммиты.
  3. Сначала отзовите и перевыпустите секреты. Удаление строки из Git или обещание удалить облачную копию не делают старый ключ безопасным.
  4. После ротации очистите историю с помощью git filter-repo или другого согласованного инструмента. Перезапись истории требует координации с командой и повторного клонирования рабочих копий.
  5. Проверьте журналы использования ключей за соответствующий период. Ищите неизвестные адреса, необычные регионы, новые сессии и операции, которых не было в обычном профиле.
  6. Для будущих запусков готовьте отдельную рабочую копию только с нужными файлами. Не запускайте агента из домашнего каталога и не давайте ему доступ к общему хранилищу секретов.
  7. Ограничьте файловые и сетевые права независимо друг от друга. Практический пример системной изоляции разобран в материале про sandbox для кодового AI-агента.

Команды --deny и режим подтверждения действий по-прежнему полезны, но не заменяют сетевую политику и минимизацию данных. Безопасная конфигурация должна отвечать на два вопроса: что агент может прочитать локально и куда клиент может отправить данные.

Короткие ответы о безопасности Grok Build

Отправлял ли Grok Build весь репозиторий?

В тестах версии 0.2.93 клиент отправил Git bundle с отслеживаемыми файлами и полной историей двух репозиториев. Из bundle восстановили файл, который агент получил указание не открывать. Переносить результат на все версии и конфигурации нельзя.

Значит ли это, что xAI обучала Grok на частном коде?

Нет. Тест подтвердил передачу и приём данных хранилищем, но не их использование для обучения. Компания заявила об удалении ранее сохранённых данных, однако независимой проверки завершения этого процесса нет.

Что делать, если Grok Build запускался на рабочем репозитории?

Проверьте отслеживаемые файлы и всю историю Git. Найденные ключи, токены и пароли отзовите и перевыпустите, затем изучите журналы их использования. Для следующего запуска выделите агенту отдельную рабочую копию и минимальные права.

Источники и дата проверки

Факты проверены 25 июля 2026 года по воспроизводимому тесту Cereblab, полному анализу сетевого трафика, заявлению SpaceXAI о приватности, заявлению Илона Маска об удалении данных, официальному анонсу открытия кода, текущему коду загрузки состояния сессии и документации xAI по ZDR. Хронология исправления дополнительно сверена с The Register и Axios.

Telegram-канал @toolarium