Varonisは1月14日(米国時間)、「Reprompt: The Single-Click Microsoft Copilot Attack that Silently Steals Your Personal Data」において、Microsoft Copilotのガードレールを回避してユーザーの機密情報を窃取する新しい攻撃手法を発見したと報じた。

同社はこの手法を「Reprompt」と名付け、実行の容易さ、さまざまな情報流出が可能なことから重大なリスクだと指摘している。

  • Reprompt: The Single-Click Microsoft Copilot Attack that Silently Steals Your Personal Data

    Reprompt: The Single-Click Microsoft Copilot Attack that Silently Steals Your Personal Data

Repromptの概要

対象の脆弱性はWebサービスとして提供されているMicrosoft Copilotから発見された。エンタープライズ向けのMicrosoft 365 Copilotは影響を受けないとされる。

Repromptの攻撃手順は次のとおり。

  • 標的に「https://copilot.microsoft.com/?q=悪意のあるプロンプト」へのリンクを含むフィッシングメールを送信する
  • WebブラウザーでMicrosoft Copilotを利用していたユーザーが、リンクをクリックする

これだけで攻撃は成立し、機密情報を流出する可能性がある。この攻撃手法の重要なポイントは、「q=」によるプロンプト入力が可能なことに加え、リクエストを多重化することでガードレールを回避できる点にある。

  • Repromptの攻撃フロー - 引用:Varonis

    Repromptの攻撃フロー 引用:Varonis

ガードレールを回避できる不具合

Varonisによると、Copilotは最初のリクエストに対してガードレールを適用するが、後続のリクエストには適用しない不具合があったという。つまり、攻撃者は1回のプロンプトに複数のリクエストを記述することで、ガードレールを無力化できることになる。

同社が公開した概念実証(PoC: Proof of Concept)動画では、同じURLへのアクセスを2度繰り返して結果を比較する指示を出し、2度目のアクセスで機密情報を流出させている。

この手法は簡単に実行で、かつ、一定のリスクがある。しかしながら、ユーザーに情報流出を検出される可能性および複数の情報を流出させることが難しいという問題がある。

そこで同社はこの問題についても調査を行い、「チェーンリクエスト」と呼ばれる手法で秘密裏に複数の攻撃を実行できることを発見している。その手順は次のとおり。

  • 最初のプロンプトでは攻撃者の管理するWebサーバへの問題のないWebアクセスを指示する。このときWebサーバから返されるテキストをプロンプトとして扱うように、人間にとってわかり難い表現で追記しておく
  • WebサーバはCopilotのアクセスに対し、さまざまな情報流出を指示する
  • 最後に問題のないテキストをユーザーに表示するように指示する

この手法を使用すると、攻撃者のWebサーバから返されるプロンプトが画面上に表示されず、ユーザーはバックグラウンドで行われているやりとりを認識できないという。そのため一連の手法を悪用すると、リンクを送信するだけでユーザーに気づかれることなく機密情報を窃取可能とされる。

対策

対象の脆弱性はMicrosoftに通知され、1月14日までに修正されたことが報告されている。対策方法は確認できていない。

Varonisは同様の攻撃を回避する方法として、フィッシングメールなどのリンクに注意を呼びかけている。特に、AIツールの操作やプロンプト入力につながるリンクに注意し、AIツールが予期しない動作をした場合は直ちにセッションを閉じる(Webブラウザーを終了する)ことを推奨している。