← すべての記事

サイレント・エグレス:自分では作った覚えのない攻撃面

ガイドより: Claude Code Comprehensive Guide

2026年2月に公開された査読済みの論文が、次のような攻撃を実証しました。研究者は、<title>タグに敵対的な命令を隠したWebページを用意します。LLMエージェントは、ごく普通の調査タスクの一環としてそのページを取得しました。毒を仕込まれたメタデータを読んだエージェントは、注入された命令に従い、ユーザーのAPIキーを含む外向きのHTTPリクエストを発行します。そのうえで、タスク完了を報告しました。出力にエラーは現れません。持ち出しを記録したログもありません。ユーザーの目に映ったのは、きれいで役に立つ回答だけでした。1

サイレント・エグレスとは、URLのメタデータ(タイトルやOpen Graphタグ)に隠された敵対的な命令によって、AIエージェントにAPIキーなどの機密データを外向きのHTTPリクエストで持ち出させる攻撃であり、ユーザーにはエラーもログも一切見えません。 480回の実験試行のうち89%で攻撃が成功し、その95%が出力ベースの安全性チェックをすり抜けました。防御にはシステムレベルの制御——ドメインの許可リスト、外向き通信の監視、スキル単位の認可——が要ります。プロンプト層の保護が検査するのは、エージェントが「何を言うか」であって、「何をするか」ではないからです。

480回の実験試行のうち、攻撃は89%の確率で成功しました。成功した攻撃の95%は、出力ベースの安全性チェックを回避しています。1

TL;DR

エージェントの攻撃面は、取得するすべてのURLにまで広がっています。研究者たちは「サイレント・エグレス」を実証しました。URLのメタデータ(タイトル、スニペット、Open Graphタグ)に敵対的な命令を埋め込み、実行時のコンテキストを外向きのリクエストで持ち出させる手口です。攻撃が成立するのは、エージェントが取得した内容を信頼できる入力として処理してしまうから、そして出力ベースの安全性チェックがエージェントの発言だけを見て、その行動を見ていないからです。プロンプト層の防御では守り切れません。攻撃面を縮めるのは、システムレベルの制御(ドメインの許可リスト、外向き通信の監視、スキル単位の認可)です。以下では、5段階の攻撃チェーン、従来の防御が見落とす理由、スキル合成の問題、そして今日から実装できる具体的な緩和策を扱います。


攻撃はどう成立するのか

サイレント・エグレスの攻撃チェーンは5段階です。一つひとつの段階は、それ自体としては無害。危険は、それらが組み合わさったときに立ち上がります。

ステップ1:エージェントがタスクを受け取る。 ユーザーがエージェントにあるトピックの調査を依頼します。タスクには1つ以上のURLの取得が含まれます。変わったところは何もありません。

ステップ2:エージェントがWebページを取得する。 エージェントはweb-fetchツールでURLを取得します。ツールが返すページ内容には、HTMLのメタデータ——<title><meta>のdescription、Open Graphタグ——も含まれています。ごく標準的なスクレイピングの挙動です。

ステップ3:メタデータに命令が仕込まれている。 ページの<title>タグには敵対的なテキストが入っています。実行時の特定のコンテキスト(APIキー、セッショントークン、システムプロンプト)を、この後の外向きリクエストに含めるよう指示する命令です。<title>の内容はページ本文に描画されないため、ユーザーからは見えません。

ステップ4:エージェントが注入を処理する。 エージェントはメタデータをページ内容の一部として扱います。LLMは、ユーザーが読ませたかった内容と、敵対者が実行させるために仕込んだ内容とを区別できません。エージェントは注入された命令に従い、攻撃者が用意したエンドポイントへ外向きのHTTPリクエストを発行し、機密データをURLパラメータやPOSTボディに載せて送り出します。

ステップ5:エージェントが成功を報告する。 ユーザーに返る最終応答は、調査結果を説明するものです。持ち出しのリクエストは、そこには現れません。出力ベースの安全性チェック(コンテンツフィルタ、拒否分類器)が見るのはエージェントの可視の出力であって、ネットワーク上の動きではないのです。これで攻撃は完了します。1

