クラウドの請求先を乗っ取られて AI 利用料を払わされない(GCP の LLMjacking 事例)
攻撃者は自分の GCP プロジェクトを被害組織の請求先アカウントに結び付け、Gemini の利用料だけを押し付ける。AI への入出力は攻撃者のプロジェクトに残るので、自組織の監査ログを見ても中身はわからない。請求先の管理権限・組織ポリシー・古いプロジェクトを見張る。
手口の流れ(Wiz の報告)
- 検索広告から偽の Google ログイン画面に誘導し、特権利用者の認証情報と MFA コードを盗んで GCP に入る(広告は報告後に Google Ads が削除)。
- 利用の少ない既存プロジェクトで Gemini API を有効にし、サービスアカウントと API キーを作る。
- 社外アカウントへの権限付与を防ぐ「ドメイン制限」の組織ポリシーを削除し、自分の Gmail アカウントを請求先に追加して管理権限を付ける。
- 外部(攻撃者側)プロジェクトの費用を被害組織の請求先へ付け替える。
- 正規の請求先管理者を閲覧専用に降格し、権限の取り消しやプロジェクトの切り離しを妨害する。
初期侵入から 24〜48 時間で数万〜数十万ドルの不正な利用料が発生した例がある。
備え
- 請求先アカウントの管理者を最小限にし、変更を通知させる。 請求先の IAM(
roles/billing.adminなど)の付与・剥奪を監査ログのアラート対象にする。 - ドメイン制限の組織ポリシー(許可するドメインだけに IAM メンバーを限定するポリシー)を必ず有効にし、その変更・削除をアラートにする。
- 予算アラートを小さめの閾値で設定する。 数日で数十万ドルに達する前に気づけるよう、急増を検知する。
- 使っていないプロジェクトは削除するか、不要な API を無効にする。 古いプロジェクトで想定外に Gemini API が有効化された、サービスアカウントや API キーが作られた、をアラートにする。
- 特権利用者はフィッシング耐性のある認証(パスキー・セキュリティキー)にする。 偽ログイン画面で MFA コードごと盗まれる経路を断つ。広告経由でログイン画面を開かない運用も合わせる。
侵害を疑ったときに調べること
- 不審なログインと再認証、社外ドメインの IAM メンバーの追加
- 組織ポリシーと請求先管理権限の変更、正規管理者の降格
- 請求先に紐付いたプロジェクトの一覧(自組織にないプロジェクトが紐付いていないか)