【2026年版】AIエージェントの「自己増殖型プロンプトインジェクション(AIワーム)」封じ込めガイド——Morris II型攻撃がA2A・共有メモリ・MCPを伝播する仕組みと、伝播遮断・隔離(セグメンテーション)・増殖検知による封じ込め設計

  1. はじめに——「1体の汚染」から「群れの連鎖崩壊」へ
  2. 前提——「感染」と「増殖」はなぜ別問題か
    1. 感染(infection)——1体が汚染される
    2. 増殖(replication / propagation)——汚染が自分を複製して広がる
    3. 標準フレームワークでの位置づけ
  3. Morris IIが示した自己増殖の原理
  4. 伝播経路の3類型——どこを通って増えるのか
    1. 1. A2Aメッセージ経由
    2. 2. 共有メモリ・ベクトルDB経由(培地型)
    3. 3. MCP応答経由
  5. 増殖の動力学——R0(基本再生産数)でエージェント網を捉える
  6. 封じ込め設計①:伝播遮断——伝播確率を下げる
    1. 出力サニタイズ(境界での無害化)
    2. 来歴署名(provenance signing)
  7. 封じ込め設計②:隔離(セグメンテーション)——接触数を下げる
  8. 封じ込め設計③:増殖検知——活動期間を下げる
  9. 緊急時のサーキットブレーカー——群れを止める最後の砦
  10. 中小企業向け:最小実装チェックリスト
  11. よくある質問(Q&A)
    1. Q1. プロンプトインジェクション対策をしていれば、AIワームも防げますか?
    2. Q2. 共有ベクトルDBを使っていると危険ですか?
    3. Q3. R0(基本再生産数)の考え方は、実際の運用にどう役立ちますか?
    4. Q4. 外部のMCPサーバーやサードパーティのエージェントと連携しても大丈夫ですか?
    5. Q5. 中小企業でも現実的に対策できますか?
  12. まとめ——「1体を守る」から「連鎖を断つ」へ
  13. 参考リンク

はじめに——「1体の汚染」から「群れの連鎖崩壊」へ

これまでのプロンプトインジェクション系の記事では、「1体のAIエージェントがどう汚染されるか」「汚染された出力が下流でどう暴走するか」を中心に扱ってきました。しかし2026年、A2A(Agent-to-Agent)連携・マルチエージェント・共有ベクトルDBが本番環境で当たり前になった今、もう一段恐ろしい攻撃面が現実になっています。それは、汚染が1体にとどまらず、自律的に次のエージェントへと複製・伝播していく「ワーム的」性質です。

1か所への侵入が、組織内のエージェント群を芋づる式に連鎖汚染していく——この「増殖フェーズ」は、従来の「感染(1体が汚染される)」とは本質的に別の問題です。1体を直せば済む話ではなく、汚染が自分自身を複製しながら横へ広がるため、対処が一手遅れると群れ全体の連鎖崩壊に至ります。

筆者はネットワークのNOC/TAC(テクニカルアシスタンスセンター)で長年、ワーム・ボットネットの「横展開(ラテラルムーブメント)」の封じ込めに携わってきました。本記事の核心は、そのネットワーク屋の封じ込め語彙——セグメンテーション、ブラストラジウス(爆風半径)の最小化、サーキットブレーカー——が、そのままAIワームの封じ込め設計に転用できるという点にあります。「1体を守る」発想から、「群れの連鎖を断つ」発想への転換を、実装の視点で体系化します。

想定読者は、A2A/マルチエージェント/MCPをすでに本番導入している、あるいは導入予定のCISO・情シス・AI基盤担当の方々です。


前提——「感染」と「増殖」はなぜ別問題か

「エージェントが汚染される」と一口に言っても、止めるべき対象は2つの異なるフェーズに分かれます。まずここを切り分けることが、封じ込め設計の出発点です。

感染(infection)——1体が汚染される

悪意ある指示が、外部データ・メール・取得文書などを経由して1体のエージェントに紛れ込み、そのエージェントが意図しない動作をする——これが従来のインジェクション(特に間接プロンプトインジェクション)の世界です。被害はそのエージェント1体に閉じており、止め方は「そのエージェントの入力検証・出力検証を固める」ことです。

増殖(replication / propagation)——汚染が自分を複製して広がる

