AIコーディング入門
第4回:MCPの脆弱性とA2A脅威分析から学ぶセキュリティ実装

Share

Security NEWS TOPに戻る
バックナンバー TOPに戻る

AIコーディング4アイキャッチ(MCPの脆弱性とA2A脅威分析から学ぶセキュリティ実装)

前回記事で述べたように、AIエージェントの普及に伴い、MCP(Model Context Protocol)やA2A(Agent-to-Agent Protocol)の実装事例が増えています。しかし、標準化が進む一方で、脆弱性やセキュリティリスクも現実化しつつあります。本記事では、AIエージェントの基盤を支える標準プロトコル「MCP(Model Context Protocol)」と「A2A(Agent-to-Agent Protocol)」をさらに深く掘り下げ、AIエージェントを安全に活用するための設計指針と実装上の留意点を整理します。

※本稿は2025年7月上旬に執筆しているものです。ご覧いただく時期によっては古い情報となっている場合もありますので、ご承知おきください。

MCPの脆弱性

MCPの脆弱性の事例としては以下のものが挙げられます。

AsanaのMCPサーバの事例

プロジェクトやタスクを一元管理するプラットフォーム(SaaS)・Asanaが2025年5月から提供し始めたMCPサーバに脆弱性があったもの。脆弱性により、MCPを使用しているユーザーが、LLMと接続しているチャットインターフェース越しに他の組織のプロジェクト、チーム、タスクを含むAsanaオブジェクトを取得できた可能性があるとされています*1。前回ご紹介した「図4:MCP関連の主なセキュリティ課題」にも挙げたように、最小特権の付与の原則の徹底(SaaS提供事業者の場合にはテナント間の厳密な分離も含みます)、リクエストやLLMの生成クエリのログの記録といった課題が改めて浮き彫りになったといえます。

A2Aのセキュリティ課題

MAESTRO脅威モデリングに当てはめたときには以下のような問題があると指摘されています。なおMAESTRO脅威モデリングについては下表でご紹介します。

表:A2Aプロトコルのセキュリティ課題のMAESTROモデル分析

