研究者らは、Microsoft公式のAzure DevOps Model Context Protocol(MCP)サーバーに影響するプロンプトインジェクションの脆弱性を公表した。この脆弱性により、AIコーディングエージェントが開発者自身の権限を使って機密情報にアクセスさせられる可能性がある。
その調査結果は、プルリクエストに埋め込まれた隠れた指示によって、信頼されたAIアシスタントがレビュー担当者に知られることなく意図しない操作を実行させられる仕組みを示している。
Azure DevOpsのプロンプトインジェクションに関する主なポイント
- Azure DevOpsのプルリクエストに埋め込まれたプロンプトインジェクションにより、AIコーディングエージェントが開発者の正当な権限を使って不正な操作を実行させられる可能性がある。
- この攻撃は、ソフトウェアの脆弱性や窃取された認証情報ではなく、ユーザーとAIアシスタントの信頼関係を悪用する。
- 研究者らは、Microsoftのプロンプトインジェクション対策の実装に一貫性がなく、プルリクエストの説明が脆弱な状態に置かれていることを突き止めた。
- 企業データ、信頼できないコンテンツ、外部通信チャネルにアクセスできるAIエージェントは、プロンプトインジェクションの新たな攻撃経路を生み出す。
- 組織は、AIエージェントのセキュリティリスクを低減するため、最小権限アクセス、AIガバナンス、アクティビティ監視、インシデント対応テストを組み合わせるべきだ。
Azure DevOpsのMCP脆弱性の仕組み
MicrosoftのAzure DevOps MCPサーバーを使うと、AIコーディングアシスタントは、プルリクエスト、パイプライン、Wiki、作業項目、ソースリポジトリなどのAzure DevOpsリソースを直接操作できる。
AIエージェントは認証済みユーザーの権限で動作するため、そのユーザーがアクセスを許可されているプロジェクト全体で正当な操作を実行できる。
研究者らは、Azure DevOpsの単一プロジェクトにアクセスできる攻撃者が、プルリクエストの説明内にあるHTMLコメントへ隠れた指示を埋め込めることを突き止めた。
このコメントはAzure DevOpsのインターフェース上では人間のレビュアーから見えないままだが、APIによって返され、コードレビュー中にAIエージェントへ直接渡される。
開発者がAIアシスタントにプルリクエストのレビューを依頼すると、隠れたプロンプトがエージェントの本来のタスクを上書きし、レビュー担当者の認証情報を使って追加の操作を実行するよう指示する。
Microsoftは責任ある情報開示を受け、この問題を認識してトリアージを行った。
プロンプトインジェクションによってAzure DevOpsでプロジェクト横断アクセスが可能になる仕組み
研究者らによると、この攻撃はユーザーの認証情報の侵害や、Azure DevOpsの権限の直接的な悪用には依存しない。
その代わりに、開発者とAIアシスタントの信頼関係を悪用する。
実証された概念実証では、攻撃者が隠れた指示を含む、一見正当なプルリクエストを作成した。
レビュアーがAI支援レビューを開始すると、エージェントは次の操作を実行した。
- 隠れたプロンプトインジェクションを読み取った。
- 攻撃者には利用できない別プロジェクトのパイプラインにアクセスした。
- そのプロジェクトから機密性の高いWikiコンテンツを取得した。
- 取得した情報を攻撃者のプルリクエストに投稿した。
すべての操作がレビュアーの正当な権限を使って実行されたため、その活動は認可されたものに見えた。
研究者らはこれを、信頼されたシステムが攻撃者に代わって自身の権限を悪用するよう操られる、典型的な「混乱した代理人(confused deputy)」の状況だと説明している。
MicrosoftがAzure DevOpsのプロンプトインジェクション対策に講じた措置
研究では、Microsoftがすでに「スポットライティング」と呼ばれる緩和策を実装していたことも判明した。これは信頼できないコンテンツに印を付け、AIモデルがデータと実行可能な指示をより適切に区別できるようにするものだ。
しかし、この保護はAzure DevOps MCPサーバー全体に一貫して適用されていなかった。
パイプラインやWikiのコンテンツを返すツールではスポットライティングが使われていた一方、プルリクエストの説明を返すツールでは使われておらず、インジェクション経路が露出したままになっていた。
研究者らは、スポットライティングによってプロンプトインジェクション攻撃の難度は高まるものの、リスクが完全になくなるわけではないと指摘した。
AIエージェントのセキュリティがソフトウェアの脆弱性を超えて広がる理由
この調査結果は、自律型AIエージェントを導入する組織にとって、増大する課題を示している。
AIシステムがコードをレビューし、プロジェクトを要約し、ワークフローを起動し、企業リソースにアクセスする役割を担うようになる中、攻撃者は基盤となるソフトウェアではなく、意思決定プロセスを標的にしている。
プルリクエストのレビューやその他の開発タスクが自動的に開始される環境では、隠れたプロンプトインジェクションが人間の操作なしに実行される可能性があり、潜在的な攻撃対象領域が拡大する。
この調査結果は、研究者らがAIエージェントにとっての「致命的な三要素」と呼ぶものも浮き彫りにしている。
- ユーザーの認証情報を介した機密性の高い企業データへのアクセス。
- 攻撃者が制御するコンテンツへのさらされやすさ。
- 取得した情報を外部の送信先へ送信する能力。
個別に見れば、これらの機能はいずれも正当なAI自動化を支える。だが、組み合わせることで、信頼されたエージェントを誘導して不正な操作を実行させるプロンプトインジェクション攻撃の機会が生まれる。
組織がAIエージェントのセキュリティリスクを低減する方法
組織がAIエージェントをソフトウェア開発ワークフローに組み込む中、セキュリティチームはプロンプトインジェクションとエージェントへの過剰な権限の両方に対処する制御策を導入すべきだ。
- 最小権限アクセスを適用し、AIエージェントの権限を定期的に見直す。
- プルリクエスト、コメント、課題を、その他のユーザー生成コンテンツと同様に信頼できない入力として扱う。
- 人間による承認を必須とし、プロジェクト横断アクセスやデータ取得など、機密性の高いAIエージェントの操作に適用する。
- 監視し、AIエージェントの活動を監査して、異常なツールの使用、プロジェクト横断の挙動、データアクセスを確認する。
- MCPサーバー、AI開発ツール、それらを支える統合機能を最新のセキュリティパッチで更新する。
- AIガバナンスポリシーを実装し、承認済みのワークフローを定義するとともに、高リスクの自動化を制限する。
- テストするインシデント対応計画にAIエージェントの侵害とプロンプトインジェクションのシナリオを組み込み、検知と対応の能力を検証する。
これらの対策を総合的に講じることで、組織は全体的なリスクの露出を抑えられる。
結論:Azure DevOpsのプロンプトインジェクションが浮き彫りにするAIエージェントのリスク
AIエージェントがユーザーに代わって読み取り、判断し、行動する能力を高める中、組織は新たに出現するAI主導の攻撃手法を検知するため、従来のエンドポイントやネットワークの監視に加えて、エージェントの挙動を可視化する必要がある。
こうした進化するリスクに対処するには、組織はAIガバナンスを補完するゼロトラスト戦略を採用し、機密性の高いリソースへのアクセスを許可する前に、ユーザー、デバイス、ワークロード、AIエージェントを継続的に検証すべきだ。





