導入済みツールの「更新後コード」を再審査する:Tool-Update-Gap と ETUDE
多くのエージェント基盤は、ツールを入れた時点の権限のまま更新後のコードを実行する。更新版が名前・説明・入力形式を変えずに中身だけ悪意あるものにできる、という研究(ETUDE)が出た。
いつ使うか
- MCP サーバー、スキル、プラグインなどを自動更新で使っているとき
- 導入時にレビューしたから安全、と考えているとき
問題の構造
- 審査は導入時の 1 回だけで、更新後の実装は再審査されない(Tool-Update-Gap)。
- 更新版は見た目(名前・説明・入力形式)も本来の機能も保ったまま、通常の呼び出しのたびに実装の中で不正な処理を実行できる。
- つまり、ツール定義(説明文)の差分を見るだけでは検出できない。
対策
- ツールはバージョンやコミット SHA で固定し、自動更新を切る(考え方は ソフトウェアサプライチェーン攻撃対策ガイド と同じ)。
- 更新するときは、説明文ではなく実装コードの差分をレビューしてから上げる。
- ツールを動かす権限は最小にし、ネットワーク送信先とファイルアクセスを実行環境側で絞る。更新で悪意が入っても被害が広がらない。
- 入れる前の検査は エージェントのスキルは入れる前に検査する:NVIDIA の SkillSpector のようなツールで、更新のたびにやり直す。
- 全体の運用は AI エージェント運用セキュリティガイド も参照。
注意
- 出典は論文紹介の投稿で、実運用での悪用報告ではない。対策の中身は研究の主張を防御側に読み替えたもの。