ホームへ戻る

AI 開發工具安全

JFrog、coding agentのパッケージインストールをArtifactory経由に――ただしプレビュー版ではルーティングがデフォルトで無効

Agent Package Resolutionは、セッションプロンプト、パッケージマネージャー設定、サーバー側ポリシーを組み合わせ、Claude CodeとCursorが開始した依存関係のダウンロードをArtifactoryへ誘導する。現在はプレビュー版で、初期設定にはrepository bindingがなく、プラグインだけではagentによるpublic registryへの迂回アクセスを阻止できない。

NASA · Public domain · Image source
zh-Hant

JFrogは、coding agentが依存関係を自律的に選択・インストールする際、企業のパッケージガバナンスを回避する可能性がある問題に対処するため、Agent Package Resolutionのプレビュー版を公開した。この機能はすでにJFrogのClaude CodeおよびCursor向けプラグインに統合されており、npm、PyPI、Maven、Go、Docker、Helm、NuGetをサポートする。agentが開始する直接、間接、推移的なダウンロードを、人間の開発者と同じArtifactory、Curation、Xrayの経路に通すことを目的としている。

実装は3層に分かれる。セッション開始時、プラグインはまず各パッケージ種別のArtifactory URLをagentに提示し、その後のインストールコマンドに影響を与える。`jf setup`を使うと、プロジェクトのパッケージマネージャー設定を一度に書き換えられるため、`npm ci`、`pip install -r`、post-install scriptは、別のセッションでも引き続き内部ソースを使用する。ダウンロードが実際にArtifactoryへ到達すると、サーバー側のCurationが悪意あるパッケージ、ライセンス、組織ポリシーに基づいてリクエストを拒否できる。さらにXrayが既知の脆弱性を検査し、ダウンロード、ブロック、ポリシー判定の記録を残す。

この多層構造は重要だ。自然言語による指示はモデルに無視され得るソフトコントロールにすぎず、永続化されたパッケージ設定があって初めて、ツールが自動実行するインストールも対象にできる。一方、サーバー側ポリシーはagentの判断に依存しない。ただし、公式リポジトリからは導入条件も明らかになっている。プレビュー版に付属するテンプレートではrepository bindingが空になっており、ユーザーが明示的に有効化するか、管理者が`defaultGlobalRepos`を追加するまで、いかなるパッケージもルーティングされない。Claude Codeプラグインには、JFrog URL、access token、Node.js 18、`jf`、`jq`、`curl`も必要であり、一部のAgent Guard機能にはAI Catalogのライセンス制限が適用される。

また、セキュリティチームは「すべてのパッケージがガバナンス下にある」ことを、完全なネットワーク強制と解釈すべきではない。プラグインとパッケージマネージャー設定で制御できるのは、それらがインターセプトまたは書き換えるフローだけだ。任意のshellコマンドを実行できるagentは、依然として`curl`、カスタムインストーラー、またはハードコードされたpublic registryを利用できる。真に唯一の出口を形成するには、network egress、proxy server、container policy、credential isolationも組み合わせる必要がある。エンジニアリングチームは今後、monorepo、コンテナ内ビルド、private registry fallbackに加え、プラグインのアップグレード時やagentによる設定変更時に、検知されない迂回経路が生じないかをテストすべきだ。

出典

  1. Coding Agents Just Reopened Your Software Supply Chain Blind Spot
  2. JFrog Plugin for Claude Code
  3. JFrog Plugin for Cursor