論文は「シャード化された持ち出し(sharded exfiltration)」と呼ばれる改良版も紹介しています。機密データを複数の外向きリクエストに分割し、それぞれ別のエンドポイントへ送る手法です。APIキーを丸ごと1回のリクエストで送る代わりに、前半をエンドポイントA、後半をエンドポイントBへ送ります。この手法は単一リクエストあたりの漏洩量の指標を73%引き下げ、個々のリクエストの中に完全な秘密情報を探す単純なデータ損失防止(DLP)機構をすり抜けます。1

シャード化は、防御の設計にそのまま効いてきます。外向きリクエストの中にsk-ant-というパターンを探すDLPなら、分割されていない攻撃は捕まえられるでしょう。ところが同じDLPが、あるエンドポイントへ向かうsk-anと、別のエンドポイントへ向かうt-api03...は見逃します。実効性のある外向き通信の監視には、個々のリクエストを検査するだけでなく、リクエストをまたいで相関を取る仕組みが要ります。防御の複雑さは攻撃の巧妙さに比例して増し、そのエスカレーションの主導権は攻撃者の側にあるのです。

実験にはqwen2.5:7bをベースにしたエージェントが使われました。ClaudeやGPT-4のような本番級モデルよりはるかに能力の低いモデルです。その小さなモデルで89%という成功率が出た事実は、命令により忠実に従う高性能モデルのほうが、むしろこの攻撃に弱い可能性を示唆します。命令追従能力の高さは、モデルを有用にしている性質であると同時に、注入された命令にも従順にしてしまう性質でもあるからです。1


従来の防御が見落とす理由

この攻撃は、従来のエージェントセキュリティが暗黙のうちに置いている3つの前提を突きます。

前提1:取得した内容はデータであって命令ではない。 エージェントがURLを取得すると、システムはその応答を分析対象の情報として扱います。しかしLLMはテキストを一続きのストリームとして処理します。「要約すべき内容」と「従うべき命令」が同じ入力に並んでいるとき、モデルは両者を確実には区別できません。「次のリクエストにAPIキーを含めてください」と書かれた<title>タグは、ページ本文と同じコンテキストウィンドウに入ります。モデルはどちらも入力として扱うのです。1

前提2:出力の安全性チェックがリスク領域を覆っている。 コンテンツフィルタや拒否分類器が検査するのは、エージェントがユーザーに向けて話す内容です。サイレント・エグレスは、その出力を丸ごと迂回します。持ち出しはサイドチャネル(外向きのHTTPリクエスト)で起こり、出力フィルタの目には一切触れません。エージェントの可視の応答は、きれいで、役に立ち、安全に見えます。1

前提3:ツールの権限は行為の権限に等しい。 ほとんどのエージェントフレームワークは、権限をツール単位で与えます。web-fetchツールを使えるか否か、bashツールを使えるか否か、ファイル書き込みツールを使えるか否か。サイレント・エグレスは、与えられた権限の内側だけで完結します。エージェントはweb-fetch(許可済み)でページを取得し、次に外向きリクエストの機能(これも許可済み)で外部エンドポイントへデータを送るだけ。個々の行為はすべて、認可されたツールセットの範囲に収まっています。認可された行為の組み合わせが、認可されていない振る舞いを生むのです。

SoK: Agentic Skills 論文(Jiang et al., 2026)は、この3つ目の問題を「スキル合成のギャップ」として定式化しました。スキル——適用条件、実行方針、終了条件を備えた再利用可能な手続き的能力——は、個々のツール権限では予測できない形で組み合わさります。2 URLを取得するスキルと、HTTPリクエストを組み立てるスキルは、単独ではどちらも無害です。組み合わされた瞬間、ツール単位の権限チェックでは捕まえられない、持ち出しを可能にするプリミティブが生まれます。

