公開APIキーがGemini請求口に、上限も自動で蹴破る
Google MapsのAPIキーは「公開して構わない」と長年案内されてきた。そのキーが今、攻撃者の手でVeo 3やNano Bananaを叩き、開発者の口座から数千ドル単位を引き抜く窓口になっている。
「ブーン、3,000ドル請求しました」から始まる朝
求職者の面接支援ツールPrentusを運営するロッド・ダナン(Rod Danan)氏は今年3月、突然のメール通知でその日が始まった。Googleからの請求は3,000ドル(約47万円)。月50ドルで何年も収まっていた利用料が、一夜で60倍に跳ね上がっていた。
慌てて管理画面を開き、何が課金されているのかを探す。原因の特定に5分かかった。その5分のあいだに、追加で5,000ドル(約78万円)が請求された。
「『なにが起きているんだ?』と思った。アプリを開いて、『何が原因だ? どこから来てる?』と探す。それを突き止めるのは、正直そう簡単じゃない。探しているうちに5分経って、さらに5,000ドル請求された。『なんなんだこれは。金がただ吸い取られていく』と」
ダナン氏が支出上限を設定していたにもかかわらず、APIを止めるまでにクレジットカードへ請求された総額は 10,138ドル (約159万円)。内訳はほぼ全額がVeo 3の動画生成と、Geminiの画像出力トークンだった。氏はこれらのサービスを一度も使ったことがなく、Prentusの機能とも一切関係がない。
Googleはダナン氏に対して「不正の証拠は見つからなかった」と回答し、現時点で返金には応じていない。
キーの「裏口」が後から付け足された
何が起きていたのか。鍵を握るのは、Googleが2023年頃に公にせず行った仕様変更だ。
Google Mapsの公開APIキーは、その名のとおり長年「公開しても安全」と案内されてきた。喫茶店が自店のロゴと地図をサイトに埋め込みたいとき、Googleの公式手順は「APIキーをサイトのフロントエンドに置く」だった。
ところが、Googleはそのキーを Gemini認証情報としても使えるように設計を変えた。プロジェクトでGemini API(Generative Language API)を有効化すると、同じプロジェクト内の既存キーが自動的にGeminiにもアクセスできるようになる。警告も、確認ダイアログも、通知メールもない。
セキュリティ企業Truffle Securityの脅威研究者ジョー・レオン(Joe Leon)氏は今年2月、この構造を「公開IDが知らぬ間に機密権限を獲得する」パターンとして公開した。同社はWebをクロールし、AIzaで始まるGoogleのキー約2,863件が公開状態のまま稼働しており、その多くがGeminiへの認証を通すことを確認している。
あなたが3年前にMapsのキーを発行し、Googleの指示どおりサイトのソースコードに埋め込む。先月、チームの別の開発者がGemini APIを内部プロトタイプのために有効にした。あなたの公開Mapsキーは、今やGeminiの認証情報に変わっている。誰かが拾えば、アップロード済みファイルやキャッシュにアクセスし、AI課金を積み上げられる。誰もそれを伝えてくれない。
レオン氏のレポートでは、Googleの内部プロジェクトに紐づくキーですら、2023年から公開されたまま、後付けでGeminiへのアクセス権を獲得していた事例が示されている。設計上の脆弱性がそのまま被害を生んでいた格好だ。
「上限250ドル」が「10万ドル」へ自動昇格する
ダナン氏の証言には、もう一つの不可解な点がある。彼は支出上限を設定していた。それでも1万ドル超の請求が通った。
シドニーで10年Google Cloud上のアプリを開発してきたイスル・フォンセカ(Isuru Fonseka)氏のケースは、この仕組みをより明確に物語る。
フォンセカ氏のサイドプロジェクトは2年運用してきたが、APIキーは一度も外に出していない。支出上限は 250ドル (約3万9000円)のTier 1にハードロックしていた。
4月29日、彼はクレジットカード会社からの拒否通知メールで目を覚ました。GCPにログインすると、500ドル、1,000ドル、2,000ドルといった請求が連なっており、一部はカード会社の判断で拒否されたが、いくつかは通っていた。Googleサポートに問い合わせても、利用状況を確認できるまで最長36時間かかると言われた。
「いちばん苛立たしいのは、課金できるだけの情報は検知しているのに、何に使われたかを見せるだけの情報はない、というおかしな仕組みだ」
最終的な被害は約 1万7000豪ドル (約188万円)。
問題は、ログイン後に上限がTier 2か3、つまり最大10万ドル相当に書き換わっていたことだ。フォンセカ氏は自分でそれを設定した記憶がない。
Googleは『The Register』への回答で、攻撃者が上限を書き換えたわけではないと説明した。攻撃者の利用そのものが基準を満たし、Google側の自動システムが天井を引き上げたという。具体的には、累計支払いが1,000ドル以上、口座開設から30日以上が経過していれば、Tier 3への自動昇格条件をクリアする。
Googleが3月16日に公表した運用変更では、より低い支払い実績で上位Tierに到達できる仕組みになっており、「利用量と支払い実績の成熟に応じて自動的に次のTierへ昇格する」と説明されている。Tier 3の月額上限は 2万ドルから10万ドルのレンジで設定されている。
つまり、Tier 1の250ドル上限で運用していたつもりの開発者でも、攻撃者がGeminiを叩いて課金条件を満たした瞬間、上限ごと吹き飛ぶ設計になっていた。
| Tier | 自動昇格の条件 | 月額上限 |
|---|---|---|
| Tier 1 | 初期状態 (支払い実績なし) |
250ドル |
| Tier 2 | 累計100ドル支払い + 3日経過 |
2,000ドル |
| Tier 3 | 累計1,000ドル支払い + 30日経過 |
20,000〜 100,000ドル |
| 項目 | ロッド・ダナン氏 | イスル・フォンセカ氏 |
|---|---|---|
| 事業 | 求職者の面接支援 サービスPrentus |
シドニー在住の 個人開発者 |
| 通常の 月額 |
50ドル前後 | 250ドル上限を設定 |
| APIキーの 状態 |
Googleの公式手順に従い サイトHTMLに埋め込み |
外部に一切 公開していない |
| 発生時期 | 2026年3月 | 2026年4月29日 |
| 被害額 | 10,138ドル (約159万円) |
1万7000豪ドル (約188万円) |
| 課金対象 | Veo 3の動画生成 Geminiの画像出力 |
Gemini系API |
利用者が手動で設定した上限と、Googleの自動システムが管理する天井は別系統で動く。前者を守っているつもりでも、後者が気づかぬまま引き上げられる。
「報告すれば、自分の事業が止まる」
ダナン氏もフォンセカ氏も、クレジットカード会社にチャージバックを依頼することは選んでいない。理由は単純だ。
「上限を設定していたって意味がなかった。アラートが届くだけだ。それでもGoogleのAPIは必要なんだ。アプリが動かなくなるから、追い出されるわけにはいかない。Mapsは要る。だからクレジットカード会社に『これは不正だ』と報告するインセンティブが、自分側にない」
このいびつな構図が、被害者の交渉力をさらに削いでいる。Googleからすれば、不正と認定して返金するか、ユーザーが自力で支払うのを待つかの二択でしかなく、後者を選ぶ理由が制度的に温存されている。
Google側は「業界全体の問題であり、Google固有のセキュリティ問題ではない」「APIキーは公開リポジトリに置かないこと、多要素認証を有効にすること、定期的に監査すること」と 利用者側の責任を強調している。同社は、API作成時にAPIの制限を必須化し、MapsとGeminiの両方に使える単一キーをもう作れないようにしたとも説明している。
レオン氏は、Googleが投稿後にいくつかの対策を講じたことを認める。新しいGemini専用APIキー(プレフィックスAQ)が導入され、支出上限の仕組みも整備された。ただし「自動的に上限を引き上げる挙動が、上限機能の意義をいくらか損なっている」とも指摘する。
キーの定義が後ろからすり替わるとき
今回のケースで起きたのは、APIキーという概念そのものが、AIの追加で後ろから書き換えられたことだ。
長年、Mapsのキーは課金識別子に過ぎなかった。攻撃者がそれを盗んでも、地図のロードが多少増えるくらいの被害で済んだ。だからGoogleは「公開しても安全」と言い続けたし、開発者もそれに従った。
そこへGeminiが入ってきた。同じキーが、突然 Geminiの鍵に変わった。古いキーは何も変えていない。変わったのは、キーの後ろにぶら下がっている権限の世界のほうだ。
レオン氏が自身のブログで書いている指摘がそのまま当てはまる。AI機能を既存プラットフォームに後付けする組織が増えるほど、過去に発行された認証情報の攻撃面は、誰も予期しないかたちで広がっていく。
Mapsのキーを公開した3年前の開発者は、Veo 3の請求が後から飛んでくるとは想定していなかった。設計が後ろから変わると、過去の選択も後から意味を変える。
ダナン氏とフォンセカ氏は、いまもGoogleと返金交渉を続けている。
参照元
- Truffle Security - Google API Keys Weren't Secrets. But then Gemini Changed the Rules.
- Google公式ブログ - Giving you more transparency and control over your Gemini API costs
他参照