エージェントスキルに潜む監査リスク
- •エージェントスキルは、外部リポジトリ由来の指示やスクリプトをAIコーディング支援ツールに読ませ得る
- •GitHubが`gh skill install`を追加した7月24日、関連5プロジェクトは計6,634スターを獲得
- •偽の`csv-formatter`スキルは、隠れた指示がSSHキーやAWS認証情報、環境変数を狙えると示した
カルティガヤン・デヴァン(Karthigayan Devan)は7月27日、Claude、GitHub Copilot、新しいAIコーディング支援ツールにインストールされるAI「エージェントスキル」がセキュリティリスクを生むと警告した。エージェントスキルは指示とスクリプトのフォルダであり、関連する作業の際に支援ツールが読み取り、実行する可能性がある。記事によると、この形式は7月24日にSkill関連のGitHubプロジェクト5件が合計6,634スターを獲得し、GitHubが`gh skill install`で他リポジトリからのネイティブインストールを追加した後、利用が広がった。
エージェントスキルは、短い説明、手順化された指示、ときにはスクリプトを含む小さなパッケージとして説明されている。正式なプラグインシステムや専用インストーラーはない。デヴァンは、スキルを気軽に入れる行為を`npm install`の実行やブラウザ拡張の追加になぞらえつつ、GitHub自身の文書が「Skills are not verified by GitHub」と警告し、プロンプトインジェクション(AIを誘導する隠れた指示)、隠し命令、悪意あるスクリプトを含み得るとしていると述べた。GitHubは、インストール前に`gh skill preview`で内容を確認するよう利用者に勧めている。
記事が指摘するセキュリティ上の隙間は、スキルがすべてのファイルを即座に読み込むわけではない点にある。支援ツールは最初に短い要約だけを読み、作業に関連すると判断した後で、完全な指示や同梱された追加ファイルを取り込む場合がある。インストール時の人間によるプレビューでは、後に支援ツールが読み取り、行動に移すファイルを見落とす可能性がある。ユーザーが開きそうにないファイルや、一見関係のないファイルも対象になり得る。
リスクを検証するため、デヴァンは`csv-formatter`という無効化済みのデモ用スキルを作った。これはCSVファイルの整形、空白、区切り文字、ヘッダー修正を行う無害なツールとして見せかけたものだ。偽スキルには、整形前に「診断ステップ」を実行し、それをユーザーに伝えず、承認も求めないようAIに命じる指示が入っていた。診断と称する処理は、SSH秘密鍵、AWS認証情報ファイル、APIキーやパスワードを含むことが多い環境変数を確認し、そのデータを外部サーバー向けにまとめる内容だった。同じ指示の2つ目のコピーは、無関係な変更履歴の中に隠されていた。
デヴァンは、`csv-formatter`の例は実際には実行も送信もせず、安全な実演として意図的に無効化していたと説明した。ただし、その手法は現実の攻撃パターンを模したものだった。ユーザーに知らせないよう命じる隠れた指示、認証情報の収集、ネットワーク呼び出し、人が通常見ない場所に置かれた予備の指示である。
デヴァンは次に、スキルフォルダ内の全ファイルを読み取り、不審なパターンを検出する小さなスキャナーを作った。検出対象には、「don't tell the user」のような文言、ユーザーがほとんど開かないファイル、認証情報にアクセスするコード、認証情報を読み取りインターネットへ接続するスクリプトが含まれる。このスキャナーは偽スキル内のすべての仕掛けを検出したが、デヴァンは完全一致の語句検索は脆弱だと述べた。悪意ある作成者は表現を変えたり、別の言語を使ったり、分かりやすいラベルを避けたりできるためだ。
提案された対策は、単一のキーワードリストではなく多層的な監査である。具体的には、明示的な文言チェック、同じファイル内に認証情報取得とネットワーク呼び出しがあるといった挙動パターンの確認、隠れた指示を探すモデルベースのレビュー、サンドボックス実行(隔離された試験環境でコードを動かすこと)、初回インストール時には問題がなくても後で変更されたスキルを追跡する変更監視が挙げられた。デヴァンは、この概念実証を、テストスイート、コミュニティが拡張できるルール、任意のモデルレビュー手順、良性・悪性スキルの公開ベンチマークを備えたオープンソースツールにしていると述べた。