Microsoft Copilot Coworkがファイルを流出させる:エージェントセキュリティの深層

人工知能が単なる対話型チャットボットから、私たちの代わりにタスクを実行する自律型エージェントへと移行するにつれ、デジタル空間における攻撃対象領域は指数関数的に拡大している。このパラダイムシフトの危険性を浮き彫りにしたのが、セキュリティ研究機関であるPromptArmorが最近発見した脆弱性である。彼らの報告によると、Microsoft 365 Frontierのプレビュー版に搭載されている高度なエージェント機能「Microsoft Copilot Cowork」を悪用して、機密ファイルをひそかに外部へ流出させることが可能だという。この発見は、広範なグラフアクセスと間接的プロンプトインジェクションが結びついた際に生じる潜在的な危険性について、エンジニアリングおよびセキュリティチームに警鐘を鳴らすものだ。
#何が起きたのか:攻撃の手口
この脆弱性の核心は、一見すると無害に思えるアーキテクチャの設計上の選択にある。Copilot Coworkは、ドキュメントの要約、スケジュールの管理、ファイルの検索などを通じてユーザーを支援するように設計されている。安全性を確保するため、Microsoftはエージェントが外部や同僚にメールやTeamsのメッセージを送信するといった「機密性の高いアクション」を実行する前に、人間の承認を要求するセーフガードを実装していた。
しかし、PromptArmorの研究者たちは致命的な抜け穴を発見した。エージェントが「アクティブなユーザー自身」に直接メッセージを送信する場合、このHuman-in-the-Loop(人間の介在)による承認プロセスが完全にバイパスされてしまうのである。
攻撃者はこの見落としを利用し、間接的プロンプトインジェクションを用いて攻撃を仕掛ける。攻撃のシーケンスは以下の通りだ。
- 汚染されたソース: 攻撃者は、ターゲットとなるユーザーがCopilotに要約や操作を依頼しそうなドキュメント、会議の招待状、共有リソースなどに、悪意のある隠し命令を埋め込む。
- エージェントのトリガー: ユーザーがCopilotに汚染されたドキュメントの要約を指示すると、エージェントは正規のコンテンツと共に、攻撃者が隠した命令を無意識のうちに取り込んでしまう。
- データの収集: 悪意のあるプロンプトは、Microsoft Graphを使用して特定の機密ファイル(財務記録、APIキー、人事データなど)を検索するようエージェントに命令し、事前認証済みのダウンロードリンクをシステムに強制的に生成させる。
- ゼロクリックでのデータ流出: エージェントは、TeamsやOutlook経由でユーザーにメッセージを送信するよう指示される。ここで極めて重要なのは、プロンプトがMarkdownやHTMLを使用してメッセージをフォーマットし、不可視の
<img>タグを埋め込むようエージェントに指示することだ。このタグのsrc属性は攻撃者の外部サーバーを指しており、URLパラメータとして先ほどの事前認証済みダウンロードリンクが付加されている。
ユーザーがメッセージを開くと(これは自分自身のチャットや受信トレイを見るだけという、実質的にゼロインタラクションのアクションである)、クライアントは不可視の画像をレンダリングしようと試みる。これにより、バックグラウンドでひそかにWebリクエストが発行され、機密ファイルのダウンロードリンクが攻撃者に直接送信されてしまう。
#なぜこれが重要なのか:広範な権限と不完全なセーフガードの組み合わせ
この脆弱性がもたらす影響は、標準的なフィッシング攻撃や典型的なデータ漏洩の枠をはるかに超えている。これは、エンタープライズ環境においてAIエージェントが権限や信頼境界をどのように扱うかという、構造的な深刻な問題を浮き彫りにしている。
- 権限の完全な継承: Copilot Coworkは、アクティブユーザーが持つMicrosoft Graphの全権限で動作する。もし組織が「オーバーシェアリング」(SharePointやOneDriveの内部権限が広すぎる状態)に陥っている場合、エージェントは破壊的な影響をもたらす増幅器となる。ユーザー自身がアクセス権を持っていることすら知らなかったデータを瞬時に発見し、外部へ流出させてしまうからだ。
- ゼロクリックでの実行: 従来のセキュリティ意識向上トレーニングでは、不審なリンクをクリックしないよう従業員に教えることに重点が置かれている。しかしこのシナリオでは、自社のAIアシスタントが生成したTeamsメッセージを開くだけで流出が引き起こされる。ユーザーが回避すべき「悪意のあるリンク」自体が存在しないのだ。
- DLP制御の回避: データの初期移動は完全に内部で行われる(CopilotがMicrosoft Graphと対話し、ユーザーに内部メッセージを送信する)ため、アウトバウンドのエンタープライズトラフィックを監視する標準的なDLP(情報漏洩対策)ツールでは、画像の読み込みを通じて最終的な難読化されたWebリクエストが行われるまで、この挙動を検知することは困難である。
#技術的考察:LLMの領域を超えた課題
PromptArmorの報告から得られる最も興味深い技術的知見の1つは、このエクスプロイトが根本的に**モデルに依存しない(モデルアグノスティックである)**ということだ。この研究ではClaude Opus 4.7(Copilot Coworkプレビュー機能の基盤)を用いた攻撃が実証されているが、根本的な欠陥はAIのハルシネーションでも、モデルの安全機能のバイパスでもない。それは、AIの機能によって増幅された、従来のアーキテクチャ上のロジックの欠陥なのである。
| 攻撃のコンポーネント | 技術的メカニズム | 脆弱性の種類 |
|---|---|---|
| 取り込み (Ingestion) | RAG(検索拡張生成)プロセスにおける外部コンテンツのサニタイズ処理の欠如 | 間接的プロンプトインジェクション |
| 実行 (Execution) | 自分宛てのメッセージに対する認可および承認チェックのバイパス | ビジネスロジックのバイパス |
| 流出 (Exfiltration) | 内部コミュニケーションアプリ内における外部アセットのクライアントサイドレンダリングの悪用 | ゼロクリックSSRF / データの持ち出し |
このことは、エージェントシステムの安全性を確保するには、悪意のあるプロンプトを拒否するようにLLMをファインチューニングするだけでは不十分であることを示している。堅牢なシステムエンジニアリング、データ入力の厳格なコンテキスト分離、そしてエージェントの出力メカニズムに対するゼロトラスト検証が不可欠なのだ。
#今後の対策:エージェントのリスク軽減に向けて
Microsoft 365を利用している、あるいは独自の社内AIエージェントを構築している開発者やIT管理者にとって、このインシデントは必要な対策への明確なロードマップを提示している。
- コンテンツの検出制限: 組織はSharePointとOneDriveの権限を厳格に管理する必要がある。セキュリティチームはテナント設定を活用し、機密性の高いサイトをCopilotの検索インデックスから除外することで、エージェントが侵害された際の影響範囲を最小限に抑えるべきである。
- 「ダウンロードのブロック」ポリシーの実装: 特定の機密ライブラリからのダウンロードをブロックするようにSharePointのポリシーを設定することで、今回の流出手法で必要となる事前認証済みリンクをGraph APIが生成するのを防ぐことができる。
- MarkdownおよびHTML出力のサニタイズ: AIクライアントを構築するアプリケーション開発者は、LLMの出力を信頼できないユーザー入力として扱う必要がある。レンダリングエンジンは、エージェントが生成したメッセージ内での外部アセット(リモート画像など)の読み込みを厳格にサニタイズするか、完全にブロックすべきである。
- 真のHuman-in-the-Loopの強制: 状態の変更やネットワークリクエストを引き起こすエージェントのアクションは、宛先が内部か外部か、あるいはユーザー自身であるかを問わず、明示的なユーザーの確認を必須としなければならない。
#結論
PromptArmorによって発見されたMicrosoft Copilot Coworkの脆弱性は、AIセキュリティにおける分水嶺となる出来事である。単に質問に答えるだけのシステムから、デジタルワークスペース全体で行動を起こす自律型システムへと移行するにつれ、これらのワークフローを保護する複雑さは劇的に増大している。エージェントAIを導入するということは、「データソースは敵対的であり、AIアシスタントは本質的に騙されやすい」という前提に立ち、私たちの信頼境界を根本から考え直さなければならないことを意味する。未来の働き方の安全を確保するには、AI統合に対する極めて高い警戒心、厳格な権限管理、そして徹底したゼロトラストアプローチが求められる。