Fireworks AIに侵入、Notion AIの会話記録や鍵が流出

銀色のキーホルダー AI

公開モデルを API で動かすサービスの Fireworks AI が、11月9日に不正アクセスの続報を出しました。一部の顧客が預けていた API キーや学習用のデータセット、学習途中のモデルの重みが見られています。Notion はこの影響で、Notion AI との会話記録の一部が漏れたおそれがあると発表しました。対象は全ワークスペースの1%未満で、持ち主に個別に連絡しています。

背景と文脈

Fireworks AI は、Llama のように重みが公開されているモデルを、API で呼べるようにするサービスです。GPU を自分で持たずに公開モデルを使いたい会社が、推論(学習ずみのモデルに答えを出させる処理)や追加学習に使っています。Notion もその1社で、Notion AI の一部の機能が Fireworks の上で動いていました。

最初の発表は10月9日でした。Fireworks の10月の報告によると、10月6日に社内の認証情報が不正に使われているのを見つけています。評価用のジョブの環境変数が読まれ、一部の顧客がシークレットとして置いていた API キーやトークンが持ち出されました。このときは、モデルやデータセット、プロンプトと出力には手が届いていないと説明していました。

11月9日の続報で、範囲が広がりました。10月23日に、Fireworks の開発用マシンを置いていた外部のクラウド事業者で事故があり、翌24日にそこから開発用マシンに入られています。Fireworks は相手を利益目的の犯罪グループとみています。盗んだ LLM の利用枠を裏で売る手口(LLMJacking)とのつながりがあるそうです。

技術/ビジネス面

灰色のドアのレバー
Photo by Romson Preechawit on Unsplash

Fireworks の11月の続報によると、入られた社内のアプリからは次のものが見える状態でした。

見られたもの 中身
リソースの情報 ID、表示名、説明、作成日時
請求の情報 請求先と配送先の住所、請求と支払いの履歴、残高。カード番号は保存しておらず影響なし
重みとデータセット 一部の顧客の、学習途中の重みとデータセットの一部
シークレット 一部のアカウントに保存されていた API キーなど

Fireworks は、推論と Training SDK、Nexus の3つには影響が見つかっていないとしています。3つとも初期設定で ZDR(Zero Data Retention、プロンプトと出力を保存しない扱い)だという説明です。

ここで Notion のお知らせと話が食い違っています。Notion によると、漏れたデータには Notion AI との会話記録が入っていました。Insights という、自分たちの AI の使われ方を分析する機能のために、Fireworks で分類させていたものです。推論の通信は無事だったのに、なぜ会話が漏れたのかは、どちらの会社も説明していません。Hacker News では happygoose さんが、バッチ処理の割引を使うために会話をデータセットとして上げていたのではないかと推測していました。

Notion は、会話記録には書いた人やワークスペースの名前がついていないと説明しています。Notion AI がページや外のサービスから読みこんだ中身も入っていません。ただ Hacker News では、会話の文そのものから人や会社がわかるので、名前がないことは安心する理由にならないという反論が出ていました。Notion は11月3日に Fireworks との接続を切り、Insights を止め、公開モデルを Fireworks で動かすのもやめています。

開発者として確かめること

Fireworks を使っている場合は、10月の報告に載っている手順で確かめます。通知が来ていなくても、一度は見ておくと安心です。

  1. Fireworks が無効にした API キーの代わりを作り、アプリの設定を書きかえる。書きかえるまで、アプリは認証で失敗します
  2. Fireworks にシークレットとして置いていた他社の鍵(クラウドや別の AI サービスのもの)を、発行元で入れ替える。Fireworks からシークレットを消しただけでは、鍵そのものは使えるままです
  3. その鍵で触れるサービスのアクセスログを見る。怪しい動きがなくても入れ替える
  4. 見覚えのない API キー・ユーザー・評価器・学習ジョブ・データセットがないか確かめ、あれば Fireworks に知らせる

Fireworks の通知を待つだけでは足りないかもしれません。Hacker News で werrett さんは、10月の通知では影響なしと言われたのに、あとで Anthropic の API キーが不正に使われたと書いていました。11月の件の正式な通知もまだ来ていないそうです。一人の利用者の話で、確かめられてはいません。

Notion のワークスペースの持ち主は、デスクトップのブラウザでサイドバーの「?」から Security incident review を開くと、影響があったかがわかります。スマホでは開けません。Enterprise プランでは CSV で一覧が出て、ほかのプランではメンバーが自分の分を見られるリンクが出ます。Notion AI にパスワードや API キーを貼ったことがあれば、すぐ入れ替えるよう Notion は勧めています。

ZDR とうたうサービスでも、全部のデータが残らないわけではありません。Fireworks のドキュメントでは、残るものと残らないものが次のように分かれています。

使い方 データの扱い(Fireworks のドキュメントより)
公開モデルの推論 保存しない。プロンプトのキャッシュで数分メモリに残ることはある
Response API store=True が初期値で、プロンプト・返事・道具の呼び出しを最大30日保存。store=False で止められる
学習とデータセット データセット・途中の重み・学習ずみのモデルが残る。Enterprise の管理者は ZDR の設定で、学習ジョブとアップロードを断れる

今回見られた重みとデータセットは、表の3行目にあたります。推論だけ使っているつもりでも、分析やバッチのためにデータセットを上げていれば、そこが漏れる入口になります。

これからどうなるか

外の推論サービスを選ぶときは、ZDR かどうかだけでは足りなくなりました。データセットや学習の成果物がどこに何日残るのか、預けた鍵がどこに保存されるのかまで、契約の前に確かめる必要があります。Fireworks の件は10月に一度収まったように見えて、2週間後に別の入口から入られました。最初の発表だけで判断せず、続報を追う手間もかかります。

自分のプロダクトで言えば、利用者の会話を分類や分析のために外へ渡しているなら、その渡し先も漏れる経路です。アプリ本体の推論は自前のサーバーで動かしていても、分析用のバッチだけ外のサービスに出していることはよくあります。どのデータをどこに送っているか、一度書き出しておくと、こうした事故のときにすぐ答えられます。

Fireworks は調査が続いているとしていて、影響を受けたアカウントの数はまだ出ていません。

まとめ

Fireworks AI への不正アクセスで、一部の顧客の鍵・データセット・学習途中の重みと、Notion AI の会話記録の一部が見られました。Fireworks を使っているなら、預けていた他社の鍵を発行元で入れ替えます。推論が ZDR でも、データセットとして上げたものは残るので、外に渡しているデータの一覧を作っておくと次に備えられます。

参考リンク

アイキャッチ画像: Photo by Artem Beliaikin on Unsplash

タイトルとURLをコピーしました