ハッカーがChatGPTやMicrosoft Copilotのチャット内容を盗み見る方法

ハッカーが対話型AIチャットボットの機能を悪用し、ChatGPTやCopilot、その他ほとんどのAIツールから暗号化されたチャットを復号し、読み取る方法について。

イスラエルのOffensive AI Labのリサーチャーは先日、傍受されたAIチャットボットのメッセージのテキストを復元する方法について、論文を発表しました。今回は、この攻撃の仕組みと実際にどれほど危険なのかを説明します。

傍受されたAIチャットボットから抽出可能な情報

当然のことながら、チャットボットが応答する際の通信データは暗号化されています。それでも、大規模言語モデル(LLM)の実装と、それに基づいて開発されたチャットボットには、暗号化の強度を深刻に低下させる多くの特徴があります。これらの特徴を組み合わせると、漏えいした情報の断片からメッセージの内容を復元する際に、サイドチャネル攻撃を実行することが可能になります。

この攻撃中に何が起こるかを理解するには、LLMとチャットボットの仕組みの詳細について少し掘り下げる必要があります。まず知っておくべきことは、LLMが扱うのは個々の文字や単語ではなく、テキストの意味的な単位であるトークンだということです。OpenAIのWebサイトのTokenizerページでは、その内部の仕組みを垣間見ることができます。

GPT-3.5およびGPT-4モデルを使用したテキストトークン化の例

この例はGPT-3.5およびGPT-4モデルでメッセージのトークン化がどのように動作するかを示しています。 出典

この攻撃を容易にする2つ目の特徴は、LLMは応答を大きな塊で送信するのではなく、少しずつ、まるで人間が応答を入力しているかのように送信する点です。しかし、人間と違って、LLMは個々の文字ではなく、トークンで書き込みます。そのため、チャットボットは生成されたトークンをリアルタイムで次々と送信します。ほとんどのチャットボットがそうしていますが、例外はGoogle Geminiでサイドチャネル攻撃に耐性があります。

3つ目の特徴は、論文の発表時点で、大半のチャットボットはメッセージの暗号化前に、圧縮、エンコード、またはパディング(意味のあるテキストに不要なデータを追加して、予測されにくくし暗号強度を高める処理)を使用しなかったという事実です。

サイドチャネル攻撃は、これら3つの特徴をすべて悪用します。傍受されたチャットボットのメッセージは解読できませんが、攻撃者はそこから有用なデータ、具体的にはチャットボットが送信した各トークンの長さを抽出できます。結果は、アメリカのクイズ番組『ホイール・オブ・フォーチュン』(Wheel of Fortune)のパズルのようで、暗号化されている内容は正確にはわかりませんが、個々の単語トークンの長さは明らかになります。

メッセージを解読することは不可能ですが、攻撃者はチャットボットから送信されたトークンの長さを抽出できます。結果として得られるシーケンスは、アメリカのクイズ番組『ホイール・オブ・フォーチュン』のフレーズを当てるクイズに似ています。 出典

抽出した情報を使用してテキストを復元する

残りの作業は、トークンの後ろに隠れている単語を当てるだけです。ここで、信じもしないような推理ゲームの達人の出番となります。答えは、LLMです。実際、与えられた文脈の中で正しい単語を推測することが、LLMが存在する第一の目的なのです。そこで、結果として得られたトークン長のシーケンスから元のメッセージのテキストを復元する目的で、リサーチャーはLLMを使用してみました。

正確には、2つのLLMが必要です。リサーチャーがテストしたところ、チャットボットとの会話の最初のやり取りはほぼ常に定型化されていることがわかりました。したがって、よく使用される言語モデルが生成した導入メッセージの配列によって専用にトレーニングされたモデルによって、そのやり取りは容易に推測可能です。そのため、最初のモデルの用途は、導入メッセージを復元し、会話の残りの部分を処理させるために復元後のメッセージを2番目のモデルに渡すことになります。

AIチャットボットのメッセージを復元するための攻撃の概要 出典

これにより、元のメッセージのトークン長に対応する長さのテキストが生成されます。しかし、特定の単語を総当たり方式で試すため、成功の度合いは異なってきます。復元されたメッセージとオリジナルが完全に一致することはめったにありません。たいてい、推測されたテキストの一部は誤っていますが、時には満足のいく結果が得られることもあります。

この例では、元のテキストにかなり近い形で復元されました。 出典

しかし、うまくいかない場合、再構築されたテキストは元のテキストとほとんど、あるいはまったく共通点がない可能性があります。

テキスト再構築がそれほどうまくいかなかった例 出典

場合によっては、こんな結果も有り得ます。

『不思議の国のアリス』でなくても「絶対にまちがってるはず」と言いたくなる結果 出典

リサーチャーは、合計で10以上のAIチャットボットを調査し、そのほとんどがこの攻撃に対して脆弱であることを発見しました。例外は、Google Gemini(旧名:Bard)とGitHub Copilotです。

論文が発表された時点では、多くのチャットボットが攻撃に対して脆弱でした。 出典

対策を講じるべきか?

この攻撃は遡及的であることに注意する必要があります。誰かがあなたのChatGPTでの会話を傍受して保存し(そう簡単ではありませんが、可能ではあります)、その中であなたが何かとんでもない秘密を暴露したとします。この場合、上記の方法を使用すると、理論的にはその誰かがメッセージを読むことができるということになります。

幸運なことに、傍受される可能性はそれほど高くはありません。リサーチャーが指摘するように、会話の大まかなトピックが特定できたのは、全体の55%に過ぎませんでした。テキストの再構築の成功率は、わずか29%です。リサーチャーが、再構築が十分に成功したといえる基準を満たしたことは特筆に値します。次に例を挙げます。

リサーチャーが十分に成功したと判断したテキスト再構築の例。 出典

このような用語上の細かい違いがどの程度重要であるかは、各自の判断にお任せします。ただし、この方法では、実際の詳細(名前、数値、日付、住所、連絡先、その他の重要な情報)を信頼性が高い状態で抽出できない可能性が高いことに注意してください。

そしてこの攻撃には、リサーチャーが言及していないもう1つの限界があります。テキスト復元の成功は、傍受されたメッセージが書かれた言語に大きく依存します。つまり、トークン化の成功は言語によって大きく異なるということです。この論文では、一般的に単語全体に相当する非常に長いトークンを特徴とする英語に焦点を合わせています。そのため、トークン化された英文は、再構築が比較的容易な明確なパターンを示しています。

他のどの言語も、これに近い結果にはなりません。英語に最も近いゲルマン語やロマンス語のグループでも、トークンの長さは平均して1.5~2倍短く、ロシア語では2.5倍です:典型的なロシア語のトークンは2、3文字しかないため、この攻撃の有効性はおそらくゼロになるでしょう。

少なくとも2つのAIチャットボット開発者(CloudflareとOpenAI)は既にこの論文に反応し、この種類の脅威を念頭に置いて専用に設計された上記のパディング方法を追加しています。他のAIチャットボット開発者もこれに追随する予定です。今後のチャットボットとのコミュニケーションが、この攻撃から守られることを願ってやみません。

ヒント