SpaceXAIのGrok Buildコーディングツールは、セキュリティ研究者により、CLIがコーディングタスクに必要なファイルのみではなく、Gitリポジトリ全体をクラウドストレージにアップロードしていることが発見され、問題視されている。報告によると、アップロードされたデータには...

SpaceXAIのGrok Buildコーディングツールが、セキュリティ研究者により、そのコマンドラインツール(CLI)がエンコードタスクに必要なファイルのみを送信するのではなく、Gitリポジトリ全体をクラウドストレージにアップロードしていることが発見され、最近精査の対象となっています。
報告によると、アップロードされたデータには、追跡対象のファイル、完全なGit履歴、エージェントに読み取らないよう指示されたファイル、および現在のワーキングツリーから削除されたものの、過去のコミットに残っている機密情報が含まれていました。データの送信先は、xAIが管理するGoogle Cloud Storageバケットでした。
調査結果の公表後、アップロードは停止されました。研究者は、SpaceXAIのサーバーが次のようなレスポンスを返し始めたことを確認しています。
コードベースアップロードの無効化:true
イーロン・マスクはまた、以前にアップロードされたユーザーデータは完全に削除されると述べています。しかし、この出来事が報じられた時点では、すべての履歴のコピーが削除されたかどうかを独立して公に確認することはできませんでした。