本記事のテーマはこちらです。汚染された出力それ自体が「次のエージェントを汚染するための指示」を内包しており、エージェント間の連携(A2Aメッセージ、共有メモリ、MCP応答)を経由して、汚染が自律的に複製・伝播していきます。1体を直しても、すでに別のエージェントや共有メモリに「種」が撒かれていれば、そこから再び増殖が始まります。

この違いを、関連する既存テーマと並べて整理すると、本記事が扱う問題の独自性が明確になります。

テーマ扱う問題防御の方向
出力汚染(下流の暴走防止)1体の出力が下流を巻き込む単方向の出力検証チェーン
間接的なデータ外部送信データが「外」へ漏れる外向き通信・宛先の制御
メモリ汚染記憶が「1点」汚れる記憶への書き込み検証
Confused Deputy(権限の取り違え)権限の誤用権限境界の明確化
本記事:AIワーム命令が「内部で増える」伝播遮断・隔離・増殖検知

つまり本記事は、これらの記事が扱う個別の脅威の「最悪シナリオ(連鎖崩壊)」を束ねる上位概念です。出力汚染は「下流が暴走しないための単方向防御」、外部送信は「データが外へ出る話」ですが、ワームは命令が内部で自己複製しながら横へ広がる動力学そのものを対象にします。

※ 上記の関連テーマには、当サイトの既存記事(出力汚染/間接的データ外部送信/メモリ汚染/Confused Deputy 等)への内部リンクを設定すると、回遊性とトピッククラスタが強化されます。

標準フレームワークでの位置づけ

AIワームは「特殊な懸念」ではなく、複数の標準フレームワークの脅威が連鎖して成立する複合リスクです。社内説明や監査対応の根拠として、対応箇所を押さえておくと効きます。

  • OWASP LLM Top 10(2025年版): 伝播の起点は LLM01:2025 Prompt Injection(特に間接インジェクション)。汚染出力がそのまま次の入力になる点は LLM05:2025 Improper Output Handling、エージェントが自律的に転送・実行して伝播させる点は LLM06:2025 Excessive Agency、共有ベクトルDBが培地になる点は LLM08:2025 Vector and Embedding Weaknesses に対応します。ワームは、これらが単独ではなく連鎖して初めて成立します。
  • MITRE ATLAS: 注入の起点は AML.T0051 LLM Prompt Injection(直接 .000/間接 .001)。エージェント網を横展開していく挙動は、従来型のラテラルムーブメントのAI版として捉えられます。

Morris IIが示した自己増殖の原理

AIワームを最初に実証したのが、Cornell Tech・Technion等の研究チームによる概念実証「Morris II」(論文「Here Comes The AI Worm」, arXiv:2403.02817)です。名前は、1988年にインターネットの約1割を機能停止させた史上初のワーム「Morris Worm」へのオマージュです。OSの脆弱性を突いた初代に対し、Morris IIが突くのはエージェント間連携という新しいインフラです。

その仕組みは、3つの要素で説明されます。

  • 複製(replication): 「敵対的自己複製プロンプト」を入力に仕込むと、モデルがその入力を出力にもそのまま再生産するよう仕向けられる。汚染が自分のコピーを吐き出す。
  • ペイロード(payload): 複製と同時に、悪意ある行動(データ抽出やスパム送信など)を実行させる。
  • 伝播(propagation): 再生産された出力が、エージェント連携やRAGを通じて次のエージェント/次の知識ベースへ届けられ、そこで再び複製が始まる。

ここで決定的に重要なのは、Morris IIがRAG(検索拡張生成)/共有メモリを「培地」にする点です。汚染された文書が共有ベクトルDBに格納されると、それを検索した別のエージェントが汚染を取り込み、さらにその出力が次の文書として蓄積される——ゼロクリックで連鎖する「間接プロンプトインジェクションのカスケード」が成立します。研究では、伝播のしやすさがコンテキスト長・埋め込みアルゴリズムの種類/サイズ・ホップ数に左右されることも示されました。

本記事は防御の解説に徹するため、実際に動作する自己複製プロンプトの文面は掲載しません。封じ込めに必要なのは「どう書くか」ではなく「どう増えるか・どう断つか」の理解です。


伝播経路の3類型——どこを通って増えるのか

封じ込めの第一歩は、「どの経路を通って汚染が次へ渡るのか」を把握することです。2026年のエージェント構成では、伝播経路は大きく3類型に整理できます。