レイヤ脅威概要被害を受ける人・組織発生確率影響軽減策
1メッセージ生成攻撃 (回避)攻撃者が悪意のある入力を生成し、エージェントのモデルに誤った、偏った、または有害なメッセージを生成させ、通信中の安全メカニズムを迂回する。モデル出力の非決定論的性質が、これらの攻撃の検出と防止をより困難にする。A2A エージェントを利用する組織、システムの利用者入力検証: エージェントのモデルにコンテンツを送信する前に厳格な入力検証を実施する。入力をサニタイズする。
出力検証: 生成されたメッセージのコンテンツに有害なコンテンツ、矛盾、または予期しない動作がないか確認する。コンテンツフィルタリングを使用する。非決定論的なモデルの動作に対する出力検証の堅牢性を高めるために、アンサンブル法や敵対的訓練などの技術を採用する。
慎重なプロンプト設計: 敵対的攻撃の影響を受けにくいプロンプトを設計する。モデルをガイドするために少数ショットの例を使用する。
モデル抽出A2A を介した過度または巧妙な対話により、プロプライエタリモデルの動作やパラメータに関する十分な詳細が提供され、モデルの推論または盗難が可能になる。エージェントの自律性が、予期しない情報漏洩につながる可能性のある、緩やかに制御された対話パターンを促進することで、この問題を増幅させる可能性がある。モデル所有者、企業大(潜在的に)厳格なレート制限: セッション/ユーザー/エージェントごとの A2A 対話にレート制限を適用する。
異常検出: プロービングやデータ抽出の試みを示唆する異常なクエリパターンを監視する。
2データ汚染 (メッセージ部分)攻撃者がエージェント間で交換されるメッセージに悪意のあるコンテンツを注入し、意思決定に使用されるデータを侵害する。エージェントの相互作用の動的な性質は、このデータポイズニングが急速に広がり、連鎖的な影響を及ぼす可能性があることを意味する。エージェント、A2A エージェントの決定に依存する組織中~高強力な検証: ファイルの整合性チェック、DataParts のスキーマ検証、TextParts のコンテンツフィルタリングを含む、すべてのメッセージパーツに対する厳格な検証を実施する。
最小特権: 最小特権の原則に基づいて、機密データへのエージェントのアクセスを制限する。
出どころの追跡: メッセージ内のデータの出どころと系統を追跡し、信頼性を評価する。送信元エージェントのIDとデータに適用された変換を考慮するために出どころの追跡を拡張する。
機微情報の漏洩エージェントが、過度に広範な権限、データ管理ミス、またはモデルの幻覚により、A2A 通信または成果物で意図せず機密情報(PII、機密情報)を公開する。個人(PII の所有者)、機密情報を扱う組織中~大自動 PII 編集: 個人識別情報(PII)の検出と編集のための自動プロセスを採用する(例: Gemini のフィルター機能)。
きめ細かなアクセス制御: エージェントの役割とタスクのコンテキストに応じて堅牢なアクセス制御を実装する。
コンテキスト認識型ガードレール: エージェントが機密情報や制限された情報を共有するのを防ぐためにガードレールを追加する。
3許可されていないエージェントのなりすまし攻撃者が正当なエージェントになりすまし、機密情報にアクセスしたり、他のエージェントを操作したりする。変化する資格情報や検証可能なクレデンシャルによって示されるエージェント ID の動的な性質は、この脅威をさらに複雑にする。他のエージェント、A2A プロトコルを利用する組織分散型識別子(DIDs): エージェントに ID 検証のために DID を使用することを義務付ける。ID の変更を検出するために、DID ドキュメントを定期的に更新および再検証するメカニズムを実装する。
安全な認証: DID ベースの署名や相互 TLS などの強力な認証メカニズムを実装し、エージェントの ID を検証する。リプレイ攻撃を防ぎ、通信時に資格情報が有効であることを確認するために、タイムスタンプ付き署名を使用する。
エージェントレジストリ: エージェントの正当性を検証するために、信頼されたエージェントレジストリを実装する。レジストリは動的なエージェント属性を処理できる必要があり、継続的に更新されるべきである。
メッセージインジェクション攻撃攻撃者が A2A メッセージに悪意のあるコンテンツを注入し、受信エージェントの動作を操作する。エージェントの自律性は、侵害されたエージェントが人間の介入なしに悪意のあるメッセージを伝播する可能性があるため、この脅威を増幅させる。メッセージを受信するエージェント、操作されたエージェントによって制御されるシステム大(潜在的に)M デジタル署名: すべての A2A メッセージにデジタル署名を実装し、整合性と否認防止を確保する。メッセージが有効と見なされる前に、複数の信頼されたエージェントからの承認を必要とするマルチ署名スキームを実装する。
入力検証: メッセージパーツやメタデータを含むすべてのメッセージコンテンツに厳格な入力検証を実施する。
コンテンツフィルタリング: メッセージ内の悪意のあるコンテンツを検出してブロックするためにコンテンツフィルタリングを使用する。
プロトコルダウングレード攻撃攻撃者がエージェントに A2A プロトコルのセキュリティの低いバージョンを使用させる。非決定論的なエージェントの相互作用により、予測がより困難な追加の攻撃ベクトルが開かれる可能性がある。A2A エージェント、A2A 通信に依存するシステム大(潜在的に)安全なプロトコルネゴシエーション: 相互認証を伴うトランスポート層セキュリティ(TLS)などの安全なプロトコルネゴシエーションメカニズムを実装し、エージェントが最も安全なプロトコルバージョンを使用するようにする。
廃止ポリシー: 古いプロトコルバージョンに対する廃止ポリシーを明確に定義し、実施する。
信頼できる企業を装った悪意のある A2Aサーバ攻撃者が信頼できる企業や組織が運営しているように見せかけた悪意のある A2A サーバをセットアップし、エージェントを騙して通信させ、機密情報を漏洩させたり、悪意のあるタスクを実行させたりする可能性がある。エージェント、ユーザー/組織(データ窃取の被害者)、A2A 運用に依存する組織、なりすまされた信頼できる企業(評判の損害)大(潜在的に)サーバ ID の分散型識別子(DIDs): エージェントと同様に、A2A サーバは DID を使用して識別され、その DID ドキュメントは検証可能で定期的に更新されるべきである。A2A プロトコルは、サーバからエージェントへの通信に DID ベースの認証を義務付けるべきである。
Agent Cards の証明書透明性(CT): SSL/TLS 証明書に似た証明書透明性(CT)のようなメカニズムを実装する。Agent Cards は公開ログ(例:ブロックチェーンや分散型台帳)に登録でき、エージェントが Agent Card が正当であり、改ざんされていないことを検証できるようにする。
相互 TLS(mTLS)認証: エージェントと A2A サーバ間の相互 TLS(mTLS)認証を強制する。
サーバードメインの DNSSEC: A2A サーバの Agent Card にドメイン名を含む URL が含まれている場合、DNSSEC でドメインを保護し、DNS スプーフィング攻撃を防ぐ。
エージェントレジストリ検証: A2A サーバと対話する前に、エージェントは信頼されたエージェントレジストリを参照し、サーバが正当であることを検証すべきである。
Agent Card 署名検証: エージェントはサーバの公開鍵または DID を使用して Agent Card を暗号学的に検証し、カードが改ざんされていないことを確認すべきである。
重要操作に対する多要素認証: 機密性の高い操作の場合、エージェントは A2A サーバと通信する前に多要素認証(MFA)を要求すべきである。
行動分析とレピュテーションシステム: なりすましを示唆する異常なサーバ活動パターンを検出するために行動分析を実装する。
監査とログ: エージェントと A2A サーバ間のすべての通信の詳細な監査ログを維持する。
ハニーポットサーバー: 攻撃者を引きつけ、その技術に関する情報を収集するために、ハニーポット A2A サーバをデプロイする。
4T4.1: DoS 攻撃攻撃者が A2A サーバにリクエストを殺到させ、エージェントが通信不能になる。エージェントの自律的な性質は、DoS 攻撃がエコシステム全体に急速に連鎖する可能性があることを意味する。A2A サーバ、A2A サービスを利用するユーザー/組織、エージェントエコシステム中~高堅牢なインフラストラクチャ: ダウンタイムを最小限に抑えるために、冗長で地理的に分散されたインフラストラクチャを使用する。
DDoS 防御: 堅牢な DDoS 緩和策を実装する。
レート制限: 過剰なリクエストを防ぐためにレート制限を実装する。リアルタイムのネットワーク状況とエージェントの活動パターンに基づいて調整される適応型レート制限を実装する。
5ログデータの隠蔽・改ざん攻撃者が悪意のある活動を隠蔽するためにログエントリを変更または削除する。エージェントの動作の複雑で予測不可能な性質は、正当な活動と、操作されたログによって隠蔽された悪意のある行動を区別することをより困難にする。セキュリティチーム、監査担当者、インシデントレスポンダー、ログの整合性に依存する組織大(潜在的に)安全なログ記録インフラストラクチャ: 強力なアクセス制御を備えた安全なログ記録インフラストラクチャを使用する。
ログ整合性監視: チェックサムまたはデジタル署名を使用してログデータの整合性を検証する。
異常検出: エージェントの固有の非決定論性を考慮に入れた高度な異常検出技術を採用する。
6エージェントの認証情報への認可されないアクセス攻撃者がエージェントの資格情報(例: 秘密鍵)にアクセスし、エージェントになりすまして悪意のある行動を実行できるようにする。エージェントが検証可能な資格情報を動的に取得および提示するため、侵害されたエージェントは迅速に強力な新しい能力を獲得し、損害の可能性を拡大させる。エージェント所有組織、侵害されたエージェントがアクセスするシステム安全な鍵ストレージ: エージェントの資格情報をコードに直接埋め込まない。ハードウェアセキュリティモジュール(HSM)または安全な鍵管理サービスを使用する。
鍵のローテーション: エージェントの資格情報を定期的にローテーションする。
多要素認証: ユーザーが実際に制御していることを確認するために MFA を使用する。
機微情報へのコンプライアンスの欠如エージェントが PII を含むデータを適切な保護なしに送信、受信、処理する。エージェントの自律性がこれらの脅威を強める。機密データを扱う組織(法的・経済的罰則)、個人(PII の所有者)中~高大(潜在的に。法的・経済的罰則を伴う)データ最小化: 個人データの収集を削減する。仮名化/匿名化:。
データ暗号化: エンドツーエンドの暗号化と鍵の保護を確実にする。
委任権限の濫用実装の脆弱性により、エージェントが与えられた権限を超える可能性がある。権限を委譲した組織、エージェントが動作するシステム(明示されていない。なお実装に依存する可能性が高い)(明示されていないが一般的に委任権限の濫用による影響は大きい)明示的なユーザー同意:。
詳細な監査:。
厳格なトークン検証:。
7悪意のあるエージェントの相互作用侵害されたエージェントが他のエージェントと相互作用し、危害を与えたり、脆弱性を悪用したり、予期しない結果を引き起こしたりする。エージェントの ID が変化し、動作が予測不可能なため、あるエージェントが他のエージェントよりも大きな損害を引き起こす可能性を予測することは困難である。エコシステム内の他のエージェント、エージェントに接続されたシステム中~低高(潜在的に影響度が高いと想定される)安全なエージェント間通信: エージェント間の相互作用に安全な通信プロトコルと認証メカニズムを使用する。
エージェントレピュテーションシステム: エージェントの動作を追跡し、悪意のあるエージェントを識別するためにレピュテーションシステムを実装する。レピュテーションシステムは、エージェントの ID の動的な性質を処理でき、操作に耐性がある必要がある。
サンドボックス化: 侵害されたエージェントの影響を制限するために、エージェントを相互に隔離する。エージェントが定義された境界を超えるのを防ぐために、ランタイム監視とポリシー実施を実装する。

