eSecurity Planet のコンテンツおよび製品推奨は編集上の独立性を保っています。パートナーへのリンクをクリックいただくことで、当社が収益を得る場合があります。 詳細はこちら
研究者らが、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アシスタントの間の信頼関係を悪用します。
実証されたPoC(概念実証)では、攻撃者が一見正当に見えるプルリクエストを作成し、その中に隠しコマンドを仕込みました。
レビュー担当者がAI支援によるレビューを開始した後、このエージェントは次のような動作をとりました。
- 隠されたプロンプトインジェクションを読み取った。
- 攻撃者からはアクセスできない別プロジェクトのパイプラインにアクセスした。
- そのプロジェクトから機密のWikiコンテンツを取得した。
- 取得した情報を攻撃者のプルリクエストに投稿し返した。
すべての操作がレビュー担当者の正当な権限を用いて実行されたため、この一連の活動は正規のものに見えてしまいました。
研究者らは、これを信頼されたシステムが操られて攻撃者のために自らの権限を悪用してしまう、典型的な「混乱した代理人(confused deputy)」のシナリオだと説明しています。
Microsoftによる Azure DevOps プロンプトインジェクション対策の実装状況
今回の調査では、Microsoftがすでに「スポットライティング」と呼ばれる緩和策を実装済みであることも判明しました。これは信頼できないコンテンツにマークを付け、AIモデルがデータと実行可能な指示とをより適切に区別できるようにするものです。
しかし、この保護策はAzure DevOps MCPサーバー全体で一貫して適用されていませんでした。
パイプラインやWikiのコンテンツを返すツールにはスポットライティングが適用されていた一方、プルリクエストの説明文を返すツールには適用されておらず、インジェクションの侵入経路が残されたままになっていました。
研究者らは、スポットライティングはプロンプトインジェクション攻撃の難易度を上げるものの、リスクを完全に排除するものではないと指摘しています。
AIエージェントのセキュリティがソフトウェアの脆弱性にとどまらない理由
今回の調査結果は、自律的なAIエージェントを導入する組織にとって、課題が拡大しつつあることを示しています。
AIシステムがコードのレビュー、プロジェクトの要約、ワークフローの起動、企業リソースへのアクセスなどを担うようになるにつれ、攻撃者は基盤となるソフトウェアそのものではなく、意思決定プロセスを標的にするようになっています。
プルリクエストのレビューやその他の開発タスクが自動的に開始される環境では、隠されたプロンプトインジェクションが人間の関与なしに実行されてしまう可能性があり、攻撃対象領域が拡大することになります。
今回の調査結果はまた、研究者らが「致命的な三要素(lethal trifecta)」と呼ぶ、AIエージェントが抱える構造的なリスクも浮き彫りにしています。
- ユーザーの認証情報を通じた機密性の高い企業データへのアクセス。
- 攻撃者が制御するコンテンツへの露出。
- 取得した情報を外部の宛先へ送信できる能力。
これらの機能は個別に見れば、いずれも正当なAI自動化を支えるものです。しかし組み合わさることで、信頼されたエージェントを操り不正な操作を実行させるプロンプトインジェクション攻撃の余地が生まれてしまいます。
組織がAIエージェントのセキュリティリスクを低減する方法
組織がソフトウェア開発ワークフローにAIエージェントを組み込むにあたり、セキュリティチームはプロンプトインジェクションとエージェントの過剰な権限の両方に対応する管理策を導入すべきです。
- 最小権限アクセスを適用し、AIエージェントの権限を定期的に見直す。
- プルリクエスト、コメント、Issueなど、ユーザーが生成したコンテンツはすべて信頼できない入力として扱う。
- プロジェクト横断アクセスやデータ取得を含む、AIエージェントによる機密性の高い操作には人間による承認を必須とする。
- 通常とは異なるツールの使用状況、プロジェクト横断的な挙動、データアクセスについて、AIエージェントの活動を監視し監査する。
- MCPサーバー、AI開発ツール、および関連する統合機能を、常に最新のセキュリティパッチで更新しておく。
- 承認済みのワークフローを定義し、高リスクな自動化を制限するAIガバナンスポリシーを導入する。
- AIエージェントの侵害やプロンプトインジェクションのシナリオを用いてインシデント対応計画をテストし、検知・対応能力を検証する。
これらの対策を組み合わせることで、組織は全体的なリスクの露出を低減できます。
結論:Azure DevOpsのプロンプトインジェクションが浮き彫りにするAIエージェントのリスク
AIエージェントがユーザーに代わって情報を読み取り、判断し、行動する能力をますます高めていく中で、組織は従来のエンドポイントおよびネットワーク監視に加え、エージェントの挙動そのものを可視化する仕組みを整え、新たに台頭するAI主導型の攻撃手法を検知していく必要があります。
こうした進化するリスクに対応するため、組織はAIガバナンスに加えて、機密性の高いリソースへのアクセスを許可する前にユーザー、デバイス、ワークロード、AIエージェントを継続的に検証するゼロトラスト戦略を組み合わせるべきです。
翻訳元: https://www.esecurityplanet.com/threats/azure-devops-prompt-injection-targets-ai-coding-agents/