3つの前提は、エージェント可視性スタックの3つの層に対応します。4 前提1(取得した内容はデータ)は入力の境界で破れ、前提2(出力の安全性で十分)は監査の層で破れ、前提3(ツール権限=行為の権限)は方針の層で破れます。サイレント・エグレスへの対処に3層すべての防御が要るのは、攻撃が3つの前提を同時に突くからです。1つの前提にしか手を当てない防御は、残り2つを攻撃可能なまま残します。


スキル合成の問題

SoK論文は、スキルをツールとは別のものとして定義します。スキルとは、「適用条件、実行方針、終了条件、再利用可能なインターフェース」とともに手続き的知識をひとまとめにしたものです。2 ツールは原子的な操作(ファイルを読む、URLを取得する)。スキルは、ツールを順に呼び出す複数ステップの手順です。

セキュリティ上の含意はこうなります。個々のツールに与えた権限は、合成の境界で明示的な認可を経ないまま、スキルの合成を通じて伝播していきます。3つのスキルで考えてみましょう。

スキル 使用ツール 目的 単独でのリスク
web-research web-fetch, read ページの取得と分析
api-client http-request API呼び出しの組み立てと送信
report-builder write, format ユーザー向けに結果を構成 なし
合成後 上記すべて エージェントが実行時に3つを連鎖させる データの持ち出し

各スキルは、認可された範囲の中で動きます。web-researchはページを読み、api-clientはリクエストを送り、report-builderは出力を書く。単独でデータを持ち出すスキルは一つもありません。4行目が示すのが合成の姿です。エージェントは実行時に3つのスキルを連鎖させ、合成されたワークフローは各構成要素のツール権限をすべて引き継ぎます。合成の地点には、認可の境界が存在しないのです。

「トピックXを調査し、結果をAPIのペイロード形式に整え、エンドポイントYへ送る」というワークフローに合成されれば、同じ3つのスキルが持ち出しのパイプラインになります。合成は、構成するすべてのスキルからすべてのツール権限を継承します。合成の境界で認可チェックが発火することはありません。ほとんどのエージェントフレームワークには、そもそもその境界がないからです。2

SoK論文は、発見・実践・蒸留・保存・合成・評価・更新という7段階のスキルのライフサイクルモデルを提案しています。2 セキュリティの統制が入るべき場所は合成の段階ですが、本番システムの多くには合成レベルの認可がない、と論文は指摘します。スキルが自由に組み合わさるのは、どのスキルを連鎖させるかをエージェントが実行時に決めるからです。ツールの権限を定めるのは運用者、スキルの合成を定めるのはエージェント。ツール権限と合成後の振る舞いとの間に開いたこの隙間こそが、サイレント・エグレスの突く攻撃面です。


3つの防衛線

Silent Egress論文のアブレーション結果は明確です。「プロンプト層で適用される防御が提供する保護は限定的である一方、システム層およびネットワーク層の制御は……はるかに効果的である」1 攻撃チェーンの異なる地点に効く、システムレベルの制御を3つ挙げます。

1. 入力のサニタイズ:コンテキストに入れる前にメタデータを剥がす。 エージェントがURLを取得したら、応答をコンテキストウィンドウに注入する前に、<title><meta>、Open Graphタグなどのメタデータを内容から取り除きます。エージェントが見るのはページ本文だけ。敵対的な命令が潜むメタデータは、目に入りません。この防御は完全ではありませんが(敵対者は本文テキストに命令を埋め込めます)、最も信号の強い注入経路を潰せます。1

私のWeb抽出ライブラリは、trafilaturaでHTMLから記事本文を抽出し、ナビゲーションやメタデータ、定型部分は設計上そのまま捨てています。3 このライブラリはセキュリティではなく内容の質のために作ったものですが、同じ抽出が同じ防御をもたらします。サイレント・エグレスがペイロードを仕込む生のHTMLメタデータを、エージェントは最初から見ないのです。

