2026年、セキュリティ企業が評価額130億ドルのAIプラットフォーム「Baseten」を評価した。わずか25分で、彼らは内部のコアコードリポジトリの管理者権限を取得した。このほぼ障壁のない侵入プロセスでは、ソフトウェアの脆弱性は最初から最後まで一切使用されなかった。
公開イメージ履歴を漁り、システムの最高権限を奪取
Strixは、自律型ペネトレーションエージェントを開発しているセキュリティ企業である。データの引き渡しを決定する前に、彼らはBasetenに対して認証情報なしの通常の事前スキャンを実施した。偵察の起点は、ソフトウェアのパッケージファイルを保管するコンテナのような役割を果たすコンテナイメージレジストリだった。レジストリ内の1つのプロジェクトは完全に公開されていた。誰でもパスワードなしでファイルリストを表示でき、匿名トークンを申請してデータをダウンロードすることさえ可能だった。
致命的な欠陥は「ビルド履歴」と呼ばれる記録に残されていた。Dockerでソフトウェアをパッケージ化する際、すべてのビルドコマンドはタイムスタンプ付きのレシートのように履歴に刻まれる。ある設定コマンドのステップで、GITHUB_TOKENという名前の変数がプレーンテキストとして直接表示されていた。
開発者はコードのプルプロセスをスムーズにするため、パスワードの代わりにこのトークンを使用していた。公式ドキュメントでは、ビルドパラメータが記録されることが明確に警告されている。しかし、エンジニアは利便性を優先し、変数をコマンドに直接記述してしまった。開発スピードの前にセキュリティ基準は妥協され、業界で知られているレッドラインはいとも簡単に越えられた。
図:Dockerビルド履歴内のトークンとGitHubから返されたアカウント情報。出典:Strix 事故复盘
3年間未更新のトークンがコアリポジトリの管理権限を譲渡
この露出した手がかりを辿り、StrixはBasetenの内部組織に属するアクティブなトークンを入手した。このトークンは、7つの内部リポジトリへのアクセス権を彼らに付与した。そのうち3つの高リスク領域には、管理者権限とコードをプッシュする最高権限が付随していた。これら3つのノードは、コード開発から顧客展開までの完全なサプライチェーンを形成していた。
製品のメインリポジトリが侵害されると、侵入者はAIモデルを実行するコードに悪意のあるロジックを密かに仕込むことができる。GitOpsリポジトリは本番環境へ直結する高速道路であり、顧客名で分類されたサブディレクトリさえ含まれていた。配布ツールチェーンが制御されることは、そのツールを使用するすべての開発者のコンピュータにバックドアを開くことと同じである。
記録されたタイムスタンプは2023年3月3日で止まっていた。2026年7月に発見されるまで、このトークンは全く制限なく使用できた。3年も超過して機能し続けた認証情報の破壊力は、巧妙に作られたトロイの木馬をはるかに凌ぐ。企業は外部からの攻撃を防ぐためにファイアウォールに巨額の資金を投じるが、長年更新されていない内部の権限は見て見ぬふりをしている。
図:GitHubから返されたトークンスコープと所属組織。出典:Strix 事故复盘
130億ドルの教訓:1回のローカルチェックで防げた
報告を受けた後、Basetenのセキュリティチームは迅速に対応し、翌日の午後にはトークンをローテーションし、公開プロジェクトをロックした。130億ドルの評価額を持つ同社は、被害の拡大を阻止する上で必要な決断力を示した。認証情報はすでにビルド履歴に漏洩していたため、この時点でビルドファイルを修正しても、ダウンロード済みのイメージを回収することはできない。唯一の解決策は、ソースからトークンを無効化することだった。
事故の直接的な原因は、エンジニアがgit configコマンドを使用して、トークンを含むURLをグローバル設定に書き込んだことだ。標準的な手法は、一時的にマウントされた暗号化された認証情報を使用して認証を完了させることである。トークンは「読んだら燃やす」ものであり、ハードドライブや履歴記録に残してはならない。
このレベルの認証情報漏洩を防ぐには、コードを公開する前にローカルで単純なキーワードマッチングフィルタを1回実行するだけでよい。開発プロセスから強制的なレビュー手順が欠落すると、初歩的なミスが何の妨げもなく本番環境に到達してしまう。
システム防衛線の崩壊は、エンジニアの日常的な習慣に起因する
防御側の警戒が緩みやすいのは、往々にして忘れ去られた過去の領域である。チームはコアアプリケーションや最新のコードリポジトリに目を向けるが、メンテナンス期間をとっくに過ぎたコンテナイメージのことは忘れがちだ。イメージのコンテンツファイルをスキャンしたとしても、そのビルド履歴のチェックを怠れば、あの致命的なトークンは見逃されたままになる。
この侵入は、完全に人間によって設定された3つの欠陥(公開された読み取り可能なリポジトリ、誤って記録されたパラメータ、そして3年間未更新のトークン)を悪用したものだ。圧倒的な未知の技術は存在せず、門番自らが開け放ったドアがあっただけだ。
AIサプライチェーンのセキュリティの弱点は、エンジニアの最も基本的な設定や衛生習慣に潜んでいることが多い。130億ドル規模の企業の切り札を25分で奪ったという事実は、最も明白なセキュリティのボトムラインを示している。どれほど高価なシステム保護であっても、省略されたたった1回の検査コマンドの代わりにはならない。
参考リンク:
- Strix 事故复盘