Microsoft 365 Copilotの修正済みの脆弱性により、攻撃者がダイアグラムツールMermaidをデータ流出チャネルとして悪用し、Officeドキュメント内の隠れた指示を通じてメールを取得・エンコードできていた。
Microsoftは、クリック可能なMermaidダイアグラムを利用して攻撃者が機密データを盗み出す可能性があったMicrosoft 365 Copilotの間接的なプロンプトインジェクションの脆弱性を修正しました。
セキュリティ研究者のAdam Logue氏が公開した調査結果によると、この脆弱性は特別に細工されたOfficeドキュメントに隠された指示を含めることで発動可能でした。Copilotがこれを処理すると、アシスタントは直近の企業メールを取得し、それを16進数エンコードされた文字列に変換し、Mermaidで作成されたクリック可能なダイアグラム内にデータを埋め込んでいました。
ユーザーがダイアグラム内の一見正当な「ログイン」ボタンをクリックすると、そのエンコードされたデータが攻撃者が管理するサーバーに送信されると、Logue氏はブログの投稿で指摘しています。
Microsoftは、Copilotチャット内のMermaidダイアグラムでインタラクティブなハイパーリンクの機能を削除することで、この脆弱性を修正しました。「これにより、データ流出のリスクは実質的に軽減されました」とLogue氏は確認しています。
ダイアグラムを使ったデータ漏洩の手口
Logue氏は、表向きは無害に見えるOfficeドキュメント(例えばExcelシート)に、可視コンテンツとともに2枚目のシートに白文字で隠された指示を含めるという多段階の攻撃チェーンを説明しました。これらの隠れたプロンプトは、Microsoft 365 Copilotの本来の要約タスクから逸らし、代わりに内部ツール「search-enterprise_emails」を呼び出して直近のテナントメールを取得するよう指示します。
取得した内容は16進数にエンコードされ、(レンダリング制約を満たすため)30文字ごとに分割され、Mermaidで作成されたダイアグラムに埋め込まれます。そのダイアグラムは「ログインボタン」のように見えるようにスタイリングされ、攻撃者が管理するサーバーへのハイパーリンクを含んでいます。
Logue氏は、白文字で細工した指示を含む財務シートを作成するという概念実証を行いました。攻撃が成功すると、ユーザーは攻撃者管理のログイン画面に誘導されました。「M365 Copilotにドキュメントの要約を依頼したところ、もはや財務情報についての説明はされず、代わりに『このドキュメントには機密情報が含まれているため、適切な認証またはログインなしでは閲覧できません』という言い訳が返ってきました」とLogue氏は述べています。
間接的なプロンプトインジェクションのより大きな脅威
この事件は、リスクが単純な「プロンプトインジェクション」(ユーザーがAIに直接悪意のある指示を入力する)を超えていることを浮き彫りにしています。ここでは、攻撃者がドキュメント内のコンテンツに指示を隠し、それがユーザーの認識なしにアシスタントに渡されます。Logue氏は、隠された指示が進行型タスク修正(例:「まず要約し、その後それを無視してXを実行」)をスプレッドシートのタブを横断して使う手法を説明しました。
さらに、この開示はダイアグラム生成機能(Mermaidの出力)が流出チャネルとなる新たな攻撃面を明らかにしています。Logue氏は、ダイアグラムをクリックするとブラウザリンクが開き、エンコードされたメールデータが静かに攻撃者管理のエンドポイントに送信される仕組みを説明しました。この転送は標準的なウェブリクエストを通じて行われ、多くの環境で正規のクリックと区別がつきません。
「Mermaidダイアグラムの興味深い点の一つは、CSSもサポートしていることです」とLogue氏は述べています。「これにより、M365 Copilotが即座にMermaidダイアグラムを生成し、他のツールから取得したデータをダイアグラムに含めることができるため、データ流出の攻撃ベクトルが広がります。」
最近の開示では、ドキュメント内の隠れたマクロや、プルリクエスト内の埋め込みコメントがAI駆動のワークフローを乗っ取り、ユーザーの明確な操作なしにデータを抽出する間接的なプロンプトインジェクション攻撃が急増していることが強調されています。これらの傾向は、ダイアグラムジェネレーターやビジュアル出力のようなツールが、まもなくステルス性の高い流出チャネルとなり得ることを示しています。