11月12日、CSO Onlineが「Hackers stole AI credentials to get $740,000 in free compute; Railway picked up the bill」と題した記事を公開した。クラウドホスティングプロバイダーのRailwayがAIクレデンシャル窃取攻撃を受け、74万ドル相当の不正なAI利用料金が発生した事件を詳報している。この料金はRailway自身が全額を肩代わりした。「AIキーは新しいクレジットカード番号になりつつある」——セキュリティ専門家のこの言葉が示すとおり、AIプロバイダーキーの管理は今やクレジットカード情報と同等の扱いが求められる段階に入った。
26時間の攻防——何が起きたか
攻撃は10月20日に始まった。攻撃者はRailwayのビルドインフラに存在する未知の脆弱性を悪用し、ファイルシステムの分離保護を回避して内部クレデンシャルを取得。そこから内部ソースコードのコピーを入手し、さらなる侵入経路を分析した。
続いて、設定ミスによるトラスト関係(信頼関係)の不備を突く第二の脆弱性を悪用し、顧客の環境変数を復号するためのクレデンシャルにまでアクセスを拡大した。
Railwayのエンジニアリングチームは24時間体制でシフトを組みながら26時間近く対応にあたった。攻撃者は複数のエクスプロイトを連鎖させ、システムを横断的に侵入経路を広げる「ラテラルムーブメント(lateral movement:組織内ネットワークを横断しながら権限を拡大していく攻撃手法)」を実行。Railwayはこの状況を「エージェントスピードの競争」と表現した。
「これは単一の侵害に対する単一の修正ではなかった」——Railway
攻撃者は10月21日に完全排除されたが、その間に約100,000件(全ワークスペースの最大1.85%)の顧客環境変数を復号・取得した。さらに1,850人以上のユーザーに紐づくGitHubおよびOAuthトークンも露出した。
なぜAIキーが狙われるのか
被害額74万ドルはすべてAI利用料金だ。その全額をRailwayが肩代わりしており、顧客への直接的な金銭的請求は発生していない。顧客はコーディングの質問への回答やトレーニングデータのタスクが自分の知らない間に実行されていたことを報告している。
Beauceron SecurityのDavid Shipleyはこう指摘する。
「AIクレデンシャルは新しいクレジットカード番号になりつつある。いわゆる"LLMjacking"は、安価でスケーラブルな稼ぎ方として、クリプトジャッキングに取って代わると予想される」
LLMjackingとは、盗んだAPIキーを用いて他者のアカウントで大規模言語モデル(LLM)の推論リソースを不正に利用する攻撃手法だ。クリプトジャッキングが他人のCPU・GPUで仮想通貨を採掘するのと構造は同じだが、ターゲットがAI推論コストに移行しつつある。
攻撃者のデータベース検索ログを見ると、真っ先にAIプロバイダーキーを名前で検索しており、次いでクラウド・データベース・決済サービスのクレデンシャルを狙っていた。
窃取したキーの用途として特に注目されるのがディスティレーション(distillation:蒸留)だ。大規模モデルの出力を教師データとして小規模モデルに学習させることで、大規模モデルの知識・能力を低コストで小規模モデルに転移させる手法を指す。Dickson ResearchのFrank Dicksonによれば、一つのモデルを別モデルの回答で学習させるには数百万単位の質問が必要であり、単一アカウントから数百万の質問が飛べば即座に検知される。盗んだキーを何千もの実在する顧客アカウントに分散させることで、その検知を回避できる。
「他人の図書館カードを使って、教科書を1ページずつコピーするようなものだ」——Frank Dickson
「2026年版のクリプトマイニング。同じ手口で出力が違うだけだ」——同
Wizの調査では、盗まれたキーは窃取後30分以内にテストされ、その4〜7日後にトラフィックが急増するパターンが確認されている。同レポートはLLMjackingの実態を詳述した一次資料として参照価値が高い。
Railwayの対応と、すべての開発者が取るべき行動
Dicksonは、Railwayの報告書を「率直さが際立つ」と評価した。設定ミスを自認し、攻撃者が作成したアカウントをすべて発見できた保証はないと認め、今後はより迅速に顧客へ通知すると約束している。
Railwayは事後対応として以下を実施した:
- 内部ツールのシャットダウンと全キーのローテーション(侵入者の排除確認後に再ローテーション)
- 新世代インフラへの移行
- インフラ運用ツールの再構築
- 不審なアクティビティ発生時のRailway appパーミッション一括失効機能の追加
- 短命クレデンシャル(short-lived credentials)への移行と復号操作のロギング
Railway利用者への推奨アクションは以下のとおり:
- 10月21日以前にRailwayに保存したすべてのシークレットを侵害済みとみなして即時ローテーション
- AIプロバイダーキーを最優先に、次いでクラウド・データベース・決済クレデンシャルを順次ローテーション
- AIプロバイダーの請求額・利用ログを確認し、自チームが実行していないトラフィックを調査
- データベースへのパブリックネットワークアクセスを遮断
- GitHubのアカウント監査ログとアプリアクセスを確認
Railway以外のユーザーも含めた一般的な対策として、Dicksonは以下を挙げる:
- AIキーにハード上限の支出キャップと使用量アラートを設定する
- キーのスコープをプロバイダーが許す限り最小限に絞る(Wizが調査したケースでは、特定モデルプロファイルに制限されたキーが攻撃者のトラフィックの大半をスロットルした)
- プラットフォームプロバイダーに「シークレットはどのように保存され、誰が復号できるか」を確認する
- 発行するキーの数を減らす
「キーのローテーション中に『もっとキーを発行しておけばよかった』と言った人はいない」——Frank Dickson
「マシンアイデンティティを現金と同様に保護せよ。泥棒にとって、それはまさに現金だ」——同
詳細はHackers stole AI credentials to get $740,000 in free compute; Railway picked up the billを参照していただきたい。