AI 安全
HookPry、プラグイン更新を悪用して7つのAIエージェントを乗っ取り――ライフサイクルフックがモデルのガードレール外にある実行経路に
研究者はプラグインのメタデータとフック設定を変更するだけで、すでに信頼されているエージェント用プラグインにホスト権限で悪意あるコマンドを実行させることができた。1,000回の実験では対象となった7つのエージェントすべてが侵害されたが、成功率とアンチウイルスの検知漏れに関するデータは、まだ独立には再現されていない。

AIコーディングエージェントのライフサイクルフックは本来、テストの自動実行、差分のスキャン、コンテキストの補足などに使われるものだ。しかし今回、モデル層におけるツール承認を迂回し得ることが示された。新たな論文が提案する「HookPry」では、攻撃者がまず正常に機能するバージョン管理されたプラグインを公開し、ユーザーの信頼を獲得した後、アップデートを通じて `SessionStart`、ツール呼び出し、ファイル変更などのイベントに紐づくコマンドを追加または置き換える。これらのコマンドはエージェントフレームワークが直接起動するため、モデルから見えない場合があり、ツールを改めて選択する必要もない。
HookPryは攻撃を3つの要素に分けている。敵対的メタデータを使って悪意あるパッケージが検索・インストールされる確率を高めること、正常な初回インストールと悪意あるアップデートを分離して最初の審査を回避すること、そして共通インターフェースを用いてペイロードを各フレームワーク固有のフック形式へ変換することだ。研究では5種類のモデルバックエンドと、フレームワークとバックエンドの組み合わせ25通りを対象に、計1,000回のエンドツーエンドテストを実施し、権限昇格やデータ流出など10種類の目標を達成した。著者らの報告によると、マイクロ平均成功率は77%で、テストした7つのフレームワークすべてにおいて、外部から検証可能な悪意ある影響が少なくとも1回確認された。単一フレームワークでの最高成功率は92.5%だった。
従来型の静的スキャンも、信頼できる防御境界にはならなかった。悪意ある合成サンプル40件と良性の合成サンプル40件を使った実験では、著者らが構成したMicrosoft Defenderのテストは悪意あるサンプルを1件も検出できなかった。Defender、HookPolicy、5つのSemgrepルールを組み合わせても、47.5%を見逃した。ただし、これはその実験構成が不十分だったことを示すにすぎず、あらゆるエンドポイント保護が無効だと一般化することはできない。サンプル、OS、企業ポリシーのいずれも対象が限定されているためだ。
エンジニアリング上の要点は、フック設定を通常の設定ファイルではなく、実行権限として扱うことにある。アップデート時には、イベント、コマンド、ネットワーク接続先、環境変数、スクリプトパスについてセマンティック差分を比較すべきだ。権限が拡大する場合は再承認を必須とし、フックを制限されたファイルシステム、ネットワーク、認証情報環境の中で実行する必要がある。ログにはプラグインのバージョン、設定ハッシュ、トリガーイベント、実際の実行IDも記録しなければならない。
今回の成果は現時点では合成環境における研究結果であり、実在するプラグインマーケットプレイスで攻撃が発生したことを証明するものではない。コードも匿名の研究用リポジトリを通じて提供されており、ベンダーによる修正状況やクロスプラットフォームでの再現性は、なお確認が必要だ。今後とりわけ注目すべきなのは、エージェントのマーケットプレイスがアップデートのたびに実効的なケイパビリティを再計算できるか、そしてフックをモデルによるツール呼び出しと同じ承認・監査境界に組み込めるかどうかである。