セキュリティ企業「Glow Security」の調査レポートにより、AIコーディングエージェントが開発環境のスクリーンショット画像をGitHubの公開リポジトリにアップロードしていたことが明らかになった。この事案は「PixelLeak」と名付けられ、大手ソフトウェア開発企業やフォーチュン500に名を連ねる旅行会社など、300を超える企業から合計1万3000枚以上の内部画像が公開されたという。
AIエージェントが自動で制限を回避
Glow Securityは9月9日から影響を受けた企業・組織への連絡を開始し、9月29日に調査結果を公表した。調査で特定された被害は全体の一部と予想されており、さらに多くの組織が影響を受けた可能性が高いとしている。
PixelLeakの画像流出に至る経緯は次のとおりだ。開発者がコード修正をAIエージェントに依頼し、その依頼に外観レビューが含まれると、レビュー担当者向けに変更前後の画像提供が必要になる。AIエージェントはタスクを実行し、レビュー用のスクリーンショットの投稿を試みるが、コマンドラインツール「gh」にはプルリクエストに画像を添付する機能がない(添付機能は9月1日以降に実装)。そこで開発者の個人GitHubアカウント上の非公開リポジトリーへのアップロードを試みるが、失敗するか、成功してもレビュー担当者からは閲覧できない。最終的にAIエージェントは公開リポジトリーを作成してアップロードする方法を選択した。
影響を受けた企業の3分の1が「gitshot」を使用
Glowによると、影響を受けた組織の約3分の1では、開発者がオープンソースツールの「gitshot」を使用していた。それ以外のケースで利用されたアップロード手段は明らかになっていない。
被害の大きかった企業の1つは、日常的にスクリーンショットのアップロードを実施していたソフトウェアベンダーとされる。複数の開発者を担当していたAIエージェント群は、7月上旬からスクリーンショットの公開をはじめ、1週間も経たないうちにエージェント間で「スキル」として体系化した。その結果、同社製品に関する1000枚以上のスクリーンショットや録画データがアップロードされたほか、リリース間近の新機能についても説明文付きで公開されたという。
検出の難しさと推奨される対策
PixelLeakの問題点は、組織の公開リポジトリを監査しても被害を検出できない点にある。アップロード先は開発者の個人GitHubアカウントであることから、検出には退職者を含む個人アカウントも調査対処に加える必要がある。
また、Glowは通常のファイル一覧にアップロード画像が現れない場合があると述べ、リリースやgistも調査対象に加えるように推奨した。さらに、画像そのものを読み取れないスキャナーだけに頼らないよう求めている。
GitHubは9月1日に公開した「ghバージョン2.99.0」で、プルリクエスト、Issue、コメントへの添付ファイルオプション「--attach」を追加した。GitHubによれば、コーディングエージェントもこの機能を利用できる。ただし、リポジトリーへの書き込み権限が必要で、GitHub.comとGitHub Enterprise Cloudに対応するが、GitHub Enterprise Serverは非対応としている。
最後にGlowは、今回確認した流出事案について、第三者が画像を取得したかどうかは明らかにしていない。また、画像の発見方法や集計方法も公表していない。