プロンプトインジェクションからデータ流出まで:3ホップ
本記事は、AIエージェントを使った巧妙な攻撃チェーンを明らかにする。プロンプトインジェクションにより、攻撃者は3ホップで機密データを外部に流出させることができる。破壊的な操作がなくても、通常のHTTPSリクエストでデータが静かに流出する。KubernetesのNetworkPolicyではこの攻撃を検知できないと指摘し、ドメインベースの決定論的出口制御を解決策として提案する。
セキュリティの分野では、データベースの削除やシステムクラッシュを引き起こす攻撃が注目されがちだが、より隠れた脅威が静かに広がっている。攻撃者は破壊的な操作を一切行わずに、AIエージェントを介してデータを外部に流出させることができる。本記事では、わずか3ホップで完了する攻撃チェーンを解説する。
第一ホップはプロンプトインジェクション。攻撃者は顧客サポートのチケットなど、一見無害なテキストに悪意のある指示を埋め込む。AIエージェントがそのチケットを要約しようとすると、隠された指示を読み取り実行する。研究によれば、こうしたインジェクションのペイロードは既に広くネット上に存在し、誘発率は低いものの、攻撃者は一度成功すればよい。
第二ホップはMCP(Model Context Protocol)ツールの呼び出し。エージェントは「URLに送信」などの正規のHTTPツールを呼び出し、データを攻撃者のエンドポイントに送信する。エージェントがツールの権限を持っているため、ランタイムは異常を検知しない。
第三ホップはポート443からの出口。MCPサーバーポッドが攻撃者のエンドポイントにTLS接続を確立し、データは標準的なHTTPSリクエストとしてクラスタを離れる。これは脆弱性の悪用やトークンの窃取を伴わず、エージェントが許可された動作を実行しただけである。
既存のKubernetes NetworkPolicyではこの攻撃を防げない。NetworkPolicyはIPやポートに基づくL3/L4フィルタリングであり、合法なドメイン(例:api.github.com)と攻撃者のドメインを区別できない。多くのチームはCIDR許可リストで妥協するが、CDNのIP空間には攻撃者が含まれる可能性がある。
解決策はドメインベースの決定論的出口制御を導入することだ。これは、ワークロード単位の識別、TLS SNIによるドメイン認識、デフォルト拒否の3つの特性を持つ。許可されたドメインとポートのみが通信を許可され、その他はすべてブロックされログに記録される。
この制御は、CiliumのFQDNポリシー、サービスメッシュのサイドカー、クラウドネイティブファイアウォールなどで実装できる。それぞれにトレードオフはあるが、共通して攻撃対象領域を縮小し、攻撃者をより検出しやすい低帯域チャネルに追いやる。
もちろん、決定論的制御は万能ではない。許可されたドメインが悪用される可能性や、DNSを介したチャネルも残る。しかし、それでも攻撃のハードルは大幅に上がる。データは任意のIPに直接流出せず、既知のドメインに制限される。違反試行はすべて記録され、セキュリティチームに明確な手がかりを提供する。
AIエージェントプラットフォームを運用する組織は、直ちに行動すべきだ。まず、すべてのMCPサーバーの出口経路を監査し、必要な外部ドメインを特定する。次に、少なくとも1つのネームスペースで決定論的制御をテストし、ログを観察して徐々に範囲を拡大する。確率的攻撃には確率的防御は最終的に敗れる。真の保護を提供できるのは決定論的な境界だけである。