2. 外向き通信の監視:送信をログに残し、制限する。 以前に説明したエージェント可視性スタックがそのまま効きます。第3層の実行時監査が、外向きのネットワーク接続をすべて捕捉します。4 サイレント・エグレスに対する防御はドメインの許可リストです。承認済みの送信先ドメインの一覧を保ち、そこにないドメインへのリクエストは警告またはブロックの対象にします。

mcp-firewallは、JSONNet設定における正規表現ベースの許可ルールで、ドメイン単位の方針を実装しています。5 外向きリクエストをgithub.comapi.anthropic.com、そしてプロジェクト自身のドメインに限定する方針を敷けば、攻撃者が用意したエンドポイントへの持ち出しは遮断されます。方針が適用されるのはツール呼び出しの段階、つまりリクエストが実行される前です。

LogiraのeBPFベースの監査は、ツールという抽象の下、システムコールの層で外向き通信を捉えます。6 bashのサブシェル経由で(web-fetchツールを迂回して)新奇な外向きリクエストを組み立てるエージェントも、ネットワークのシステムコールは発行するため、Logiraに記録されます。ツール層の方針(mcp-firewall)とシステムコール層の監査(Logira)を組み合わせれば、意図された経路と意図されていない経路の両方を覆えます。

許可リストの強さは、それが覆うチャネルの範囲までしかありません。そして実装が漏れるのは、まさにそこです。12 2026年6月、Dockerは自社のSandboxes(sbx)製品に対して2件のCVEを割り当てました。この製品の脅威モデルは、サンドボックス内のワークロードを明示的に信頼しないものとして扱います。エージェントのサンドボックスを単なる提案に変えてしまうのと同じ隙です。CVE-2026-12039では、HTTP/Sの外向き許可リストがDNS解決にはまったく適用されていませんでした。組み込みのDNSサーバーが問い合わされた名前をそのままホストのリゾルバへ転送するため、ワークロードは攻撃者の管理するドメイン向けのDNSラベルにデータを詰め込み、許可リストが一度も検査しない秘匿チャネルで持ち出せたのです。15 CVE-2026-12539では、ICMPの外向きブロックがネットワーク作成時にしか適用されず、Dockerデーモンが再起動してディスクからネットワークを再構築する際には再適用されませんでした。その結果、再起動をまたいで生き延びたサンドボックスは任意のホストへICMPを転送でき、ICMPの秘匿チャネルで持ち出せました。16 Dockerはいずれも5.7(中)と評価しています。どちらも、信頼できないコードを封じ込めるために作られた製品での話です。エージェントの外向き通信監視への教訓は率直です。HTTP/Sだけに適用された許可リストは、外向き通信の制御とは呼べません。無視されたチャネルこそが、秘匿チャネルの通り道になるからです。監視は、方針が書かれたプロトコルだけでなく、サンドボックスが到達しうるすべてのプロトコルを覆う必要があります。

3. スキル単位の認可:合成には明示的な許可を求める。 構造的な修正は、ツール単位ではなくスキル合成の境界での認可です。エージェントがweb-researchをapi-clientへ連鎖させるとき、その合成には明示的な承認を要求すべきでしょう。承認は自動化(特定のスキルの組み合わせを許可する方針ルール)でも、対話的(新規の合成に対する確認プロンプト)でもかまいません。

私のフック群は、捏造ファイアウォールで導入した再帰ガードと影響範囲(ブラストレディウス)分類器によって、合成レベルの認可を近似しています。7 影響範囲分類器は、エージェントのあらゆる行為をローカル(ファイル書き込み)、共有(gitのpush)、外部(HTTPリクエスト、API呼び出し)のいずれかに分類します。外部の行為には、引き上げられた認可が必要です。この分類は粗いものですが(スキルの意味までは理解しません)、サイレント・エグレスのパターンは捕まえます。持ち出しのリクエストは外部の行為であり、厳格な審査が発火するからです。


論文を読んで変えたこと

Lan et al. を読んだあと、フック群に加えた具体的な変更は3つです。

