AI 供應鏈安全
SkillGate、ルールでエージェントスキルを事前選別しLLM入力を77%削減するも、攻撃の約4分の1を見逃す
オープンソースのSkillGateは、エージェントがスキルを読み込む前に530個のルールで疑わしい箇所を特定し、LLMによる判定と隔離に引き渡す。公式ベンチマークでは誤検知率1.13%、再現率76.9%を記録し、低コストなゲートウェイの実現可能性を示したが、サンドボックスや最小権限の代替にはまだならない。

研究チームは7月28日、Coding Agentの`SKILL.md`、MCPレスポンス、スキルのインストールプロセスに実行前検査を追加することを目的としたSkillGateを公開した。この種のMarkdownには従来型のマルウェアが含まれているとは限らないが、エージェントが信頼する指示を通じて、認証情報の読み取り、コマンドの実行、外部エンドポイントへのデータ送信を要求できる。そのため、ソースコードやパッケージのバイナリを主な対象とする一般的なスキャナーでは検出できない可能性がある。
SkillGateは2段階のアーキテクチャを採用する。第1段階では、530個のルールを使ってリモートコード実行、認証情報へのアクセス、プロンプトインジェクション、パストラバーサル、ネットワーク動作などのシグナルを検索する。いずれのルールにも一致しなかったファイルは、モデルを呼び出さずにそのまま通過させる。一致した場合、システムは該当箇所の前後からデフォルトで500文字、最大20個のウィンドウのみを抽出し、LLMに渡してSAFE、SUSPICIOUS、MALICIOUSのいずれかに分類する。その後、ポリシーエンジンが許可、警告、隔離、ブロックを決定する。プロジェクトは、MCPプロキシサービス、スキルインストール用インターセプター、Cursor、Claude Code、Copilot、Gemini CLI、Windsurf向けの設定エントリーポイントを提供している。
1,650個のスキル(うち150個は悪意のあるサンプル)を収録したSkillsBenchにおいて、論文はF1スコア0.817、再現率0.769、誤検知率1.13%、AUPRC 0.830を報告している。ファイルの67.2%はLLMによる処理を完全に省略し、残りについても疑わしい箇所だけを送信することで、入力token数を約302万から69.9万へと76.9%削減した。加重平均レイテンシは約818ミリ秒だった。この設計の要点は、正規表現だけで悪意の有無を断定することではなく、正規表現を使って意味的な判定の対象範囲を絞り込むことにある。
限界も明確だ。再現率76.9%は、悪意のあるサンプルの約4分の1が依然として通過する可能性を意味する。また、どのルールにも一致しなければ安全と見なす仕組みは、新種の攻撃、書き換えられた攻撃、複数ファイルにまたがる攻撃に対する死角となる。ベンチマークの悪意ある事例は人為的に設計されたものであり、LLMによる判定には非決定性もある。現時点の結果は、主に作者自身によるテストに基づいている。導入者はSkillGateをサプライチェーンの選別レイヤーとして位置付け、署名と配布元の固定、ネットワークのegress制限、シークレットの分離、ツール実行ごとの承認、実行サンドボックスを引き続き併用すべきだ。