Инструмент кодирования Grok Build от SpaceXAI оказался под прицелом внимания после того, как исследователь безопасности обнаружил, что его C...

Инструмент кодирования Grok Build от SpaceXAI недавно оказался под пристальным вниманием после того, как исследователь безопасности обнаружил, что его интерфейс командной строки (CLI) загружает весь Git-репозиторий в облачное хранилище, а не только файлы, необходимые для задачи кодирования.
Согласно сообщениям, загруженные данные включали отслеживаемые файлы, полную историю Git, файлы, которые агенту было указано не читать, а также конфиденциальную информацию, удалённую из текущего рабочего дерева, но всё ещё присутствующую в ранних коммитах. Данные отправлялись в бакет Google Cloud Storage, контролируемый xAI.
После публикации результатов расследования загрузка была прекращена. Исследователи заметили, что серверы SpaceXAI начали возвращать следующее:
disable_codebase_upload: true
Илон Маск также заявил, что ранее загруженные пользовательские данные будут полностью удалены. Однако на момент сообщения об инциденте не было возможности независимо подтвердить, были ли удалены все исторические копии.

Инцидент начался с контролируемого сетевого анализа Grok Build CLI.
Исследователь под псевдонимом Cereblab провёл реверс-инжиниринг официального бинарного файла и отследил его сетевой трафик. В ходе теста, направленного на выявление фактического потока данных инструмента, Grok Build упаковал репозиторий в Git-бандл и загрузил его в бакет Google Cloud Storage, связанный с xAI.
Это не ограничивалось лишь несколькими файлами, необходимыми для ответа на запрос.
Согласно сообщениям, захваченный бандл содержал:
Оригинальный отчёт AIbase описывает объём сохраняемых данных как значительно превышающий аналогичные инструменты AI-кодирования, такие как Claude Code.
В одном тесте, описанном Axios, Grok Build загрузил около 5,1 ГБ данных, в то время как сама задача кодирования требовала лишь около 192 КБ. Этот пример иллюстрирует разницу между отправкой контекста, связанного с задачей, и передачей полного архива репозитория.
Загрузка текущего дерева исходного кода уже является серьёзным инцидентом безопасности. Загрузка полной истории Git может нанести ещё больший ущерб.
Разработчики часто удаляют конфиденциальную информацию из последней версии репозитория, полагая, что она исчезла. На самом деле, это значение всё ещё может сохраняться в более старых коммитах, если история не была переписана.
История Git может содержать:
Таким образом, репозиторий может выглядеть чистым в текущем рабочем каталоге, но конфиденциальные материалы всё равно остаются внутри каталога .git.
Вот почему такие инструкции, как «не открывать этот файл», не обеспечивают достаточной защиты, когда инструмент упаковывает репозиторий на уровне Git. Директивы на уровне файлов могут контролировать то, что агент читает во время диалога с моделью, но не могут автоматически阻止 отдельный процесс загрузки, упаковывающий историю репозитория.
Анализ Cereblab определил, что целью был бакет Google Cloud Storage, контролируемый xAI.
Использование Google Cloud не означает, что Google самостоятельно принимает решение о сборе репозиториев. Поставщики облачных хранилищ предоставляют инфраструктуру для клиентов, и, согласно сообщениям, в данном случае контролёром данных или оператором услуг является xAI или SpaceXAI.
Ключевая проблема заключается в том, что данные репозитория покидают машину пользователя и попадают в стороннюю облачную инфраструктуру.
Для корпоративных команд это может поднять вопросы, касающиеся:
Даже если сам облачный провайдер обладает надёжными мерами безопасности, нераскрытая или непреднамеренная передача может нарушить собственные требования корпоративного управления.
После публикации расследования Cereblab снова протестировал CLI.
Сервер вернул:
disable_codebase_upload: true
Загрузка всего репозитория больше не запускалась.
Это, по-видимому, было изменение на стороне сервера, поскольку пользователям не нужно было устанавливать новую версию, чтобы поведение прекратилось. Удалённый конфигурационный флаг отключил процесс упаковки репозитория.
Это различие важно.
Переключатель на стороне сервера может быстро остановить поведение, но также указывает на то, что обработка данных клиентом может зависеть от удалённой конфигурации. Следовательно, организации, оценивающие агентов кодирования, должны проверять фактический сетевой трафик, а не полагаться исключительно на локальные номера версий или статические экраны настроек.
Илон Маск публично ответил, что все пользовательские данные, загруженные до изменения, будут «полностью и безвозвратно удалены», не оставив никаких следов.
SpaceXAI также заявила, что будет уважать выбор конфиденциальности, и что клиенты, подпадающие под соглашения о нулевом хранении данных, не будут сохранять данные отслеживания или кода.
Это важные обещания, но на момент сообщения оставалось несколько нерешённых вопросов:
Удаление может снизить будущие риски, но это не решает автоматически все проблемы безопасности. Если репозиторий содержал активные учётные данные, пользователи должны предполагать, что эти значения могли покинуть локальную среду, и немедленно их сменить.
/privacy не является настоящим исправлениемSpaceXAI изначально направляла пользователей к команде Grok Build CLI:
/privacy
Официальная документация Grok Build описывает /privacy как команду для отображения или изменения статуса конфиденциальности и хранения данных.
Исследователь безопасности обнаружил, что эта настройка контролирует поведение хранения, а не механизм передачи полного бандла репозитория. Другими словами, команда может влиять только на операции SpaceXAI после получения данных, но не является серверным механизмом, предотвращающим отправку репозитория с локальной машины.
Вывод Cereblab был чётким:
/privacy — это контроль хранения на уровне сессии.disable_codebase_upload.Это один из самых важных уроков данного инцидента.
| Проблема контроля | Значение |
|---|---|
| Покидают ли данные устройство? | Контроль передачи или загрузки |
| Сохраняются ли полученные данные? | Контроль хранения |
| Как долго они хранятся? | Политика срока хранения |
| Используются ли для обучения модели? | Политика использования в обучении |
| Может ли пользователь удалить данные? | Контроль удаления |
| Может ли пользователь проверить удаление? | Контроль аудита и гарантий |
Сервис может обещать не хранить данные, но всё равно передавать их для обработки в реальном времени. Это может быть приемлемо в рамках чётко задокументированного корпоративного соглашения, но это не то же самое, что сохранение данных локально.
Пользователям не следует приравнивать «нулевое хранение данных» к «нулевой передаче данных», если только продукт не даёт явных таких гарантий.
Вот перевод на русский язык:
Официальный документ о конфиденциальности xAI
В документе по безопасности API xAI функция «нулевого хранения данных» (ZDR) описывается как функционал корпоративного уровня.
Когда команда API включает ZDR, xAI заявляет, что подсказки, завершения и связанные метаданные обрабатываются в реальном времени, но не сохраняются постоянно на их серверах. В документе также указано, что ответы API будут содержать заголовок x-zero-data-retention, что позволяет приложениям проверять, активна ли ZDR.
Для стандартных сценариев использования API без ZDR xAI сообщает, что запросы и ответы могут временно храниться до 30 дней для аудита злоупотреблений и неправомерного использования.
Эти политики API полезны для справки, но организациям не следует автоматически предполагать, что все продукты Grok, трассировки CLI, каналы передачи файлов или потребительские учетные записи следуют тому же жизненному циклу данных.
Перед использованием Grok Build с частными репозиториями необходимо проверить:
Независимый исследователь безопасности доктор Лукаш Олейник описал масштаб данных:
Данные хранятся слишком долго.
Возможная утечка информации включает:
Риски не ограничиваются злонамеренным использованием.
Большие архивы кода также могут быть скомпрометированы из-за:
Принцип минимизации данных направлен на уменьшение поверхности атаки. Когда требуется лишь несколько файлов, загрузка всего репозитория по умолчанию сложно согласуется с этим принципом.
Команды, которые использовали Grok Build до отключения функции загрузки, должны действовать так, как при любом потенциальном инциденте утечки исходного кода.
Проверьте, где запускался Grok Build.
Запишите:
Не ограничивайте проверку только файлами, которые, как кажется, были открыты агентом.
Используйте одобренные организацией инструменты сканирования ключей для проверки полной истории, а не только содержимого текущей ветки.
Ищите:
Даже если секрет был удален из последнего коммита, его все равно может потребоваться заменить.
Опишите идею одной фразой, и We0 AI создаст сайт-витрину, страницы и CMS, а после запуска поможет привлечь клиентов и трафик.
Одна полная генерация проекта для бесплатной регистрации
Лучше всего попробовать один полный поток генерации и быстро увидеть первый черновик проекта.
Если в период, когда репозиторий был затронут, в истории отслеживаемого репозитория где-либо существовали учетные данные, отзовите или замените их.
Не ждите доказательств того, что кто-то получил доступ к загруженной копии. Замена учетных данных обычно обходится дешевле, чем последующее расследование взлома.
В первую очередь заменяйте учетные данные, предоставляющие доступ к:
После использования репозитория с Grok Build проверьте журналы облачных сервисов, системы управления исходным кодом, CI/CD, баз данных и внутренних сервисов на предмет необычной активности.
Ищите:
Отсутствие подозрительной активности не доказывает, что данные никогда не были скомпрометированы, но помогает оценить непосредственный риск.
Используйте текущую версию Grok Build и проверьте активную конфигурацию.
Официальная документация предлагает:
grok inspect
Эта команда помогает подтвердить, какие источники конфигурации загружаются.
CLI также предлагает:
/privacy
Используйте его для проверки статуса хранения, но помните, что эта команда не должна рассматриваться как доказательство.
Никакие данные не покидают устройство.
Корпоративные пользователи должны запросить письменный ответ, охватывающий:
Публичные обещания удаления полезны, но регулируемым организациям могут потребоваться доказательства, специфичные для учетной записи.
Если репозиторий содержит клиентский код, личные данные, регулируемую информацию или контент, подпадающий под соглашения о конфиденциальности, привлеките соответствующие внутренние команды.
В зависимости от ситуации, это могут быть:
Не принимайте решения об уведомлении об утечке, основываясь только на новостях. Оценивайте на основе собственных фактов воздействия на организацию и применимого законодательства.
Этот инцидент подчеркивает более широкую проблему в области инструментов разработки ИИ.
Агенты кодирования часто требуют широких прав доступа, поскольку им необходимо искать в больших репозиториях, запускать команды, читать документацию и изменять файлы. Эта возможность создает огромные границы конфиденциальности.
Прежде чем одобрить использование помощника по кодированию, команды должны оценить пять аспектов.
Задокументируйте каждый тип данных, который может собирать инструмент:
Проверьте, что на самом деле покидает машину.
Документация поставщика необходима, но сетевое поведение является наиболее убедительным доказательством фактической передачи.
Используйте изолированный тестовый репозиторий с безвредными канареечными значениями, затем проверьте:
Не запускайте инструмент из каталогов, не связанных с проектом.
Отдавайте предпочтение:
Для корпоративных развертываний подтвердите:
Поведение инструмента может измениться из-за автоматических обновлений или удаленных изменений конфигурации.
Повторно тестируйте после:
Когда продукт быстро меняется, одобрение безопасности не должно быть постоянным.
Инструкции агента выполняются на уровне модели или использования инструмента. Отдельные компоненты телеметрии или синхронизации могут не учитывать эти инструкции.
Контроль конфиденциальности должен существовать в самом канале данных.
Поставщики могут утверждать, что отправляют только необходимый контекст, но корпоративным пользователям нужны доказательства.
Полезные гарантии включают:
Удаленная конфигурация может быстро остановить загрузку, но это также означает, что пользователи могут не знать, когда важное поведение изменилось.
Зрелые ответы должны включать:
Даже если SpaceXAI удалит все сохраненные копии, любые учетные данные, содержащиеся в загруженном репозитории, должны быть обработаны в соответствии с их риском раскрытия.
Удаление защищает будущий доступ поставщика к копии, но не меняет сами учетные данные.
Анализ протокольного уровня от Cereblab показал, что CLI загружает весь отслеживаемый Git-репозиторий в виде пакета, включая историю коммитов и файлы, не связанные с текущей задачей кодирования. Эта история может содержать ключи, удалённые из текущей рабочей директории.
Захваченный трафик показал, что загрузка осуществляется в облачное хранилище Google Cloud Storage, контролируемое xAI. Google Cloud является провайдером инфраструктуры; соответствующие продукты и решения по обработке данных относятся к SpaceXAI.
Позднее исследователи заметили, что сервер вернул disable_codebase_upload: true, после чего загрузка всего репозитория перестала запускаться. Это изменение, по-видимому, было выполнено на стороне сервера.
/privacy предотвратить загрузку репозитория?Эта команда управляет настройками конфиденциальности и хранения данных, но Cereblab сообщает, что она не является механизмом остановки загрузки полного репозитория. Пользователи должны различать предотвращение передачи и ограничение хранения после передачи.
Да. Маск публично заявил, что все ранее загруженные пользовательские данные будут полностью удалены. На момент сообщения независимое подтверждение полного удаления не было опубликовано.
Если при использовании Grok Build ключи существовали в отслеживаемом репозитории или его Git-истории, их смена является разумной мерой предосторожности. Удаление копии у провайдера не гарантирует, что учётные данные никогда не были раскрыты или доступны.
xAI описывает ZDR как корпоративную функцию API, которая обрабатывает входные и выходные данные без их сохранения. Это не обязательно означает, что данные никогда не покидают локальное устройство; организациям следует проверять, какие каналы данных Grok Build охватывает эта политика.
Задокументированная функция загрузки всего репозитория была отключена, но каждая организация должна оценить текущую версию, настройки, условия учётной записи, сетевую активность и чувствительность репозитория. Исправление на стороне сервера не заменяет внутреннюю проверку безопасности.
/privacy.Было обнаружено, что Grok Build загружает весь отслеживаемый Git-репозиторий вместе с полной историей в облачное хранилище Google Cloud Storage, контролируемое xAI, даже если для задачи требуется лишь небольшой объём кода.
SpaceXAI отключила функцию загрузки репозитория с помощью серверного флага disable_codebase_upload, а Илон Маск пообещал удалить ранее загруженные данные. Команда /privacy хоть и связана с настройками хранения, не является средством предотвращения передачи репозитория.
Разработчики, использующие затронутую версию CLI, должны выявить соответствующие репозитории, просканировать полную историю Git, сменить потенциально раскрытые учётные данные, проверить логи и, при необходимости, запросить информацию об удалении для конкретной учётной записи.
Ключевой вывод прост: конфиденциальность инструментов ИИ-кодирования должна проверяться на уровне передачи данных, а не на основе подсказок, ярлыков хранения или интерфейса настроек.
Начните с одной фразы и получите полноценный сайт за считанные минуты.