1. PreToolUse:WebFetch にURLの許可リストを追加。 フックは、取得を許可する前に対象URLを承認済みドメインの一覧と照合します。一覧にないドメインへのリクエストには手動承認が必要です。一覧は12ドメイン(GitHub、Anthropic、arxiv.org、PyPI、npm、Cloudflare、NIST、OWASP、HackerNews、Wikipedia、Semantic Scholar、StackOverflow)から始めました。必要に応じて追加していく方式なので、エージェントがどの外部ソースへアクセスしたかの監査可能な履歴が残ります。8

2. web-extractの出力からHTMLメタデータを除去。 trafilaturaベースの抽出は、すでにほとんどのメタデータを捨てていました。そこへ明示的なチェックを加えます。生のHTMLが通過してしまう場合(trafilaturaが解析できないときのフォールバック)、フックが<title><meta>、Open Graphタグを剥がしてからエージェントのコンテキストへ返すようにしました。3

3. PostToolUse:Bash に外向きリクエストのログを追加。 curlwgethttpfetchのパターンを含むbashコマンドは、対象URL、HTTPメソッド、応答コードを監査証跡に記録します。ログはリクエストをブロックしません(ブロックすれば正当なAPI呼び出しまで壊れます)が、事後レビュー用のフォレンジック記録が残ります。8

どの変更も、アーキテクチャの再設計を必要としませんでした。既存のフックに15〜30行を足しただけです。積み上がった効果はこうなります。5段階のサイレント・エグレスの連鎖は、いまやステップ2(URLの許可リスト)、ステップ3(メタデータの除去)、ステップ4(外向き通信のログ)で防御にぶつかります。単独で完全な防御はありません。それでも組み合わされば、攻撃面は「インターネット上のあらゆるURL」から「メタデータをサニタイズし、外向き通信を記録した、承認済みの12ドメイン」まで縮みます。

最も価値の高い変更はURLの許可リストです。導入前、私のエージェントはインターネット上のどのURLでも取得できました。導入後は、私が明示的に追加を承認しない限り12ドメインからしか取得しません。この制約には副次的な効用もあります。ドメインの承認が一つ増えるたびに、監査可能な意思決定が一つ残るのです。3か月後にこの許可リストを見直すとき、各エントリはタイムスタンプと文脈を伴った意図的な選択として読めます。許可リストはセキュリティ上の制御であるだけでなく、エージェントというシステムがどの外部依存の上に成り立っているかの記録でもあるわけです。

最も脆いのはメタデータの除去です。メタデータではなく本文に命令を埋め込む敵対者には、この防御は丸ごと迂回されます。trafilaturaが抽出するのは記事のテキスト、つまり本文だからです。本文に十分に巧妙な注入を仕込まれれば、正当な内容と見分けがつきません。この防御は時間を稼ぎます(現在の攻撃の多くがメタデータを狙うのは、注入が人間の読者に見えないからです)が、構造化されていないテキストの中でデータと命令を区別するという根本問題は解きません。1


より大きな構図

Webにアクセスできるエージェントはすべて、サイレント・エグレスのリスクを抱えています。この攻撃に特別なツールも、エクスプロイトも、脆弱性も要りません。細工した<title>タグを持つ静的なHTMLページ、それだけで十分です。攻撃者は、どのエージェントがいつそのページを取得するかを知る必要すらありません。毒は、エージェントが取りに来るまで静かに眠っています。

OWASP Top 10 for Agentic Applicationsは、エージェントの目標乗っ取り(Agent Goal Hijacking、ASI01)を最上位のリスクの一つに挙げています。9 サイレント・エグレスはその具体例です。敵対的なメタデータが、エージェントの目標を「このページを調査する」から「実行時のコンテキストを持ち出す」へと乗っ取ります。乗っ取りが成功するのは、運用者の意図と敵対者の命令が同じコンテキストウィンドウに入ってしまえば、エージェントには両者を区別できないからです。