このインシデントは、Grok Build CLIの制御されたネットワーク分析から始まりました。
Cereblabという仮名の研究者が公式バイナリをリバースエンジニアリングし、そのネットワークトラフィックを監視しました。このツールの実際のデータフローを明らかにすることを目的としたテストにおいて、Grok BuildはリポジトリをGitバンドルにパッケージ化し、xAIに関連付けられたGoogle Cloud Storageバケットにアップロードしました。
これは、プロンプトに応答するために必要な少数のファイルに限定されるものではありませんでした。
報告によると、キャプチャされたバンドルには以下が含まれていました。
元のAIbaseレポートでは、その保持範囲はClaude Codeなどの類似のAIコーディングツールよりもはるかに大きいと説明されています。
Axiosが報じたテストでは、Grok Buildは約5.1 GBのデータをアップロードしましたが、エンコードタスク自体に必要なのは約192 KBのみでした。この例は、タスクに関連するコンテキストを送信することと、完全なリポジトリのアーカイブを送信することの違いを示しています。
現在のソースツリーをアップロードするだけでも、すでに深刻なセキュリティインシデントです。完全なGit履歴をアップロードすることは、さらに大きな害を及ぼす可能性があります。
開発者は、リポジトリの最新バージョンから機密情報を削除し、それが消えたと考えることがよくあります。実際には、履歴が書き換えられない限り、その値は古いコミットに残っている可能性があります。
Git履歴には以下が含まれる可能性があります。
したがって、リポジトリは現在のワーキングディレクトリではクリーンに見えるかもしれませんが、機密性の高い材料は依然として .git ディレクトリ内に残ります。
このため、ツールがGitレベルでリポジトリを個別にパッケージ化する場合、「このファイルを開かないでください」といった指示は十分な保護を提供できません。ファイルレベルの権限指示は、モデルとの対話中にエージェントが読み取る内容を制御できますが、別個のアップロードプロセスがリポジトリの履歴をパッケージ化することを自動的に防ぐことはできません。
Cereblabの分析により、ターゲットはxAIが管理するGoogle Cloud Storageバケットであることが特定されました。
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公式プライバシードキュメントの説明
xAIのAPIセキュリティドキュメントでは、ゼロデータ保持(ZDR)をエンタープライズ向け機能として説明しています。
APIチームがZDRを有効にすると、xAIは、プロンプト、補完内容、および関連するメタデータがリアルタイムで処理されるものの、サーバーに永続的に保存されることはないと述べています。また、ドキュメントでは、APIレスポンスに x-zero-data-retention ヘッダーが含まれ、アプリケーションがZDRが有効であることを確認できると説明されています。
ZDRが有効になっていない標準的なAPI使用シナリオでは、xAIは、リクエストとレスポンスが不正使用や誤用の監査を目的として最大30日間一時的に保存される可能性があると述べています。
これらのAPIポリシーは参考になりますが、各組織は、すべてのGrok製品、CLIトレース、ファイル転送チャネル、またはコンシューマアカウントが同じデータライフサイクルに従うと自動的に想定すべきではありません。
Grok Buildを使用してプライベートリポジトリを処理する前に、以下を確認してください。
独立系セキュリティ研究者であるルカシュ・オレイニク博士は、データ規模について次のように説明しています——
データ保持期間が長すぎる。
漏洩する可能性のある情報は次のとおりです。
リスクは悪意のある使用に限定されません。
大規模なコードアーカイブは、以下によっても漏洩する可能性があります。
データ最小化の原則は、攻撃対象領域を減らすことを目的としています。少数のファイルのみが必要な場合に、リポジトリ全体をデフォルトでアップロードすることは、この原則と一致しにくいです。
アップロード機能が無効化される前にGrok Buildを使用していたチームは、潜在的なソースコード漏洩インシデントに直面した場合と同様に行動する必要があります。
Grok Buildが実行された場所を確認します。
記録:
エージェントが開いたと思われるファイルのみに調査を限定しないでください。
組織が承認したシークレットスキャンツールを使用して、現在のブランチの内容だけでなく、完全な履歴を確認します。
探すもの:
シークレットが最新のコミットから削除されていても、ローテーションが必要な場合があります。
アイデアを一文で入力するだけで、We0 AI が紹介サイト、ページ、CMS を生成し、公開後の顧客獲得と流入拡大を支援します。
無料登録で完全なプロジェクトを 1 つ生成
1 つの完全な生成フローを試し、最初のプロジェクトのドラフトをすぐに確認するのに最適です。
影響を受けた期間中に、追跡対象のリポジトリ履歴内のどこかに資格情報が存在した場合は、それを無効化またはローテーションしてください。
アップロードされたコピーへのアクセスを示す証拠を待ってはいけません。資格情報のローテーションは、通常、インシデント発生後の調査よりも低コストです。
以下へのアクセスを提供する資格情報を優先的に処理します。
リポジトリがGrok Buildと共に使用された後、クラウド、ソースコード管理、CI/CD、データベース、および内部サービスログに異常なアクティビティがないか確認します。
探すもの:
不審なアクティビティがないことはデータが決して漏洩しなかったことを証明するものではありませんが、当面のリスクを評価するのに役立ちます。
現在のバージョンのGrok Buildを使用し、アクティブな設定を確認します。
公式ドキュメントでは、以下が提供されています。
grok inspect
このコマンドは、どの設定ソースが読み込まれているかを確認するのに役立ちます。
CLIは以下も提供します。
/privacy
これを使用して保持状態を確認しますが、このコマンドを証拠としてみなすべきではないことに注意してください。
デバイスからデータは送信されません。
エンタープライズユーザーは、以下をカバーする書面による回答を要求する必要があります。
公にされた削除の約束は有用ですが、規制対象の組織はアカウント固有の証拠を必要とする場合があります。
リポジトリに顧客コード、個人データ、規制対象情報、または秘密保持契約の対象が含まれている場合は、適切な内部チームを関与させてください。
状況に応じて、関係するチームは以下を含む可能性があります。
ニュース報道のみに基づいて違反通知の決定を下さないでください。組織自身の露呈した事実と適用法に基づいて判断してください。
今回のインシデントは、AI開発ツールの分野におけるより広範な問題を浮き彫りにしています。
コーディングエージェントは、大規模なリポジトリの検索、コマンドの実行、ドキュメントの読み取り、ファイルの変更を必要とするため、広範なアクセス権限を要求することがよくあります。この能力は、巨大なプライバシー境界を形成します。
コーディングアシスタントの使用を承認する前に、チームは5つの側面を評価する必要があります。
ツールが収集する可能性のあるすべてのデータカテゴリを記録します。
実際にマシンから送信されるものをテストします。
ベンダーのドキュメントは必要ですが、ネットワーク動作は実際の転送の最も強力な証拠となります。
無害なカナリア値が含まれる隔離されたテストリポジトリを使用し、以下を確認します。
関連のないプロジェクトのディレクトリからツールを実行しないでください。
以下を優先します。
エンタープライズ導入の場合、以下を確認します。
ツールの動作は、自動アップデートやリモート設定の変更により変化する可能性があります。
以下の後に再テストします。
製品が急速に変化する場合、セキュリティ承認は永続的であるべきではありません。
エージェントの指示は、モデルまたはツールの使用レイヤーで動作します。個別のテレメトリまたは同期コンポーネントは、これらの指示を考慮しない場合があります。
プライバシー制御は、データパイプライン自体に存在する必要があります。
ベンダーは、必要なコンテキストのみを送信すると主張できますが、エンタープライズユーザーは証拠を必要とします。
有用な保証には以下が含まれます。
リモート設定によりアップロードを迅速に停止できますが、ユーザーは重要な動作がいつ変更されたかを知らない可能性があります。
成熟した対応には以下を含める必要があります。
SpaceXAIが保存されたすべてのコピーを削除したとしても、アップロードされたリポジトリに含まれていた資格情報は、その露出リスクに基づいて処理される必要があります。
削除は、ベンダーのコピーへの将来のアクセスを保護しますが、資格情報自体を変更するものではありません。
Cereblab によるプロトコルレベルの分析によると、CLI は追跡対象の Git リポジトリ全体をバンドルとしてアップロードしており、コミット履歴や現在のコーディングタスクに関係のないファイルも含まれていました。この履歴には、現在の作業ディレクトリから削除された秘密鍵が含まれている可能性があります。
キャプチャされたトラフィックによると、xAI が管理する Google Cloud Storage バケットにアップロードされていました。Google Cloud はインフラプロバイダーであり、関連する製品およびデータ処理の決定は SpaceXAI に帰属します。
その後、研究者はサーバーが disable_codebase_upload: true を返すようになったことを確認し、以降、リポジトリ全体のアップロードは発生しなくなりました。この変更はサーバーサイドで行われたようです。
/privacy コマンドでリポジトリのアップロードを防げるのか?このコマンドはプライバシーと保持設定を制御するものですが、Cereblab の報告によれば、リポジトリ全体のアップロードを停止する仕組みではありません。ユーザーは転送を防ぐことと、転送後の保持を制限することを区別する必要があります。
はい。マスク氏は、以前にアップロードされたすべてのユーザーデータを完全に削除すると公に表明しました。現時点では、完全削除の独立した検証は公表されていません。
Grok Build を使用中に、追跡対象のリポジトリまたはその Git 履歴に秘密鍵が存在していた場合、ローテーションは慎重な対応策です。ベンダー側の保存コピーを削除しても、資格情報が露出またはアクセスされていないとは限りません。
xAI は ZDR をエンタープライズ API 機能として説明しており、入力を保持せずに処理することを指します。これは必ずしもデータがローカルデバイスから送信されないことを意味するわけではなく、組織は Grok Build のどのデータ経路が対象かを確認する必要があります。
報告されたリポジトリ全体のアップロード機能は無効化されましたが、各組織は現在のバージョン、設定、アカウント規約、ネットワーク動作、およびリポジトリの機密性を評価する必要があります。サーバーサイドの修正は内部のセキュリティレビューに代わるものではありません。
/privacy を含む CLI コマンドの公式ドキュメント。Grok Build は、タスクに少量のコードしか必要ない場合でも、追跡対象の Git リポジトリ全体と完全な履歴を xAI 管理の Google Cloud Storage バケットにアップロードしていたことが判明しました。
SpaceXAI はサーバーサイドの disable_codebase_upload フラグによりリポジトリアップロード機能を無効化し、イーロン・マスクは以前にアップロードされたデータを削除することを約束しました。/privacy コマンドは保持設定に関与しますが、リポジトリ転送を防ぐ制御手段ではありません。
影響を受ける CLI を使用していた開発者は、該当リポジトリを特定し、完全な Git 履歴をスキャンし、露出した可能性のある資格情報をローテーションし、ログをレビューし、必要に応じてアカウント専用の削除情報を要求する必要があります。
核心的な教訓は単純です。AI コーディングツールのプライバシーは、データ転送レベルで検証されなければならず、プロンプトや保持ラベル、設定画面だけから推測してはならないということです。