Parameter Labs が 10 月 28 日に公開した技術開示によると、セキュリティ研究チームは、被害者に共有会話リンクを開かせるだけで ChatGPT アカウントを乗っ取る方法を発見しました。同社は、OpenAI が 10 月 26 日にこの脆弱性を修正し、レポートを最も高い深刻度評価である P1 に分類したと報告しました。
この発見は、主流の AI プラットフォームに対するまれなエンドツーエンドのアカウント乗っ取りであり、最新の AI 開発 が人々がチャット アプリケーション内にどれだけの機密情報を保持しているかを示し続ける中、この発見に到達しました。 Parameter Labsは、この攻撃にはアプリのインストールも開発者ツールも必要なく、攻撃者の共有ChatGPT URLを開く以外の操作も必要なかったと述べた。
攻撃チェーンの仕組み
このチェーンは、単独では無害に見える 2 つの通常の ChatGPT 機能、つまりインタラクティブ グラフと HTML プレビュー サンドボックスを悪用しました。 ChatGPT のプレビュー機能は、生成された HTML を別の Web アドレス上の制限されたフレームで実行します。これにより、その周囲のサインイン済みの chatgpt.com ページにアクセスすることが防止されます。
画期的な進歩は、MathLive と呼ばれる数学ライブラリをロードしたグラフによってもたらされました。このライブラリは、オンスクリーン キーボードのメイン ChatGPT ページにメッセージ リスナーをインストールしていましたが、Parameter Labs は、リスナーが送信者を確認せずにあらゆる発信元からのメッセージを受け入れたことを発見しました。受け入れられたメッセージ タイプの 1 つは、仮想キーボード レイアウトを攻撃者が制御する HTML に置き換える可能性があり、その後、MathLive が innerHTML を通じて実際の ChatGPT ページにそのHTML を挿入します。
このように挿入されたスクリプトは通常は実行されないため、研究者らは srcdoc 属性を使用してペイロードを iframe にラップしました。メインの ChatGPT ページはサンドボックスなしでそのフレームを作成したため、ブラウザーはそのフレーム内のコードを、親ページにアクセスできる本物の chatgpt.com コンテンツとして扱いました。
コンテンツ セキュリティ ポリシーのエスケープ
ChatGPT のコンテンツ セキュリティ ポリシーは依然としてインライン スクリプトをブロックしていましたが、Parameter Labs はギャップを発見しました。ポリシーでは YouTube からのスクリプトが許可されていました。研究者らは、YouTube の oEmbed エンドポイントが検証前に無効な JSONP コールバック パラメータをエラー応答に反映し、ブラウザがスクリプトとして読み込む応答の先頭に実行可能な JavaScript を付加できることを発見しました。
その時点で、チームは被害者のサインイン セッション内で chatgpt.com の ID を使用して任意の JavaScript を実行していました。 Parameter Labs は、これが実際に何を意味するのかについて明確に述べました。ペイロードはページの変更やアラートの表示に限定されず、被害者として ChatGPT の認証済み API を直接呼び出す可能性がありました。テストでは、ペイロードは被害者の会話リストを列挙し、攻撃者と決して共有されなかったプライベートな会話の内容を取得し、そのデータを外部サーバーに送信する可能性があります。ブラウザは、あらゆるアクションが chatgpt.com 自体からのものであると識別し、被害者に何か問題があることを示す目に見える信号を与えませんでした。
リンクは 1 つで十分でした
研究のバグを実用的な武器に変えたのは、納品でした。研究者らは、グラフとプレビュー可能な HTML ブロックを 1 つの通常の会話に組み込み、ChatGPT の通常の共有機能を使用して公開し、その結果の /share/ リンクを、電子メール、チャット、サポート チケット、ソーシャル投稿など、誰もが使用するのと同じルートで送信しました。
最も安定した再現では、被害者はリンクを開いた後に ChatGPT の [プレビュー] ボタンを 1 回クリックする必要がありました。新しいバージョンでは HTML ブロックがプレビュー可能としてマークされたため、ChatGPT は自動的にそのブロックを開き、被害者に必要なアクションは URL にアクセスすることだけでした。チームはその完全自動パスを別のアカウントで 3 回再現しました。これにはハード更新後も含まれ、ページが読み込まれてから約 4.5 秒後にペイロードが起動されました。
グラフとプレビューは個別にロードされるため、MathLive の準備が整う前にペイロードが起動されることがありました。最終バージョンでは、競合状態を処理するために、限られた期間メッセージを再試行しました。
開示と修正
Parameter Labs はこの問題を OpenAI に報告し、OpenAI は 10 月 26 日に修正版を出荷し、レポートを P1 と評価しました。この開示は、AI プラットフォームのセキュリティ研究が広範に行われている最中に行われた。今週初め、The Register は 5 つの AI 開発者ツールのバグを報告しましたが、その中には公開時点でまだパッチが適用されていないものも含まれています。
このレッスンは、1 つのライブラリを超えて一般化します。最新のチャット アプリケーションは、単一の認証済みページ内にサードパーティ コンポーネント、サンドボックス プレビュー、および寛容なメッセージ チャネルを構成しており、未検証の postMessage 受信者がそれらの間のブリッジになることができます。ユーザーにとって、実用的なガイダンスは従来の Web セキュリティと変わっていません。共有 AI 会話へのリンクは、他の一方的なリンクを扱うのと同じように扱います。プラットフォームは、リンクを開いたことが無害であるとはもはや約束できないからです。
OpenAI の P1 分類と迅速な対応は、同社が chatgpt.com に対するブラウザベースのセッション攻撃を第一段階の脅威として扱っていることを示唆しています。このインシデントはまた、ユーザーが仕事の文書、医療上の質問、プライベートなプロジェクトをチャット履歴に保存している現在、これらのアカウントにどれだけの価値が集中しているかを思い出させるものでもあります。まさに、攻撃者が抽出できた可能性があると Parameter Labs が証明したコンテンツです。
---
AI の先を行く最新の AI ニュース、分析、画期的な情報をすべて 1 か所で入手できます。
AI ニュースをもっと読む→