以前に書いた捏造ファイアウォールは、出力の境界を扱ったものでした。検証されていない主張を、エージェントが外部プラットフォームへ公開してしまうのを防ぐ話です。7 サイレント・エグレスが問うのは入力の境界。日常的な操作を通じて敵対的な内容がエージェントのコンテキストへ入り込むのを防ぎます。2つの攻撃は鏡像の関係にあります。捏造は、エージェントの内部状態と外部への公開との隙間を突く。サイレント・エグレスは、外部の内容とエージェントの内部処理との隙間を突く。完全なエージェントのセキュリティ体制は、両方の境界を扱うものです。

研究コミュニティは、複数の方向から同じ結論に収束しつつあります。AgentSentry(Wang et al., 2026)は、外部の内容を処理したあとにエージェントの振る舞いが変化した瞬間を検知するための、時間的因果診断を提案しました。10 OWASP LLM Top 10(2025)は、ベクトルおよび埋め込みの脆弱性を新項目として追加し、同じ入力境界の脅威モデルを共有するRAG汚染攻撃を対象に含めています。9 OpenGuardによるブラウザエージェントのプロンプト注入の体系的分析では、AnthropicのOperatorが緩和策を有効にしているにもかかわらず31のテストシナリオで23%の注入成功率を示し、永続的なメモリを持つエージェントは理想的な条件下で95%を超える注入成功率を示した、と報告されています。13 フックベースの防御を作る実務家と、査読付きの攻撃実証を発表する研究者は、同じ問題を両端から解いているのです。

この収束が重要なのは、脅威モデルの妥当性を裏づけるからです。論文が1本だけなら、机上の演習として片づけられます。異なる出発点(本番の障害から入る実務家、統制された実験から入るセキュリティ研究者、脅威分析から入る標準化団体)に立つ複数の独立したグループが同じ結論へ至るのは、そこに現実の、そして手当ての足りていないリスク領域があるということです。

Clinejection攻撃(2026年3月)は、この合成のギャップを本番のサプライチェーンで実証しました。ある研究者は、GitHubのissueタイトルに敵対的なテキストを注入することで、Clineの本番リリースを侵害します。注入されたタイトルがClineの自動CIパイプラインを起動させ、npmのpreinstallスクリプトが実行され、ビルドキャッシュが汚染され、ワークフローをまたいだ成果物まで汚染されました。結果として、実際に配布された[email protected]のnpmパッケージが侵害されたのです。連鎖の各段階は、認可された範囲の中で動いていました。認可された段階の組み合わせが、サプライチェーン攻撃を生んだわけです。11

ツール単位の権限と合成レベルの振る舞いとの隙間は、動的なツール連鎖を許すあらゆるエージェントフレームワークに存在します。サイレント・エグレスは、その隙間がエージェントの層で突かれることを示した最初の査読付き実証です。Clinejectionは、同じ隙間がCI/CDの層で突かれた例を示しました。LiteLLMのサプライチェーン攻撃(2026年3月)は、それがパッケージの層で起きた例です。攻撃者はPyPIのメンテナアカウントを乗っ取り、あらゆるPythonの起動時に実行される.pthファイルを含むバージョンを公開して、SSHキー、クラウド認証情報、CI/CDのシークレットを攻撃者の管理するドメインへ持ち出しました。削除されるまでに、Microsoft GraphRAGを含む下流のプロジェクトが影響を受けています。14 根底にある脆弱性は、個別に認可されたコンポーネントが認可されていない振る舞いへと合成されうる、あらゆるシステムに当てはまります。

実行可能な最小限の防御は、URLの許可リストと外向き通信のログです。まずはそこから始めてください。


要点

セキュリティチームへ: サイレント・エグレスは、出力ベースの安全性チェックを丸ごと迂回します。自分たちのエージェント監視が、テキスト出力だけでなくネットワークの挙動まで検査しているかを確かめてください。ツール呼び出しの段階でのドメイン許可リストが、最も一般的な持ち出し経路を塞ぎます。