出典:「Threat Modeling Google’s A2A Protocol with the MAESTRO Framework」6: Threat Modeling Results: Applying MAESTRO Layer by Layerより弊社翻訳
※ 本図はOWASPが定義するMAESTROモデルをベースに記載されたhttps://cloudsecurityalliance.org/blog/2025/04/30/threat-modeling-google-s-a2a-protocol-with-the-maestro-frameworkの6: Threat Modeling Results: Applying MAESTRO Layer by Layerを弊社にて翻訳、表に編集しなおしたものです。

AIエージェント時代における標準プロトコルのリスク管理

AIエージェントの普及に伴い、MCPやA2Aといった標準プロトコルは不可欠な基盤となりつつあります。しかし、標準化による利便性の裏側には、同じ脆弱性が広範囲に拡散するリスクが潜んでいます。リスク管理の基本は「標準=安全」と思い込まず、実装ごとにセキュリティ要件を精査することです。特にアクセス制御、暗号化、監査ログといった基礎的な対策をプロトコルレベルで徹底する必要があります。

さらに今後は、従来の「人間を前提としたセキュリティモデル」では対応できない課題が顕在化していくことが予想されます。次回第5回では、Non Human Identity(NHI)の登場や制御不能なAIエージェントといった新たな脅威に焦点を当て、従来型セキュリティの限界とその打開策について考察します。


