概要
- Strix という自律型ハッキングエージェントによる Baseten のセキュリティ診断
- 25分でGitHub管理者トークン を発見し、重大な脆弱性を特定
- Basetenの 迅速な対応 とトークンの無効化
- Dockerイメージのビルド履歴 に埋もれた機密情報の危険性
- 自社インフラ でも同様の点検が必要
BasetenへのStrixによるセキュリティ診断
- Baseten は業界でも信頼される推論サービスプロバイダで、 時価総額130億ドル
- Strix は自律型ハッキングエージェント、自社と顧客データの安全確保のため事前診断を実施
- Black boxテスト として、認証情報やソースコードなしで*.baseten.co全体をスキャン
- 約 25分後、 basetenbotのGitHubパーソナルアクセストークン を発見
- このトークンは Basetenの社内主要リポジトリ、GitOps、Homebrew tap、顧客ごとのプライベートリポジトリへの 管理・書き込み権限 を持つ
- トークンは 2023年3月作成、2026年7月発見時点で有効
- Basetenのセキュリティチームは 迅速かつ専門的に対応、翌日にはプロジェクトの非公開化とトークンのローテーションを完了
Strixが発見した脆弱性の詳細
- Harborレジストリ (gcp-us-east4-zlw.registry.baseten.co)に パブリックなプロジェクト を発見
- 認証不要でイメージリスト取得・ダウンロードが可能
- baseten/baseten-app イメージ内に AWSキー や GitHubトークン を検出
- Dockerイメージのビルド履歴 (history[].created_by)に GITHUB_TOKEN が直接記録
- RUNコマンド でトークン値が展開され、ビルド履歴に残存
- docker history --no-trunc やconfig blobの history[].created_by で確認可能
- トークンは basetenlabs組織 に属し、 repoスコープ で主要リポジトリに admin/push権限
- 証拠保全のため、リポジトリの内容変更やクローンは未実施
なぜトークンがイメージに残ったのか
- プライベート依存関係の取得のため、 Dockerfileでビルド引数としてトークンを渡す設計
- 例:
ARG GITHUB_TOKEN RUN GITHUB_TOKEN=${GITHUB_TOKEN} bash -c '...'
- 例:
- Dockerはビルド引数の値を履歴に記録 する仕様
- git config --global コマンドで認証付きURLがイメージ内に保存される二重の問題
- BuildKitのsecret mount や一時認証の活用が推奨
- 古いイメージの再配布リスク、トークンの失効も必須
Strixによる自律的な診断プロセス
- 公開レジストリの検出→イメージ取得→機密情報の自動検出→権限確認 まで一貫して自動実行
- HarborやGitHubトークン など、事前知識なしで発見
- 25分で重大な管理者権限トークンに到達
- AI攻撃の脅威 に対抗するには、 自社で定期的に自動診断 を実施する必要
Basetenへの脆弱性報告と対応
- 2026年7月13日夜 :Basetenへトークン・公開プロジェクト・権限を報告
- 7月14日朝 :Harborプロジェクトを非公開化
- 7月14日午後 :トークンのローテーションと削除確認
- 7月17日 :残りの指摘事項もクローズ
- 9月 :公開開示予定を通知、Basetenから感謝の品も受領
コンテナ運用者への推奨事項
- 公開範囲の再点検 :認証なしでpull可能なイメージや古いタグ・プロジェクトの確認
- ビルド履歴の精査 :
docker history --no-truncやconfig blobのhistory[].created_by - ビルド引数での機密情報渡し禁止、 secret mount や一時認証の利用
- トークン権限の最小化・有効期限設定
- Strixのような自動診断ツールの活用、AI攻撃に備える体制構築
まとめ:AI時代のセキュリティ対策
- AIエージェントによる攻撃は現実的な脅威
- 自社インフラも定期的な自動診断が必須
- Dockerイメージのビルド履歴や公開レジストリ は盲点になりやすい
- 機密情報の管理・トークンの失効・権限管理 を徹底
- 攻撃者より先に自らの脆弱性を発見・修正する文化 の重要性