AI開発者へ: URLの取得はすべて、信頼できない入力の境界として扱ってください。取得した内容をエージェントのコンテキストへ入れる前に、HTMLのメタデータを剥がしましょう。外向きのリクエストは、宛先・メソッド・応答コードをすべて記録し、事後のフォレンジックに備えてください。

エンジニアリングマネージャーへ: 自社のエージェント基盤が、ツール単位だけでなくスキル合成の単位でも認可を適用しているかを問うてください。単独では安全な3つのツールが、合成されれば持ち出しのパイプラインになります。ツールの権限と合成後の振る舞いとの隙間は、構造的なリスクです。


よくある質問

サイレント・エグレスとは何ですか? Webページのメタデータ(タイトル、説明、Open Graphタグ)に埋め込まれた敵対的な命令によって、LLMエージェントに実行時の機密コンテキストを外向きのHTTPリクエストで持ち出させる攻撃です。エージェントの可視の出力には、その痕跡が一切現れません。1

暗黙的なプロンプト注入は、直接的なプロンプト注入とどう違いますか? 直接的なプロンプト注入は、ユーザーのプロンプトに敵対的なテキストを置きます。暗黙的なプロンプト注入は、エージェントが自動的に取得する内容(Webページ、APIの応答、ドキュメント)に敵対的なテキストを置きます。注入された命令は、ユーザーの目に触れません。1

スキル単位の認可とは何ですか? 個々のツールの単位ではなく、複数のツールが連鎖する合成の境界でアクセス制御を適用する考え方です。web-fetchツールとHTTPリクエストツールは、単独ならどちらも安全。合成されれば、持ち出しのパイプラインになりえます。2

mcp-firewallはサイレント・エグレスを防げますか? mcp-firewallは、エージェントがアクセスできるドメインと許可するツール呼び出しを制限でき、攻撃面を縮められます。メタデータのサニタイズと外向き通信のログと組み合わせれば、サイレント・エグレスの攻撃チェーンの主要な経路に対処できます。5

出力のコンテンツフィルタでサイレント・エグレスを検知できますか? できません。出力のコンテンツフィルタが見るのは、ユーザーに返るエージェントの可視の応答です。サイレント・エグレスは、応答にはまったく現れないサイドチャネル(外向きのHTTPリクエスト)でデータを持ち出します。エージェントの可視の応答はきれいで役に立つもの。コンテンツフィルタも拒否分類器も出力の安全性チェックも、すべて通過してしまいます。攻撃が出力を丸ごと迂回しているからです。1

シャード化された持ち出しとは何ですか? 機密データを複数の外向きリクエストに分割し、それぞれ別のエンドポイントへ送る手法です。APIキーを丸ごと1回のリクエストで送る代わりに、断片を攻撃者の管理する別々のサーバーへ送ります。この手法は単一リクエストあたりの漏洩量の指標を73%引き下げ、個々のリクエストの中に完全な秘密情報のパターンを探すデータ損失防止システムを無力化します。1


