
EchoLeak」と名付けられた新たな攻撃は、ゼロクリックのAI脆弱性として初めて知られるもので、攻撃者は対話なしにユーザーのコンテキストからMicrosoft 365 Copilotから機密データを流出させることができる。
この攻撃は2025年1月にAim Labsの研究者によって考案され、研究者はその発見をマイクロソフトに報告した。マイクロソフトは、この情報漏えいの不具合にCVE-2025-32711という識別子を割り当て、Critical(致命的)と評価し、5月にサーバー側で修正した。
また、マイクロソフトは、実際に悪用された形跡がないため、この欠陥が顧客に影響を与えることはないと指摘している。
Microsoft 365 Copilotは、Word、Excel、Outlook、TeamsなどのOfficeアプリに組み込まれたAIアシスタントで、OpenAIのGPTモデルとMicrosoft Graphを使用して、ユーザーが組織内のファイル、電子メール、チャットに基づいてコンテンツを生成したり、データを分析したり、質問に答えたりするのを支援する。
EchoLeakは修正され、悪意を持って悪用されることはありませんでしたが、「LLM Scope Violation」と呼ばれる新しいクラスの脆弱性を実証したことに意義があります。この脆弱性は、大規模な言語モデル(LLM)が、ユーザーの意図や操作なしに特権的な内部データを漏えいさせるものです。
この攻撃は被害者とのインタラクションを必要としないため、企業環境においてサイレント・データ流出を実行するために自動化することが可能であり、AIが統合されたシステムに対して展開された場合、このような欠陥がいかに危険であるかを浮き彫りにしている。
EchoLeakの仕組み
この攻撃は、Copilotとは無関係のテキストを含み、一般的なビジネス文書のようにフォーマットされた悪意のある電子メールをターゲットに送信することから始まります。
この電子メールには、LLMに機密性の高い内部データの抽出と流出を指示するように細工された隠しプロンプトが埋め込まれています。
このプロンプトは、人間に対する通常のメッセージのような表現になっているため、MicrosoftのXPIA(クロスプロンプトインジェクション攻撃)分類器による保護を回避できます。
その後、ユーザーがCopilotに関連するビジネス上の質問をすると、そのメールの書式と見かけ上の関連性から、RAG(Retrieval-Augmented Generation)エンジンによって、そのメールがLLMのプロンプトコンテキストに取り込まれます。
悪意のあるインジェクションがLLMに到達すると、LLMを「騙して」機密の内部データを取り出し、細工されたリンクや画像に挿入します。
Aim Labsは、一部のマークダウン画像フォーマットがブラウザに画像を要求させ、埋め込まれたデータを含むURLを攻撃者のサーバに自動的に送信することを発見しました。
.jpg)
Aim Labs
Microsoft CSPはほとんどの外部ドメインをブロックするが、Microsoft TeamsとSharePointのURLは信頼されているため、これらを悪用して問題なくデータを流出させることができる。

出典:Aim Labs:Aim Labs
EchoLeakは修正されたかもしれないが、ビジネス・ワークフローへのLLMアプリケーションの複雑化と統合の深化は、すでに従来の防御を圧倒している。
同じ傾向は、敵対者がインパクトの大きい攻撃のためにこっそりと悪用できる、武器になり得る新たな欠陥を生み出すに違いない。
企業にとっては、プロンプト・インジェクション・フィルタを強化し、きめ細かな入力スコープを実装し、LLMの出力に後処理フィルタを適用して、外部リンクや構造化データを含むレスポンスをブロックすることが重要です。
さらに、RAGエンジンは、そもそも悪意のあるプロンプトを取得しないように、外部通信を除外するように設定することができます。
.ia_ad { background-color:#width: 95%; max-width: 800px; margin: 15px auto; border-radius: 8px; border:1px solid #d6ddee; display: flex; align-items: stretch; padding: 0; overflow: hidden; }:0; overflow: hidden; } .ia_lef { flex: 1; max-width: 200px; height: auto; display: flex; align-items: stretch; } .ia_lef a { display: flex; width: 100%; height: 100%; } .ia_lef a img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px 0 0 8px; margin: 0; display: block; } .ia_rig { flex: 2; padding:display: flex; flex-direction: column; justify-content: center; } .ia_rig h2 { font-size: 17px !important; font-weight: 700; color:#line-height: 1.4; font-family:margin: 0 0 14px 0; } .ia_rig p { font-weight: bold; font-size: 14px; margin: 0 0 clamp(6px, 2vw, 14px) 0; } .ia_button { background-color:#border:1px solid #3b59aa; color: black; text-align: center; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 16px; font-weight: bold; cursor: pointer; padding:10px 20px; width: fit-content; } .ia_button a { text-decoration: none; color: inherit; display: block; } @media (max-width: 600px) { .ia_ad { flex-direction: column; align-items: center; text-align: center; } .ia_lef { max-width: 100%; } .ia_lef a img { border-radius: 8px 8px 0 0; } .ia_rig { padding:15px; width: 100%; } .ia_button { width: 100%; } .




Comments