AIコーディングエージェントのサンドボックス越え脆弱性が発覚

セキュリティ企業Pillar Researchは、Cursor、Codex、Gemini CLI、Antigravityといった主要なAIコーディングエージェント製品において、サンドボックスを迂回する脆弱性を発見し、その詳細を「The Week of Sandbox Escapes」として公開しました(出典)。これらの脆弱性は、AIエージェントが直接サンドボックスを突破するのではなく、サンドボックス外の信頼されたコンポーネントが、エージェントが生成した悪意あるコードを実行、ロード、または安全と誤認することで発生します。これは非常に衝撃的なニュースで、正直、ここまで来たかという感じがしますね。

エージェントの爆発範囲はエージェントプロセスだけではありません。ホストが後で信頼する、エージェントが書き込むことができるすべてのものが含まれます。

Pillar Researchは、以下の4つの主要な失敗パターンを特定しています。

  • OSの複雑さに対応しきれていないデナイリスト型サンドボックス
  • 実質的に実行可能コードであるワークスペース設定
  • コマンド名のみを信頼する「安全な」コマンド許可リスト
  • サンドボックス外に存在する特権ローカルデーモン

これらの問題は、AIエージェントが単なるツールではなく、エンドポイント上で直接アクションを実行する「アクター」として機能するようになっている現状を示唆しています。この分析結果は、AIエージェントの利用が開発者の生産性を大きく向上させる一方で、新たなセキュリティリスクを生み出しているという点で、開発者にとって非常に重要な情報です。

従来のサンドボックス設計が抱える課題

サンドボックスの一般的なルールは、「ワークスペース内は許可され、ワークスペース外は保護される」というものです。しかし、Pillar Researchの調査によると、サンドボックスの境界には少なくとも以下の3つのレイヤーが存在し、特に3番目のレイヤーに脆弱性が集中していると指摘しています。

  1. 直接実行: エージェントプロセスが直接実行できるもの。
  2. ワークスペースへの書き込み: エージェントが作成または変更できるファイル。
  3. ホストの信頼: サンドボックス化されていないコンポーネントが、これらのファイルをどのように処理するか。

現代のIDEやCLIには、ホスト側の自動化機能が豊富に組み込まれており、これが脆弱性の温床となります。例えば、Python拡張機能がインタープリタを検出したり、Git統合がリポジトリをスキャンしたり、VSCodeのタスクランナーがプロジェクトタスクをロードしたりする際に、サンドボックス内のエージェントが生成した悪意ある入力が利用される可能性があります。これは、開発環境に潜むリスクの根深さを感じさせます。

項目 従来のサンドボックス認識 今回発見された課題
境界 エージェントプロセスのみ エージェントが書き込むファイルと、それを処理するホストコンポーネントを含む
攻撃経路 直接実行の制限 信頼されたホスト側コンポーネント経由の間接的な攻撃
影響範囲 エージェントプロセス内 開発者のマシン全体に及ぶ可能性

つまり、「エージェントはプロジェクト内のみに書き込める」という認識は、「エージェントはホストに影響を与えられない」という誤った仮定に基づいているわけです。開発者のエンドポイントでは、プロジェクトファイル自体が実行可能なインフラストラクチャとなり得るため、この認識は非常に危険です。

AIエージェントと外部サービス連携がもたらすリスク拡大

AIエージェントが外部サービス(GmailやSlackなど)と連携する「コネクタ」の利用は、リスクの範囲をさらに広げます(出典)。PromptArmorの共同創設者であるShankar Krishnan氏は、「コネクタのリスクは、主にツールの種類、できること、データの行き先、そしてデータで何が行われるかに関するものだ」と述べています。プライベートデータへのアクセス、信頼できないコンテンツへの露出、外部通信パスといった「危険な三要素」を回避するだけでも難しいのに、コネクタによって懸念事項が飛躍的に増加するのです。

私自身も、個人プロダクトでLLMを外部サービスと連携させることを考えているので、この手の話はかなり身につまされます。利便性とセキュリティのバランスをどう取るかは、常に大きな課題です。

この問題は、AIエージェントが単に質問に答えるだけでなく、「行動する」ように設計されている点に起因します。悪意のあるプロンプトが、開発者のマシン上でローカルアクションとして実行されてしまう可能性があるのです。

CISOやセキュリティ担当者は、単にエージェントがサンドボックスを持っているというだけでなく、そのサンドボックスの実際の境界、エージェントが書き込めるもの、ホストコンポーネントがそれらの書き込みを信頼する方法、承認をスキップするコマンド、テレメトリーの存在などを詳細に把握する必要があります。AIエージェントがエンドポイントのアクターとなる以上、それに見合った評価、監視、ガバナンスが求められます。