1. A2Aメッセージ経由

エージェントが別のエージェントへタスクや結果を渡す連携メッセージそのものが、伝播の運び手になります。あるエージェントの汚染された出力が、A2Aメッセージのボディとして次のエージェントの「入力」になり、そこで複製・実行される。エージェント網の接続が密なほど、伝播は速くなります。

2. 共有メモリ・ベクトルDB経由(培地型)

最も厄介な経路です。汚染がエージェント間を「直接」渡るのではなく、共有された知識ベース(ベクトルDB・共有メモリ)に沈殿して残り、後からそれを参照する任意のエージェントを汚染します。時間差・非同期で広がるため、「いま誰と誰が通信したか」を追っても捕捉できません。Morris IIが実証したのはまさにこの培地型です。

3. MCP応答経由

MCP(Model Context Protocol)サーバーが返すツール応答・リソース内容に汚染が紛れ込むと、それを取得したエージェントが汚染されます。外部MCPサーバーやサードパーティ提供のリソースは、組織の境界の外にある「信頼できない入力源」として扱う必要があります。

伝播経路運び手特徴効く封じ込め
A2Aメッセージエージェント間連携同期・直接・高速出力サニタイズ+来歴署名
共有メモリ・ベクトルDB共有知識ベース非同期・時間差・追跡困難書き込み検証+セグメント化
MCP応答ツール/リソース応答境界外の信頼できない入力応答の検疫+最小権限

増殖の動力学——R0(基本再生産数)でエージェント網を捉える

ワームを「感染症」として捉えると、封じ込めの設計が一気に見通しよくなります。疫学の基本再生産数 R0——1体の感染体が平均して何体に伝播させるか——を、そのままエージェント網に持ち込みます。

  • R0 > 1: 1体が平均1体超に伝播 → 指数的に増殖し、群れ全体へ連鎖崩壊。
  • R0 < 1: 1体が平均1体未満にしか伝播できない → 増殖は自然に収束して消える。

つまり封じ込めの数学的なゴールは明快で、実効再生産数を1未満に押し下げること、これに尽きます。そして R は、おおまかに次の3要素の積で決まります。

R ≒ (1接触あたりの伝播確率)×(接触するエージェント数)×(汚染が検知されず活動できる期間)

この分解が、そのまま3つの封じ込め戦略に対応します。NOCでワーム封じ込めを設計するときと、まったく同じ構図です。

Rの構成要素下げる手段本記事での封じ込め戦略
伝播確率(β)汚染出力が次を汚染できないようにする① 伝播遮断(出力サニタイズ+来歴署名)
接触数(κ)つながるエージェント・共有範囲を絞る② 隔離(セグメント化・ブラストラジウス最小化)
活動期間(D)早く見つけて早く止める③ 増殖検知+サーキットブレーカー

以下、この3戦略を順に設計していきます。


封じ込め設計①:伝播遮断——伝播確率を下げる

「汚染された出力が、次のエージェントの入力になっても、そこで複製・実行されない」状態を作ります。R の伝播確率(β)を下げる層です。

出力サニタイズ(境界での無害化)

エージェントの出力が、A2Aメッセージや共有メモリ・MCP応答として「次」へ渡る境界で、命令として再解釈され得る要素を無害化します。具体的には、出力をデータとして扱い、指示として実行させない原則(命令とデータの分離)を境界に徹底し、自己参照・自己複製を促すような構造的パターンを検疫します。Morris IIに対しては、研究チーム自身が「Virtual Donkey」という低遅延・高精度で伝播を検知・遮断するガードレールを提案しており、出力が「自分の複製を含んでいないか」を境界で見る発想は有効です。

来歴署名(provenance signing)

ネットワークでパケットの出所を辿るのと同じ発想で、エージェントの出力・共有メモリへの書き込みに「誰がいつ生成したか」の来歴(provenance)を署名付きで付与します。これにより、(1) 信頼できる発生源の内容だけを次のエージェントが受け入れる、(2) 汚染が見つかったとき、どの発生源から広がったかを遡って封鎖できる、という2つの効果が得られます。来歴のないコンテンツや、外部・低信頼の発生源からのコンテンツは、命令として解釈しないポリシーを敷きます。


