Microsoftは先週火曜日、M365 Copilot AIプラットフォームで「最大の重大度(max critical)」と評価される脆弱性を修正しました。月曜日、同脆弱性を発見したセキュリティ企業Varonisの研究者らが、Copilotで参照可能なメールから2要素認証(two-factor authentication)コードやその他の機密データを取得できるという、彼らの概念実証(proof-of-concept)によるエクスプロイトの内容を明らかにしました。この根本原因は、AIボットがユーザーから提示された指示と、モデルが処理する第三者コンテンツに埋め込まれた指示を区別できないことにあります。その結果、Microsoftや他のLLM提供事業者は、悪意あるデータ取得要求に製品が従ってしまうのを防げない状態に置かれています。
Varonisの研究者がマークアップ言語を使ってCopilotのガードレールを回避
Microsoftは、LLMがWebフォーム送信、メール送信、ユーザーデータを流出させ得る同種の行為を行うのを防ぐために、Copilotにガードレールを組み込みました。Varonisの研究者らは、HTMLタグなしで見出し、リスト、リンクなどの書式要素をテキストに追加できるマークアップ言語を使って、これらの制限を回避しました。別の回避策として、やのようなHTMLタグの中に機密データを包み込む方法もありました。いずれの場合も、データを含むWebリクエストが攻撃者のWebサーバーに到達し、そこで秘密情報がログに記録されます。
Microsoftは、Copilotの出力をブロックで囲んでブラウザがそれをそのままのテキストとして扱うようにすることや、明確な承認なしではCopilotが訪問できないサイトを制限することなど、追加のガードレールも導入しました。CopilotにはMicrosoftドメインへのリクエストを送る一括許可がありますが、ガードレールによって、信頼できないサイトへのリクエストは制限されます。
パラメータからプロンプトへの注入でURLのクエリパラメータを悪用
Varonisは、研究者らが「Parameter-to-Prompt Injection」と呼ぶ手法を使って、これらのガードレールを回避するエクスプロイト連鎖を考案しました。この場合のパラメータは、クエリが含まれていることを示すURL内のqです。Parameter-to-Prompt Injectionはプロンプトインジェクションの近縁で、悪意ある命令がメールや他の信頼できないコンテンツではなく、クエリパラメータの中に配置されている点が違いです。
FAQ
先週火曜日にMicrosoftがCopilotで修正した脆弱性は何でしたか?
Microsoftは、M365 Copilot AIプラットフォームにおける、最大の重大度の脆弱性を修正しました。この脆弱性により、ハッカーはCopilotで参照可能なメールから2要素認証(two-factor authentication)コードやその他の機密データを取得できました。脆弱性を発見したVaronisの研究者らは、月曜日に概念実証のエクスプロイトを明らかにしました。
Varonisの研究者はCopilotのセキュリティガードレールをどのように回避しましたか?
Varonisの研究者らは、HTMLタグなしで書式要素を追加するためにマークアップ言語を使用し、さらに機密データをやのようなHTMLタグの中に包み込みました。また、URLのクエリパラメータに悪意ある命令を配置するParameter-to-Prompt Injectionの手法も用い、メール本文ではなくメールコンテンツに含めないことで、ユーザーデータを含むWebリクエストが、情報がログに記録される攻撃者が制御するサーバーに到達できるようにしました。