AIサンドボックス脱出の脆弱性、コーディングツールを脅かす

「隔離された環境」という幻想

AIプログラミングアシスタントが独自ソースコードや認証情報、実行中の環境へのアクセス権を前例のない規模で獲得するにつれ、従来の形式的なサンドボックス境界だけではエンドポイントを包括的に保護できなくなっています。Pillarのセキュリティ研究者は最近、Cursor、Codex、Gemini CLI、Antigravityにまたがる複数の新しい隔離環境突破手法を再現しました。重要な点として、自律型エージェントが任意コード実行を達成するにあたり、隔離環境そのものを直接突破する必要はほとんどありませんでした。詳細な分析はPillar Securityによるサンドボックス脱出の分析をご覧ください。

間接的な実行経路と環境の乗っ取り

主な脆弱性の経路は、AIエージェントがプロジェクトのリポジトリ内で許可されたファイルを書き込んだ後に生じます。その後、制限付きサンドボックスの外部で動作する別のコンポーネントが、そのファイルを信頼済みの設定ファイルとして読み込み、昇格した権限でコマンドを実行してしまうのです。さまざまなシナリオにおいて、Python拡張機能、Gitユーティリティ、VS Codeのタスクランナー、フックスクリプト、ローカルのバックグラウンドサービスが、意図せず仲介役として利用されていました。

具体的な悪用経路

  • 仮想環境の操作: Cursorでは、エージェントが仮想環境内のインタプリタパスを改ざんすることで、Python拡張機能が自動検出処理の際にそれを実行してしまう仕組みが確認されました。
  • Gitメカニズムの乗っ取り: 別の経路では、Gitの内部ディレクトリをリダイレクトし、Gitが外部バイナリの呼び出しを許可するfsmonitorメカニズムを悪用していました。
  • 許可コマンドポリシーの弱点: Codex CLIでは、コマンドのホワイトリスト方式のポリシーに脆弱性があることが判明しました。システムはgit showという名前だけで本質的に安全なコマンドと判断し、悪意ある引数や副作用を見過ごしていたのです。

無制限のローカルサービスとDockerソケット

もう一つ別の種類の脆弱性は、エージェントの制約の外で動作するローカルのバックグラウンドサービスに関するものです。Dockerソケットへのアクセスにより、エージェントはサンドボックス内では禁止されている特権操作を委任実行できてしまいました。この仕組みは、Codex、Cursor、Gemini CLIのいずれにも共通して影響を及ぼしていました。さらに研究者らは、稼働中のプロジェクト内のタスクおよびフックの設定が、サンドボックスの制限を受けずに開発環境によって実行されるコマンドへと変わり得ることも実証しています。

ベンダーによる修正とセキュリティ上の推奨事項

開発各社は、Dockerソケット、仮想環境、そしてCursorおよびCodex内のいくつかの仕組みに関連する脆弱性を修正済みです。Googleは、Antigravityに関する調査結果についてサンドボックス脱出の欠陥であることを確認済みと認めましたが、悪用にはソーシャルエンジニアリングや信頼できないリポジトリの関与など複雑な条件が必要であることから、深刻度は低めに評価しています。

Pillarは、デフォルトで拒否する厳格な隔離ポリシーの導入、バイナリ名だけでなくコマンドの引数や副作用の検証、特権を持つローカルサービスへのアクセス制限、そして自動化処理を発動させるファイルを変更する前にユーザーの明示的な承認を求めることを推奨しています。防御側の監視ツールは、エージェントのプロセス単体を監視するのではなく、エージェントが生成したファイルをどの外部コンポーネントが実行するのかを追跡する必要があります。

翻訳元: https://meterpreter.org/ai-sandbox-escape-vulnerabilities/

ソース: meterpreter.org