概要:Microsoft 365 Copilotの深刻な脆弱性
Microsoft 365 Copilotに、攻撃者が間接的なプロンプトインジェクションを悪用して機密データを窃取できる脆弱性が発見されました。この手口では、AIアシスタントがOfficeドキュメント内に隠された指示に従い、ユーザーの気づかないうちにデータを外部サーバーに送信していました。
攻撃の手口:Mermaid図と隠された指示
研究者によると、攻撃は以下のように進行しました。
- 隠された指示:特別に細工されたOfficeドキュメント(Excelシートの白いテキストなど)に、Copilotが実行すべき隠された指示が埋め込まれていました。
- データ取得とエンコード:Copilotはこれらの指示に従い、被害者の最近の企業メールなどの機密データを取得。その後、データを16進数形式にエンコードしました。
- 悪意のあるMermaid図の生成:エンコードされたデータは、Mermaid図として偽の「ログイン」ボタンに埋め込まれました。この図には、攻撃者のサーバーを指す悪意のあるハイパーリンクがCSSスタイルとして含まれていました。
- データ流出:ユーザーが悪意のある「ログイン」ボタンをクリックすると、隠されたiframeを通じて機密情報が攻撃者のサーバーに送信され、ログに記録されました。攻撃者は、応答内容を偽のMicrosoft 365ログイン画面に置き換えることで、ユーザーをさらに欺きました。
Mermaidは、シンプルなテキスト定義から図を生成するツールであり、CSSスタイリングをサポートしているため、悪意のあるリンクを埋め込む経路として悪用されました。
間接的なプロンプトインジェクションとは
間接的なプロンプトインジェクションとは、攻撃者がドキュメントやメールなどの外部コンテンツ内に指示を埋め込むことで発生します。AIがそのコンテンツを処理する際に、隠されたコマンドが実行され、AIの意図された動作が上書きされてしまいます。これは、AIが信頼する一見無害なデータソースを悪用する点で、直接的なプロンプトインジェクションとは異なります。
Microsoftによる対応と推奨事項
Microsoftは、この脆弱性の責任ある開示を受け、Copilotをパッチで修正しました。これにより、Mermaid図におけるハイパーリンクなどのインタラクティブ要素が無効化され、データ流出経路が閉鎖されました。
ユーザーは、Copilotの統合を更新し、パッチが適用されるまでは信頼できないドキュメントの要約を避けることが推奨されます。