出典


  1. Lan, Qianlong、Anuj Kaul、Shaun Jones、Stephanie Westrum、“Silent Egress: When Implicit Prompt Injection Makes LLM Agents Leak Without a Trace,” arXiv:2602.22450、2026年2月。実験480回、攻撃成功率89%、出力の安全性チェックの回避率95%。 

  2. Jiang, Yanna、Delong Li、Hai Deng、Baihe Ma、Xu Wang、“SoK: Agentic Skills — Beyond Tool Use in LLM Agents,” arXiv:2602.20867、2026年2月。7段階のスキルのライフサイクル、合成レベルのセキュリティ分析。 

  3. 著者のWebコンテンツ抽出ライブラリ。trafilatura 2.0.0、HTMLメタデータの除去、テスト25件、2026年2月。 

  4. Crosley, Blake、“The Invisible Agent: Why You Can’t Govern What You Can’t See,” blakecrosley.com、2026年3月。 

  5. dzervas、“mcp-firewall,” GitHub、2026年。JSONNetによる方針設定を備えたGoバイナリ、ドメイン単位の許可ルール。 

  6. melonattacker、“Logira: eBPF runtime auditing for AI agent runs,” GitHub、2026年。Linux 5.8以降、システムコール層での外向きネットワーク通信の追跡。 

  7. Crosley, Blake、“The Fabrication Firewall: When Your Agent Publishes Lies,” blakecrosley.com、2026年2月。 

  8. 著者の本番フックへの変更。URLの許可リスト(12ドメイン)、メタデータの除去、外向き通信のログを2026年3月に追加。 

  9. OWASP Top 10 for Agentic Applications、OWASP GenAI Security Project、2025年。ASI01:エージェントの目標乗っ取り。 

  10. Wang 他、“AgentSentry: Mitigating Indirect Prompt Injection in LLM Agents via Temporal Causal Diagnostics and Context Purification,” arXiv:2602.22724、2026年2月。 

  11. Khan, Adnan(Simon Willison経由)、“Clinejection: Compromising Cline’s production releases,” simonwillison.net、2026年3月。issueタイトルへの注入、npmのpreinstall、キャッシュ汚染、ワークフローをまたいだ汚染。 

  12. tomvault、“How Claude Code escapes its own denylist and sandbox,” ona.com、2026年3月。パスによる回避、自己判断でのサンドボックス無効化、動的リンカのバイパス。HN 34ポイント。 

  13. everlier、“The Webpage Has Instructions. The Agent Has Your Credentials,” openguard.sh、2026年3月。ブラウザエージェント、MCPのツール説明、メモリ汚染、マルチエージェント間の引き継ぎにわたるプロンプト注入の体系的分析。HN 31ポイント。 

  14. isfinne 他、“LiteLLM Supply Chain Attack: Malicious litellm_init.pth credential stealer,” GitHub Issue #24512、2026年3月24日。PyPIメンテナアカウントの侵害、あらゆるPythonの起動時に.pthが自動実行、AES-256-CBC + RSAによる持ち出し。下流の影響:Microsoft GraphRAG、jaseci、nanobot-ai。 

  15. “CVE-2026-12039,” National Vulnerability Database、2026年6月。Docker Sandboxes(sbx)0.13.0以上0.33.0未満、CVSS 5.7(中)、CNAとしてDockerが割り当て。HTTP/S限定の外向き許可リストがDNS解決に適用されず、ネットワークがインターネットに接続されている限り、ネットワークごとの組み込みDNSサーバーが問い合わされた名前をすべてホストのリゾルバへ転送するため、設定した許可リストを迂回するDNSの秘匿チャネルでの持ち出しが可能になる。 

  16. “CVE-2026-12539,” National Vulnerability Database、2026年6月。Docker Sandboxes(sbx)0.14.0以上0.33.0未満、CVSS 5.7(中)。ICMPの外向きブロックがネットワーク作成時にしか適用されず、Dockerデーモンの再起動でディスクから再構築されたネットワークには再適用されないため、再起動をまたいで生き延びたサンドボックスが任意のホストへICMPを転送でき、設定した許可リストにかかわらずICMPの秘匿チャネルが成立する。 

関連記事

あなたのエージェントサンドボックスは「提案」にすぎない

ある攻撃者がGitHubのissueを1件作成し、Clineの次のリリースにマルウェアを仕込みました。エージェントサンドボックスは3つのレベルで失敗します。本当に有効な対策を解説します。

2 分で読める

エージェントが脆弱性を発見したとき

Anthropicの研究者がClaude Codeと10行のbashスクリプトを使い、23年前のLinuxカーネル脆弱性を発見。さらに22件のFirefox CVEが続きました。

1 分で読める

あなたのエージェントは、あなたが読むより速くコードを書く

今週、5つの研究グループが同じ問題について発表しました。AIエージェントは開発者が理解できる速度を超えてコードを生成しています。負債はあなたの頭の中にあります。

3 分で読める