0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Black October 後に AI APIキーをローテーションする方法(OpenAI / Anthropic / xAI / Google)

0
Posted at

この記事は 2026年11月1日時点の公開情報をもとにしています。各社の管理画面の名前や場所は変わることがあるので、最新の公式ドキュメントもあわせて確認してください。

TL;DR

  • 2026年10月、AI 開発プラットフォームへの攻撃が続き、Wiz はこれを「Black October」と呼んでいます。10月中に少なくとも9社が侵害を公表しました。
  • 狙われているのは、プラットフォームに保存された環境変数、特に AI の APIキー です。盗まれたキーは転売され、不正利用されています(いわゆる LLMJacking)。
  • Northflank は 10月30日、「すべての環境変数は復号されたものと考え、すべてのキーを無効化・ローテーションしてください」と案内しています。
  • 該当するサービスにキーを置いていたなら、「新しいキーを発行 → アプリを差し替え → 古いキーを削除 → 利用状況と請求を確認」 の順で、今日中に対応してください。

1. 何が起きたか

Wiz のブログ(2026年10月30日)によると、10月中に侵害を公表した AI 開発プラットフォームは少なくとも次の9社です(日付は公表日、現地時間)。

公表日 サービス
10月6日 Fireworks AI
10月9日 Andromeda
10月14日 Zeabur
10月15日 Lightning AI
10月16〜17日 OpenCode
10月20日 Railway
10月23日 Warp
10月28日 CommandCode
10月30日 Northflank

Wiz によると、公開されている報告はいずれも、保存された環境変数、特に AI へのアクセス権を持つものを狙っています。盗まれたキーはまず少数の呼び出しで有効かどうかを確かめられ、数日後に大量に使われた例が報告されています。Wiz が調べた2件では、キーが止められるまでの間に大量の呼び出しが行われ、正規の価格で計算すると合計で10万ドルを超える利用額になったと見られています。

Northflank のステータスページ(10月30〜31日)の要点:

  • すべての環境変数は復号されたものと考え、ワークロード・シークレットグループ・グローバルシークレットのすべてをローテーションする
  • アドオンの公開アクセスを有効にしている場合は無効にする
  • Northflank に登録した AI の APIキーの不正利用がユーザーから報告されている
  • 発行元でキーを無効化して新しいキーを発行し、AI プロバイダーの利用状況と請求の記録を確認する
  • 不審な利用は、Northflank のサポートと各プロバイダーに報告する

2. まず確認すること:どこにキーを置いていたか

次のような場所に AI の APIキーを置いていないか、一覧にします。

  • 上の表のサービス(環境変数、シークレット、ビルド設定)
  • そのほかの PaaS・CI/CD(GitHub Actions のシークレットなど)・サーバーの .env
  • ローカルの設定ファイル、エディタや AI コーディングツールの設定
  • 社内チャットやドキュメントに貼ったもの

上の表のサービスに置いていたキーは、使われた形跡がなくても漏れたものとして扱います。

3. 共通の手順(どのプロバイダーでも同じ)

  1. 新しいキーを発行する。 用途ごとに分け、権限やプロジェクトの範囲を必要最小限にします。
  2. アプリ・サーバー・CI のシークレットを新しいキーに差し替え、再デプロイする。
  3. 動作を確認してから、古いキーを削除(無効化)する。 古いキーを先に消すと止まります。逆に、新しいキーを入れたまま古いキーを残すと、対策になりません。
  4. 利用状況と請求を確認する(5章)。
  5. 新しいキーは、侵害されたサービスに戻さない。 そのサービスが原因と対策を公表するまでは、別の保存場所を使います。

4. プロバイダーごとの手順