封じ込め設計②:隔離(セグメンテーション)——接触数を下げる

仮に1体が汚染されても、伝播できる相手が少なければ R は下がります。NOCでワームを封じ込める鉄則「ブラストラジウス(爆風半径)の最小化」を、エージェント網に適用します。

  • エージェント網のセグメント化: すべてのエージェントを相互接続せず、業務単位・信頼境界単位でセグメントに分割する。セグメント間の連携は明示的に許可された経路だけに限定(マイクロセグメンテーションのAI版)。
  • 共有メモリ・ベクトルDBの分離: 「全エージェントが1つの共有ベクトルDBを読み書きする」構成は、培地型伝播にとって最良の温床です。名前空間・テナント・用途でストアを分離し、書き込み権限を最小化する。
  • 最小権限・最小接続: 各エージェントに、その任務に必要な接続先・ツール・権限だけを与える。1体が落ちても被害がセグメント内に閉じる「区画化」を設計の前提にする。
  • 外部入力源の隔離帯: MCP応答・外部メール・取得文書など、境界外からの入力は専用の検疫レーンを通し、いきなり共有メモリへ流し込まない。

セグメンテーションは「侵入をゼロにする」ためではなく、「侵入された後に連鎖が止まる」ために設計します。ここがネットワーク防御の発想そのものです。


封じ込め設計③:増殖検知——活動期間を下げる

早く見つけて早く止めれば、汚染が伝播できる期間(D)が縮み、R は下がります。「1体の異常」ではなく「複製・伝播のパターン」を見るのが、ワーム検知のポイントです。

  • 複製パターン監視: 同一・近似の文字列が、複数のエージェント出力/複数の共有メモリエントリに連鎖的に出現していないかを監視する。1体の異常ではなく「同じものが増えている」事実が増殖のシグナル。
  • 伝播トポロジの監視: エージェント間の連携グラフ上で、ある起点から放射状に同種の挙動が広がる「感染木」のパターンを検知する。NOCのワーム拡散可視化と同じ見方。
  • カナリアトークン: 共有メモリやRAGに、本来どのエージェントも能動的に複製しないはずの「おとり(カナリア)」を仕込む。これが別のエージェントの出力やメモリに出現したら、伝播が起きている動かぬ証拠になる。
  • 境界ガードレール: 前述のVirtual Donkey的に、各伝播境界で「この出力は自己複製を含むか」を低遅延で判定する層を常設する。

緊急時のサーキットブレーカー——群れを止める最後の砦

増殖が指数フェーズに入ってしまったら、個別対応では間に合いません。電力系統やネットワークと同じく、全体を即座に切り離すサーキットブレーカーを設計しておきます。

  • 段階的な隔離停止: まず汚染が疑われるセグメントのA2A連携と共有メモリ書き込みを停止 → 拡大が続けば隣接セグメントへ拡張 → 最終手段として全エージェントの自律動作を一斉停止(kill switch)。
  • 共有メモリの隔離・ロールバック: 培地型伝播では、エージェントを止めても共有メモリに「種」が残ります。汚染が疑われるストアを読み取り専用化・隔離し、来歴署名を手がかりに汚染エントリをロールバック/パージする手順を事前に用意する。
  • 発動条件と権限の事前合意: 「複製パターン検知がN件/カナリア発火」など発動の閾値と、誰が止める権限を持つかを、インシデント発生前に決めておく。NOCのエスカレーション手順と同じく、止める判断を現場で迷わせない。
  • 事業影響とのトレードオフ設計: 全停止は事業も止めます。だからこそ「観測→セグメント隔離→拡大隔離→全停止」の段階を設計し、過剰反応で事業を止めすぎない緩和の階段を持たせる。

中小企業向け:最小実装チェックリスト

大規模な監視基盤がなくても、最小構成で「R を1未満に保つ」ことは可能です。まずここから始めてください。

戦略最小実装下がるRの要素
伝播遮断エージェント出力・共有メモリ書き込みを「データ」として扱い、命令として実行しない原則を徹底伝播確率
伝播遮断外部・低信頼の発生源のコンテンツは命令解釈しないポリシーを明文化伝播確率
隔離「全エージェントが1つの共有ベクトルDBを読み書き」をやめ、用途別に分離・書き込み権限を最小化接触数
隔離各エージェントの接続先・ツール・権限を任務に必要な最小限に接触数
増殖検知共有メモリにカナリアを1つ仕込み、出現を監視活動期間
増殖検知同一・近似出力が複数エージェントに連鎖していないか定期チェック活動期間
緊急停止A2A連携と共有メモリ書き込みを一括停止できる手段(kill switch)を1つ用意活動期間

