SKILL.md1個でエージェントは乗っ取られる、Agent Skillsの脅威分類
- URL: https://zenn.dev/okssusucha/articles/20260621-agent-skills-security-threats
- 日付: 2026-06-22
- Tier: Tier 3
- 要旨: Agent Skills の脅威分類:SKILL.md 1個でエージェント乗っ取りリスク。「必要な時だけ読む」という遅延ロード設計が攻撃面の核心。スキル内スクリプトはコンテキストに入らず実行結果だけ見る仕組みで、中身を誰も読まない。npm パッケージより危い3つの構造的欠陥:データと指示の境界がない、承認は一度きりで持続(作者が事後改ざん可)、マーケットプレイス必須セキュリティレビューなし。脅威は7分類(配布・信頼・実行時・永続・横展開)で急所は T4 コード実行と T5 データ持ち出し。運用対策:.claude/skills/ 中身をレビュー前読む、allowed-tools 確認、disableSkillShellExecution で shell 実行停止、Meta Rule of Two で「機密・入力・通信」の3つ揃ったら人間レビュー。
詳細
Agent Skills は CLAUDE.md から手順書・チェックリストを .claude/skills/ に切り出す仕組み。SKILL.md は YAML フロントマター(機械可読メタデータ)+ Markdown(人間・エージェント向け指示)で、!git diff HEAD のようなシェル実行・Python スクリプト・ネットワークアクセスまで含められる。Anthropic がオープン標準公開後、Claude Code・Codex・Cursor・Gemini CLI など30+ ツールが同じ .claude/skills/ から同じ SKILL.md を読む普及。便利さと同じ、悪意あるスキル1個の射程が広い。公式警告「この機能は Claudeにコード実行権限を付与。信頼できる提供元に絞ること」が現状唯一の防御線。npm パッケージより危い理由は構造的欠陥3つ:1. データと指示の境界がない(LLM はシステムプロンプト・ユーザー入力・外部テキストを1本のトークン列として読む、プロンプトインジェクション未解決);2. 承認は一度きり・持続(GIF 変換スキルをインストール時承認 1 回で、ファイル書き込み・ネットワークダウンロード・実行権限を無期限許可、作者がインストール後 SKILL.md 書き換えても最初承認継承);3. マーケットプレイスに必須セキュリティレビューなし(タイポスクワッティング・ダウンロード数水増しも止める関所なし)。論文が脅威を7つに整理:配布・信頼(T1 サプライチェーン汚染・T2 同意悪用)実行時(T3 プロンプトインジェクション・T4 コード実行・T5 データ持ち出し)永続・横展開(T6 永続化・T7 マルチエージェント伝播)。急所は T4 コード実行(裏で外部 URL からバイナリ実行・ログは「要約」だけ)と T5 データ持ち出し(SSH 鍵・API キー・環境変数・コードベース全体外部送信)。T6 永続化(settings.json 細工・信頼ダイアログ前にコマンド走らせ・アンインストール後も効果残る)陰湿。確認済みインシデント5件:GIF 変換スキル裏で Medusa Locker ランサムウェア(T4・T2)・ClawHavoc キャンペーン 1,184 個改ざんスキル認証情報窃取マルウェア・PEP 723 経由後から依存差し替え・サイレント・エグレス 監査ログなしコードベース全体抜き(2026年2月)。現役エンジニア対策3つ:第一に .claude/skills/ 中身を信頼前に読む(リポジトリ信頼時点で allowed-tools が有効・白紙許可証サイン同義);第二に managed settings に disableSkillShellExecution:true で !command をシェル実行禁止・バンドル済み管理下スキルは影響外・現実的な絞り方;第三に Meta Rule of Two「人間承認なしにエージェント同時持つのは機密データアクセス・信頼できない入力処理・外部通信のうち2つまで、3つ揃ったら人間レビュー挟め」をスキル選定判断軸に。残る T4・T5 はコンテナ/WASM サンドボックス化・外向き通信ドメイン制限まで行き着き、利用者はできるのが「実行環境隔離」「依存 lockfile 固定」まで。npm install を疑うのと同じ目で SKILL.md を見る習慣を今のうちに。