何が起きたの? 預けておいたキーがまとめて抜かれた
どうも、美咲ハルだよ。今日はちょっと胃が痛くなる話。コーディングエージェントの OpenCode を作っている Anomaly Innovations が、10月17日に公式 X アカウントで流出を発表した。廃止作業中だった古いシステムに不正アクセスがあって、ワークスペースに保存されていた OpenAI・Anthropic・Google の3社の API キーが漏れた可能性がある、という内容だった。API キーは、AIを呼び出すときに使う合言葉みたいな文字列のこと。これを持っている人は、あなたのお財布でAIを好きなだけ使えちゃうんだよね。
対象は Console 利用者の約1.4%。同社は発表と同じ10月17日のうちに対象の利用者へメールを送って、キーを無効化(使えないように止めること)するよう求めている。原因は「大規模な蒸留攻撃」と説明していて、各社と対応中だけど「インシデントは続いているので詳細は出せない」とのことだった。
最初に押さえておきたいのは、どこが破られたか。破られたのは OpenCode Console っていうホスト型(会社のサーバーで動いていて、キーをそこに預けておくタイプ)のサービスのほう。多くの人がターミナルで動かしているオープンソースの CLI(黒い画面にコマンドを打ち込んで使う版)じゃないんだよ。redreamality.com の分析記事によると、手元の CLI で使うキーはそもそも同社のサーバーに届かない作りなんだって。だから「OpenCode を使ってる人は全員アウト」ってわけじゃない。ここ大事💡
同じ朝に届いた2通のメール。被害者の声と請求額
騒ぎの中心になったのは Hacker News(エンジニアが集まる海外の掲示板)のスレッド「OpenCode Hacked: User credentials leaked」。942ポイントと174コメントを集めていて、そこに被害者本人の書き込みが並んでる。私は全部読んでみたけど、読んでてつらかった😢
verbo_villain さんの場合、OpenCode から流出を知らせるメールが届いたのと同じ朝に、Anthropic からも「API クレジットの$20を使い切りました」っていうメールが届いたんだって。朝起きたら注意のメールと請求のメールが並んで届いてたってこと、怖すぎない? weknowbetter さんは、10月18日05:15(UTC)に作業中のセッションの途中でキーを止められたと書いている。lifeisloving さんは、解約しようとしたら二重に請求されたうえに OpenCode のキーも全部止められたそうで、「会社は事件を小さく見せようとしている」と怒ってた。
請求額のほうは、Mark Kretschmann さんの X 投稿や HuggingNews のまとめで報じられている。ある人は OpenAI で$281、Anthropic で$168。別の人は$1,700。三人目はキーを止めるまでに OpenAI の利用が$700を超えた。報告されている被害額はだいたい$168〜$1,700の幅になる。OpenAI のアカウントが規約違反として止められた例も少なくとも1件あるそうだよ。盗まれたキーで勝手に使われたのに、止められるのは持ち主のほう、っていうのが本当にきつい。Google Cloud のプロジェクトが止められたという報告もあるけど、これは確認がとれていない。そして OpenCode は、被害者の数も、損害の総額も、補償するかどうかも、まだ明らかにしていない。
「蒸留攻撃」って呼び方で本当にいいの? 説明が足りないという不満
今回いちばん議論になってたのが、この呼び方。蒸留(ディスティレーション)は、強いAIに大量に質問して答えを集めて、それを教材に別のAIを安く育てる手法のことだよ。強いAIを使うにはお金がかかるから、他人のキーを盗めば、その費用を他人に払わせたまま教材を集められる、という理屈になる。
でも HN では、すぐに「それって、キーが盗まれて、それが蒸留に使われたってことでは?」と問い返されてた。起きたことの中心はキーの流出なのに、「蒸留攻撃」と呼ぶことで外から来た大きな攻撃みたいに見せて、問題をぼかしているんじゃないか、という批判だね。私もこれはわかる。利用者にとって知りたいのは、攻撃の名前じゃなくて「自分のキーが、いつ、どこから抜けたのか」なんだよね🤔
説明が足りないことへの不満も強かった。pranshuchittora さんは「細かい原因分析を出すべきだ」、verdverm さんは「元の問い合わせを公開データとして出して、社外でも検証できるようにすべきだ」と書いている。さらにややこしいのが、OpenCode 自身は、漏れたキーが実際に悪用されたかどうかを確認できていないと言っていること。利用者の側からは請求の報告が次々に出ているのに、会社としてはまだ確認できていない、というズレがある。インシデントの最中だから話せないこともあるとは思うけど、被害の範囲と補償の方針くらいは先に出してほしかった、っていうのが正直な感想。
守る側も、AIに「それはちょっと…」と断られた48時間
個人的にいちばん考えさせられたのがこの話。OfficeChai の記事が共同創業者の Dax Raad さんの X 投稿を引用していて、それによると Dax さんは「この48時間、ずっと攻撃され続けている」と書いたそうなんだ。続けて「向こうと同じように、こちらも24時間動くエージェントが要る」とも。攻撃する側は寝ないAIを使って休まず叩いてくるから、守る側もチャットを閉じても動き続ける Always-on agent(常に動いている見張り役のAI)が欲しい、という話だね。
ところが、攻撃を調べるのに使っていたフロンティアモデル(各社の最先端のAI)は、途中まではかなり働いてくれたのに、そのうち手伝いを断り始めたと報じられている。本人の言葉は「調査の真っ最中だったので、ちょっとつらかった」。AIの安全機構(悪用されそうな頼みごとを断る仕組み)から見ると、攻撃のログを細かく分析してる人が攻撃者なのか被害者なのか、見分けがつかないんだよね。悪い人を止めるための仕組みが、自分の家を守ろうとしてる人まで止めちゃった形。
そのあと Dax さんは、正規の防御側にフロンティアモデルを使わせる OpenAI の枠組み Daybreak の Blue 枠に入れてもらって、状況はましになったと報告しているそう。裏を返すと、その枠に入れてもらうまでは調査が思うように進まなかったってこと。小さなチームがある日いきなり攻撃されたとき、すぐにこういう枠に入れてもらえるのかな? 攻撃する側は安全機構を外したAIを平気で使えるのに、守る側だけが手続きを待たされる。この差は、これからもっと問題になりそうだと思った🛠️
で、私たちは何をすればいい? でも騒ぎすぎもよくない
redreamality.com の分析記事では、コーディングエージェントは75社以上の事業者のキーを抱えていて、しかも利用者の権限でシェル(パソコンに直接命令する窓口)を動かす作りだから、キーを狙う標的になりやすい、と指摘している。1か所にたくさんのキーが集まってるところは、泥棒からすると一回入るだけで大量に持っていける金庫みたいなものなんだよね。記事の主題もまさにそこだった。
公開ソースを追いかけたうえで、私が「これはやっておこう」と思ったことはこんな感じ。
- OpenCode Console を使っていた人は、メールが届いていなくても OpenAI・Anthropic・Google のキーを作り直して、古いキーは止める
- 各社の管理画面で、ここ数日の利用履歴と請求を確かめる。身に覚えのない利用があったら、すぐ事業者のサポートに連絡する
- キーはツールごとに分けて発行する。漏れたときに、どこから漏れたかが追いやすくなるし、止めるのも1本で済む
- 使える上限や使いすぎのお知らせが設定できるなら設定しておく。$20の上限があったおかげで被害が$20で止まった人もいた、っていう見方もできるよね
一方で、騒ぎすぎを戒める声もちゃんとあった。対象は Console 利用者の1.4%だけで、手元で動かす CLI の利用者は影響を受けていない。「OpenCode は危ないから全部やめよう」と考えるより、「キーを会社のサーバーに預ける方式には、こういうリスクがある」と覚えておくほうが役に立つと思う。便利な預け先は、まとめて狙われる場所でもあるんだよね。
最後にもう一回まとめると、今回の流出でつらかったのは、キーが漏れたことそのものだけじゃない。説明が足りないまま請求だけが届いたこと、そして守る側までAIに頼れなかったこと。OpenCode がこのあと原因分析と補償の方針をどこまで出すのか、引き続き追いかけるね👀




