概要
- Google APIキー は長年「秘密情報ではない」とされてきたが、 Gemini API の登場で状況が一変
- 公開済みAPIキー がGemini経由で機密データにアクセス可能となる重大な権限昇格リスク
- 2,800件超のAPIキー がインターネット上で発見され、悪用可能な状態
- Google自身も被害者 となるほどの設計上の問題
- 即時の監査と運用見直し が必要
Google APIキーとGeminiによる権限昇格問題
- Google APIキー( AIza...形式)は、これまでMapsやFirebaseなど 公開用途 で利用されてきた
- 公式ドキュメント でも「APIキーは秘密情報ではない」と明記
- 例:Firebaseのセキュリティチェックリスト、Google MapsのJavaScript埋め込み手順
- 本来は プロジェクト識別子や課金管理 のためのトークン設計
- しかし、 Gemini API (Generative Language API)が有効化されると、既存APIキーが 自動的にGeminiの認証情報としても機能
- 開発者への 通知や警告なし で権限が拡張される
- その結果、 公開済みAPIキー でGemini経由の機密データ取得や課金が可能となる
問題の本質
- Retroactive Privilege Expansion(遡及的権限拡張)
- 過去に作成・公開したMaps用キーが、後からGemini用の「秘密鍵」へと変貌
- Insecure Defaults(安全でないデフォルト設定)
- 新規APIキーはデフォルトで「無制限」設定、全API(Gemini含む)へのアクセスが可能
- Key Separationの欠如
- 公開用/秘密用の明確なキー分離がなく、同一形式で両方を担う設計
- 安全な初期値の欠落
- GCPのAPIキー作成パネルのデフォルト設定がGemini等の機密APIにもアクセス許可
攻撃シナリオと被害範囲
- 攻撃者は WebページのソースからAPIキーを取得 し、Gemini APIにリクエスト
- 例:curl "https://generativelanguage.googleapis.com/v1beta/files?key=$API_KEY"
- 成功時、以下の被害が発生
- 機密データ取得 (アップロードファイル、キャッシュデータ等)
- 課金被害 (LLM利用による高額請求)
- リソース枯渇 (APIクォータ消費による正規サービス停止)
- 2,863件 の公開APIキーが実際に悪用可能状態で発見
- 金融機関、セキュリティ企業、大手リクルート会社、 Google自身 も含む
実例:Google自身の公開キー
- Google製品の公開Webページに埋め込まれたAPIキーでGemini APIへアクセス可能
- 本来Maps専用だったキー が、Geminiの機密エンドポイントにも有効化
- 開発者の認識外で特権が拡張 されていた事実
Googleの対応と今後の方針
- 報告当初は「意図した挙動」として対応が遅れる
- 証拠提示後に問題を認識し、修正対応を開始
- 流出キー検出パイプラインの拡張
- Gemini APIへのアクセス制限
- 根本原因の修正計画
- 今後のロードマップ
- AI Studio経由の新規キーはGemini限定アクセスに
- 流出キーの自動ブロック
- 流出時の積極的通知
- 既存キーの監査・通知は困難だが、今後の改善が期待される
直ちに取るべき対策
- 全GCPプロジェクトでGemini APIの有効化状況を確認
- GCPコンソール > APIs & Services > 有効なAPI一覧で"Generative Language API"を確認
- APIキーの設定監査
- APIs & Services > Credentialsで各APIキーの制限状況を確認
- 警告アイコン 付き(無制限設定)
- Gemini APIが許可サービスに含まれる キー
- APIs & Services > Credentialsで各APIキーの制限状況を確認
- 公開状態のキーがGeminiアクセス権を持っていないか確認
- 特に古いキーは要注意
- 該当する場合は 即時ローテーション(再発行・差し替え)
- TruffleHog等のツールでコード・CI/CD・Web資産をスキャン
- trufflehog filesystem /path/to/your/code --only-verified
まとめと教訓
- AI機能追加による既存認証基盤のリスク拡大 への注意喚起
- 公開識別子の「静かな特権昇格」 はGoogleに限らず今後も発生しうる
- 設計段階でのキー分離・最小権限・安全なデフォルト の重要性
参考リソース
- Firebase Security Checklist
- Google Maps JavaScript API Key Guide
- TruffleHog
- Webinar: Google API Keys Weren't Secrets. But then Gemini Changed the Rules.