セキュリティに詳しくない個人開発者にも起こりうる事故を、固有名詞や特定可能な情報を伏せて一般化した記事です。攻撃の再現手順は載せません。狙いは「同じ目に遭わないための備え」と「遭ってしまったときの落ち着いた対処」です。
- 種別
- アカウント凍結(BAN)/APIキーの盗用・悪用
- きっかけ
- 盗まれたAPIキーが第三者に悪用される
- 判定理由
- 悪用の中身が『蒸留(distillation)』ポリシー違反と自動判定
- 特徴
- 操作したのは第三者でも、名義人のアカウントが凍結対象になる
- 予防
- キーの分離・最小権限・利用量アラート・依存CVEの機械監視
- 対処
- 証拠保全 → 公式フォームで異議申し立て(ログで「人間の操作ではあり得ない」ことを示す)
「課金を止めた」≠「対応完了」
不正課金を止めるのは、被害の拡大を止める措置にすぎません。漏洩経路を塞ぎ、名義に残った違反の記録に対処するまでが本当の対応です。
なぜ被害者まで凍結されるのか
ポイントは、プラットフォーム側の判断が**「誰が操作したか」ではなく「その名義で何が起きたか」**に基づく点です。鍵の持ち主=責任者という前提で、違反パターンが検知されればアカウントが止まります。
『蒸留(distillation)』とは
強力なモデルの出力を大量に集め、その「入力→出力」ペアを教師データにして別のAIモデルを学習させる行為です。多くの主要AIプロバイダは、規約で自社の出力を使って競合モデルを作ることを禁止しています。大量のアノテーション生成やデータラベリングはこのパターンに一致しやすく、自動エンフォースメントが反応しやすい領域です。
つまり何が起きるか
盗んだ側にとって、他人のキーは「使い放題の計算資源」です。その使い道が規約違反級(蒸留・大量データ生成)だと、巻き添えで名義人のアカウントが止まります。盗用そのものより、盗用された後の使われ方が凍結の原因になるのが、この事故の厄介なところです。
典型的な兆候(一般化)
実際のケースでは、凍結の前段に「身に覚えのない利用」が観測されることが多いです。固有の数値は伏せますが、共通する特徴は次のとおりです。
兆候① 利用量の異常
ふだんの想定を大きく超える利用量・請求が、短時間に発生する。兆候② 内容の不一致
本人が使わないモデル・本人の用途と無関係な内容・本人の言語と異なる処理が走っている。兆候③ 自動化の痕跡
ごく短時間に大量のリクエストが集中し、出力の多くが空など、人手では起こり得ない分布になっている。結果 アカウント凍結
数日後、規約(蒸留等)違反を理由にアカウントが停止される。
兆候を見たら、決めつける前に生のログを見る。モデル・内容・言語・時間分布を見れば、それが自分の使い方かどうかは一目で分かります。
予防:漏れても被害が広がらないAPIキーの分け方
凍結を防ぐには、そもそも鍵を盗られないこと、盗られても被害を一部にとどめることが効きます。
キーをサービスごとに分離する
最小権限・上限を設定する
利用量アラートを設定する
万一BANされたら:異議申し立ての筋道
不正利用の客観証拠が手元にあれば、冷静に事実を提出することで、アカウントが復旧する可能性があります。重要なのは**「これは人間の操作ではあり得ない」ことをログで示す**ことです。
証拠を保全する
公式フォームから事実を提出する
フェーズで主張を切り替える
なぜ「人間の操作ではあり得ない」ことが証拠になるのか
ごく短時間に大量のリクエストが集中し、出力の多くが空、といった分布は、正常な業務利用では説明がつきません。使用パターンの不自然さそのものが、「自分の操作ではない」を示す最も強い客観証拠になります。
やりがちな失敗と、正しい備え
やりがちな失敗
- 1本のキーを複数プロジェクトで使い回す
- 利用上限・異常アラートを設定していない
- grepで鍵が見つからないだけで「漏れていない」と安心する
- 課金を止めただけで対応完了にする
- 感情的に抗議し、客観証拠を整理しない
正しい備え
- キーをサービスごとに分離し最小権限にする
- ハード/ソフトの利用上限と異常アラートを設定する
- ランタイム漏洩(RCE・ヘッダ)も疑う
- 被害拡大を止める作業と「漏洩経路を塞ぐ」作業を、別作業として両方やる
- ログで「人間の操作ではあり得ない」ことを淡々と示す
本件の決着(このケースのその後)
このパターンの事故では、ログという客観証拠を添えて異議申し立てを行った結果、アカウント自体は最終的に復旧した。一方で、不正利用された分の追加返金は受けられず、すでに適用済みのクレジット分でやり取りは終わっている。
ここにいちばんの教訓がある。アカウントが戻っても、流出した鍵で使われた費用は戻ってこない。 復旧まで時間も手間もかかる。だから本当の防御は「凍結されてから争う」ことではなく、鍵を漏らさない/漏れても利用量の上限で被害を止めるという事前設計にこそある。異議申し立ては最後の手段であって、最初の守りではない。
まとめると、凍結の原因は盗用そのものより、盗用された後の使われ方です。予防はキーの分け方と利用上限の設定で、BANされた後の対処はログの保全で行います。
次に読む
- 用語:RCEとは / .envとは / CVEとは
- 対策:CVEに追従して安全に運用する