OpenAI

  1. OpenAI Platform の API keys ページ(https://platform.openai.com/api-keys )を開きます。
  2. 新しいキーを作成します。プロジェクト単位のキーを使い、必要なら権限を制限します。
  3. アプリを差し替えたら、古いキーを Revoke(削除)します。
  4. Usage ページで、見覚えのないモデル・時間帯の利用がないか確認します。プロジェクトに利用上限(予算)を設定できる場合は設定します。

Anthropic(Claude API)

  1. Claude Console の API Keys のページ(Settings → API Keys)を開きます。
  2. 新しいキーを作成します。ワークスペースを分けている場合は、用途に合ったワークスペースで作ります。
  3. 差し替えたら、古いキーを削除します。
  4. Usage と Cost のページで利用状況を確認し、ワークスペースの利用上限を見直します。

Amazon Bedrock 経由で Claude を使っている場合は、AWS の IAM アクセスキーが対象です。Wiz の事例はこちらでした。IAM でアクセスキーを作り直して古いものを無効化し、CloudTrail で InvokeModel などの不審な呼び出しを確認してください。Wiz の事例では、global.* のクロスリージョン推論プロファイルを許可していたキーで、より大量の呼び出しが通っていました。キーのポリシーで、使うモデルとリージョンを絞っておきます。

xAI(Grok API)

  1. xAI Console(https://console.x.ai )の API Keys のページを開きます。
  2. 新しいキーを作成します。使うモデルやエンドポイントを制限できる場合は制限します。
  3. 差し替えたら、古いキーを削除します。
  4. 利用状況と請求(Billing)のページで、見覚えのない利用やクレジットの減りがないか確認します。

Google(Gemini API / Google Cloud)

  1. Google AI Studio の APIキーのページ(https://aistudio.google.com/apikey )、または Google Cloud コンソールの「API とサービス → 認証情報」を開きます。
  2. 新しいキーを作成し、APIの制限(Generative Language API など、使う API だけに絞る)と、可能ならアプリケーションの制限(IP アドレスなど)を設定します。
  3. 差し替えたら、古いキーを削除します。
  4. Cloud Billing のレポートで、Gemini API の費用が急に増えていないか確認します。予算アラートを設定していなければ設定します。

サービスアカウントキー(JSON)を環境変数に置いていた場合は、そのキーも削除して作り直します。

5. 利用状況と請求を確認する

  • 各プロバイダーの Usage / Billing で、ふだん使わないモデル、深夜などの時間帯、急な増加がないかを見ます。
  • 利用上限、予算アラート、プリペイドクレジットの自動チャージを見直します。自動チャージは、不正利用されたときの被害を大きくします。
  • 不審な利用があれば、各プロバイダーのサポートと、キーを保存していたサービスに報告します(Northflank もこれを案内しています)。
  • 請求について問い合わせるときのために、確認した日時と画面のスクリーンショットを残しておきます。

6. シークレットスキャンで「ほかに漏れていないか」を調べる

ローテーションと同時に、キーがリポジトリやログに残っていないかも調べます。

# Gitleaks:リポジトリの全履歴をスキャン
gitleaks git -v .

# TruffleHog:リポジトリの全履歴をスキャン(検証済みの結果だけ表示)
trufflehog git file://. --results=verified
  • GitHub を使っているなら、リポジトリの設定で Secret scanning と Push protection を有効にします。
  • 見つかったキーは、履歴から消すだけでは不十分です。必ず発行元で無効化して作り直します。
  • .env が .gitignore に入っているか確認します。

7. チェックリスト

  • AI の APIキーを置いていた場所を一覧にした
  • 侵害を公表したサービスに置いていたキーを、すべて作り直した
  • アプリ・CI を新しいキーに差し替えて動作を確認し、古いキーを削除した
  • OpenAI / Anthropic / xAI / Google の利用状況と請求を確認した
  • 利用上限・予算アラートを設定し、自動チャージを見直した
  • Bedrock を使っている場合、IAM キーを作り直し、CloudTrail を確認した
  • Gitleaks / TruffleHog などでリポジトリをスキャンした
  • 不審な利用があれば、プロバイダーと保存先のサービスに報告した

参考リンク

開示

この記事は、PHP の外部バージョン診断ツール phpcheck.jp を運営している筆者が書いています。phpcheck.jp は APIキーの漏えいを診断するものではありません。この記事は Wiz と Northflank の公開情報、各プロバイダーの公開ドキュメントをもとにしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?