―第5回「AIとセキュリティ:Non‑Human Identity とAIエージェントの課題」へ続く―

【連載一覧】

第1回「Vibeコーディングとプロンプトエンジニアリングの基礎
第2回「プロンプト以外で効率化!開発体験の改善手法
第3回「AIエージェント時代のコーディング:MCPとA2Aとは
第4回「MCPの脆弱性とA2A脅威分析から学ぶセキュリティ実装」
第5回「AIとセキュリティ:Non‑Human Identity とAIエージェントの課題
第6回「AIエージェントのセキュリティ対策と今後の展望


Security NEWS TOPに戻る
バックナンバー TOPに戻る

ウェビナー開催のお知らせ

  • 2025年9月3日(水)13:00~14:00
    止まらないサイバー被害、その“対応の遅れ”はなぜ起こる?~サイバー防衛の未来を拓く次世代XDR:大規模組織のセキュリティ運用を最適化する戦略的アプローチ~
  • 2025年9月10日(水)14:00~15:00
    フィッシング攻撃の最新脅威と被害事例〜企業を守る多層防御策〜
  • 2025年9月17日(水)14:00~15:00
    サイバーリスクから企業を守る ─脆弱性診断サービスの比較ポイントとサイバー保険の活用法─
  • 最新情報はこちら


    資料ダウンロードボタン
    年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
    お問い合わせボタン
    サービスに関する疑問や質問はこちらからお気軽にお問合せください。

    Security Serviceへのリンクバナー画像
    BBsecコーポレートサイトへのリンクバナー画像
    セキュリティ緊急対応のバナー画像

    AIコーディング入門
    第3回:AIエージェント時代のコーディング:MCPとA2Aとは

    Share

    Security NEWS TOPに戻る
    バックナンバー TOPに戻る

    AIコーディング3アイキャッチ(AIエージェント時代のコーディング)

    生成AIを活用したコーディングの現場で、いま最も注目されているトピックのひとつが「AIエージェント」です。エージェントは人間の最小限の指示をもとに計画・推論・実行を繰り返す自律的な仕組みであり、シングルエージェントからマルチエージェントまで多様なアーキテクチャが登場しています。さらに通信の標準化を担うMCP(Model Context Protocol)A2A(Agent-to-Agent)といったプロトコルの整備が進み、エコシステム全体に大きな影響を与えています。本記事では、AIエージェントの基本構造、利点とリスク、新しい標準プロトコルの動向について解説します。

    ※本稿は2025年7月上旬に執筆しているものです。ご覧いただく時期によっては古い情報となっている場合もありますので、ご承知おきください。

    AIエージェントとは何か

    生成AIを使用したコーディングのなかでも昨今注目を浴びているのがAIエージェント(Agentic AI)を用いたAgenticコーディングです。Agenticコーディングの前にまずはAIエージェントの動きを見てみましょう。AIエージェントは人間による最低限の指示や監督をもとに計画・推論・実行を繰り返す、自律的処理を行うAIです。

    シングルエージェントの仕組み

    まずはわかりやすい、単一のエージェントのみが動くシングルエージェントのアーキテクチャを見てみましょう。下図はシングルエージェントのアーキテクチャを示したものです。

    図1:シングルエージェントのアーキテクチャ

    シングルエージェントのアーキテクチャの図
    参考:OWASP LLM Applications & Generative AI Top 10(https://genai.owasp.org/resource/owasp-top-10-for-llm-applications-2025/), p.8より弊社翻訳

    シングルエージェントモデルではアプリケーションからの入出力(人間による指示)をもとに単一のエージェントが自律的にルーチンを実行し、LLMモデルや関連サービスとの間の連携を図り、出力を行います。人による監督はHuman in the loop(HITL)という形で行われます。この図の中でいうAIアプリケーション(及びエージェント)が各種サービスやデータベースなどと通信する際、昨今ではMCP (Model Context Protocol)を用いた標準化された通信プロトコルが用いられていることが増えています。MCPについては後程解説します。

    マルチエージェントの仕組み

    一方マルチエージェントのアーキテクチャは下図のとおりです。

    図2:マルチエージェントのアーキテクチャ

    マルチエージェントのアーキテクチャの図
    参考:OWASP LLM Applications & Generative AI Top 10(https://genai.owasp.org/resource/owasp-top-10-for-llm-applications-2025/), p.10より弊社翻訳

    マルチエージェントの場合はAIアプリケーション(及びエージェント)と各種サービス、DBなどとのMCPでの通信に加えて、エージェント間の通信(図中のマルチエージェント通信)が必要となります。エージェント間の通信を標準化したものがA2A(Agent2Agent)プロトコルになります。こちらも後程解説します。

    AIエージェントの利点とリスク

    AIエージェントを利用する場合、人間の監督・指示が最低限で済む一方で、以下のような利点と課題・リスクが存在します。

    図3:AIエージェントの利点と課題・リスク

    AIエージェントの利点・課題・リスク

    上記に挙げたAIエージェントのリスクのうち、「誤行動・報酬設計の欠陥」と「倫理・説明責任」を取り上げて解説します。

    誤行動・報酬設計の欠陥

    報酬のミススペックによりエージェントが意図しない行動をとることを指します*2。 最近の報告ではエージェントが自身の地位を脅かされる場合や、目標の対立が発生した場合に内通者のような不正行動を低率ながら遂行する可能性が指摘されています*2

    倫理・説明責任

    AIエージェントの自律判断の責任を負うのは誰かという問題。倫理的な問題に加えて著作権に代表されるような法的な問題に加えて、信頼性・公平性といった問題についての課題も指摘されています*3

    新しい標準プロトコル:MCPとA2A

    ここ最近、「MCP」や「A2A」といったキーワードを目にする機会が増えているのではないでしょうか。ここでは簡単にMCPとA2Aについてご紹介します。

    MCP(Model Context Protocol)とは

    MCPとはAIアプリケーションがLLMにコンテキストを提供する方法を標準化するプロトコルで、Anthropicによって仕様が策定され、現在はオープンソース化されています。現在C#、Java、Kotlin、Python、Ruby、Swift、TypeScript向けのSDKが提供されており、幅広い言語環境で利用できること、AIアプリケーションのUSB-Cポートとして標準化されていること、そして認証認可にOAuth2.1を用いることが必須要件となっている点など、順次仕様が変更されており、新しいプロトコルとして注目を浴びています。またオープンソースであることやそのコンセプトから多くの実装例がすでに存在しています。一方でセキュリティ上の問題点も指摘されています。

    図4:MCP関連の主なセキュリティ課題

    MCP関連のセキュリティ課題(仕様レベル・実装上の問題、AI・MCA独特の脆弱性、一般的な問題)

    A2A(Agent-to-Agent)とは

    A2AはGoogleが立ち上げたエージェント間の通信プロトコルで、2025年6月にLinux財団に寄付され、Linux財団を中心に開発が進められています。こちらはGoogleのVertexなどを皮切りに実装が始まっています。A2Aプロトコルはマルチエージェントでの処理のニーズの増大、クラウドでのベンダーロックイン問題の影響でベンダーロックインの回避への強い要求があったことや、AIエージェントに対するコンプライアンスやガバナンス要求(EUのAI法など)の高まりといったところにうまくマッチしたものとも言えます。

    AIエージェントは今後の開発を大きく変える存在ですが、その基盤を支えるのがMCPやA2Aといった標準プロトコルです。次回第4回では、これらの仕組みをより詳しく掘り下げ、エンジニアが知っておくべき活用ポイントを解説します。


    ―第4回「MCPの脆弱性とA2A脅威分析から学ぶセキュリティ実装」へ続く―

    【参考情報】

    【連載一覧】

    ―第1回「Vibeコーディングとプロンプトエンジニアリングの基礎」―
    ―第2回「プロンプト以外で効率化!開発体験の改善手法」―
    ―第3回「AIエージェント時代のコーディング:MCPとA2Aとは」―
    第4回「MCPの脆弱性とA2A脅威分析から学ぶセキュリティ実装
    第5回「AIとセキュリティ:Non‑Human Identity とAIエージェントの課題
    第6回「AIエージェントのセキュリティ対策と今後の展望

    Security NEWS TOPに戻る
    バックナンバー TOPに戻る

    ウェビナー開催のお知らせ

  • 2025年9月3日(水)13:00~14:00
    止まらないサイバー被害、その“対応の遅れ”はなぜ起こる?~サイバー防衛の未来を拓く次世代XDR:大規模組織のセキュリティ運用を最適化する戦略的アプローチ~
  • 2025年9月10日(水)14:00~15:00
    フィッシング攻撃の最新脅威と被害事例〜企業を守る多層防御策〜
  • 2025年9月17日(水)14:00~15:00
    サイバーリスクから企業を守る ─脆弱性診断サービスの比較ポイントとサイバー保険の活用法─
  • 最新情報はこちら


    資料ダウンロードボタン
    年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
    お問い合わせボタン
    サービスに関する疑問や質問はこちらからお気軽にお問合せください。

    Security Serviceへのリンクバナー画像
    BBsecコーポレートサイトへのリンクバナー画像
    セキュリティ緊急対応のバナー画像