ポイントは、高価なツールではなく「つなぎすぎない・書き込ませすぎない・止められるようにする」という設計判断です。これは追加投資というより、構成の見直しで達成できます。


よくある質問(Q&A)

Q1. プロンプトインジェクション対策をしていれば、AIワームも防げますか?

不十分です。従来のインジェクション対策は「1体が汚染される(感染)」を防ぐもので、本記事のテーマは「汚染が自律的に複製・伝播する(増殖)」です。1体の入力検証を固めても、すでに共有メモリに種が撒かれていれば、そこから再び増殖が始まります。感染対策(入口)に加えて、伝播遮断・隔離・増殖検知という「群れの連鎖を断つ」層を重ねて初めて止まります。

Q2. 共有ベクトルDBを使っていると危険ですか?

使うこと自体ではなく、「全エージェントが1つの共有ストアを無制限に読み書きする」構成が危険です。これは培地型伝播にとって最良の温床になります。名前空間・テナント・用途でストアを分離し、書き込み権限を最小化し、書き込み内容に来歴署名を付ければ、リスクは大きく下げられます。

Q3. R0(基本再生産数)の考え方は、実際の運用にどう役立ちますか?

「侵入をゼロにする」という達成困難な目標ではなく、「実効再生産数を1未満に保つ」という現実的な目標に置き換えられる点が実務的です。R は「伝播確率×接触数×活動期間」に分解できるので、伝播遮断・隔離・増殖検知のどれを強化すれば連鎖が止まるかを、定量的に議論できます。

Q4. 外部のMCPサーバーやサードパーティのエージェントと連携しても大丈夫ですか?

境界外の入力源として扱えば連携は可能です。MCP応答・外部エージェントからのメッセージは「信頼できない入力」と見なし、専用の検疫レーンを通す、いきなり共有メモリへ流し込まない、来歴のないコンテンツは命令解釈しない、という前提で設計してください。

Q5. 中小企業でも現実的に対策できますか?

できます。高価な監視基盤がなくても、「つなぎすぎない(セグメント化)」「書き込ませすぎない(権限最小化)」「止められるようにする(kill switch)」の3点は構成の見直しで達成できます。本記事末尾の最小実装チェックリストから着手してください。


まとめ——「1体を守る」から「連鎖を断つ」へ

A2A・マルチエージェント・共有ベクトルDBが本番普及した2026年、プロンプトインジェクションは「1体の汚染」から「群れの連鎖崩壊」へと最悪シナリオを更新しました。要点は3つです。

1. 感染と増殖は別問題。 1体の入力検証を固めても、自己複製・横展開そのものは止まりません。伝播遮断・隔離・増殖検知という別の層が必要です。

2. ゴールは「R を1未満に押し下げる」。 R ≒ 伝播確率×接触数×活動期間。出力サニタイズと来歴署名で伝播確率を、セグメント化とブラストラジウス最小化で接触数を、複製検知とサーキットブレーカーで活動期間を下げる——疫学とネットワーク封じ込めの発想がそのまま武器になります。

3. 侵入後に連鎖が止まる設計を。 「侵入をゼロにする」ではなく「侵入されても群れに広がらない」を前提に、区画化と緊急停止を設計しておくことが、連鎖崩壊を防ぐ唯一の現実解です。

ワームの封じ込めは、ネットワーク屋が30年前から戦ってきたテーマでもあります。セグメンテーション、ブラストラジウス、サーキットブレーカー——その語彙は、AIエージェント網の防御にそのまま生きます。


参考リンク

免責事項: 本記事は2026年6月時点の公開情報および標準フレームワークに基づく一般的な情報提供であり、特定の製品・構成における安全性を保証するものではありません。また、法的助言ではありません。実際の防御実装は自社環境・脅威モデル・関連法令に照らして検討し、必要に応じてセキュリティ専門家や弁護士にご相談ください。フレームワークやガイドラインは更新されるため、最新情報は各公式ソースでご確認ください。

コメント

タイトルとURLをコピーしました