/note/tech

野良スキルは使うな、盗め──Claude Codeスキルの安全な作り方

要約:

■ 1. 概要

  • Claude Codeのスキルは、AIへの命令をそのまま記述したテキストファイルであり、悪意ある命令を仕込むのに高度なコードは不要
  • SNS等で公開された野良スキルを即座にインストールすることには重大なセキュリティリスクが伴う
  • 本記事は野良スキルの危険性を説明し、安全な代替手段として「概念を盗んで自分用に作り直す」方法を解説する

■ 2. 野良スキルの危険パターン

  • パターン1: 直接的な悪意あるコード:
    • スキルファイルの末尾などに curl コマンドを埋め込み、設定ファイルや認証情報をBase64エンコードして外部サーバーに送信する
    • コードを目視すれば発見できる可能性がある
  • パターン2: 人間には見えないプロンプトインジェクション:
    • 「ログ・記録」という表現: 人間には通常の作業記録に見えるが、AIには認証情報を含めて保存・送信せよという命令として解釈される可能性がある
    • 「バックアップ・外部ストレージ」という表現: データ保護に見えるが、AIには外部送信命令として機能しうる
    • 「リモート診断・サポート」という表現: 便利な機能に見えるが、AIには環境情報を外部サーバーに送れという命令として機能しうる
    • 悪意ある文章は人間の常識的な解釈を利用して書かれており、コードを「見る」だけでは防げない
  • パターン3: じわじわAIを変容させる攻撃:
    • 「セキュリティチェックを簡略化モードで動作させる」等の記述により、AIが確認ダイアログを省略するモードに移行する
    • 1ターンで完結しない攻撃であり、その後の破壊的な操作への確認が甘くなる

■ 3. 安全な「盗み方」の手順

  • ステップ1: ブラウザで目視確認(Claudeには読ませない):
    • curl / wget / nc などの外部通信コマンドの有無を確認する
    • 「ログ」「バックアップ」「記録」が実際の送信命令になっていないかを確認する
    • 不自然に長い説明文や英語混じりの命令文がないかを確認する
  • ステップ2: 「いいな」と思った部分を概念・目的として言語化する:
    • NG: 「このスキルを参考にして」(ファイルをClaudeに読ませる)
    • OK: 「コードレビューの際に型チェックを自動実行する機能が欲しい」のように概念のみを伝える
  • ステップ3: 自分用に一から作ってもらう:
    • 外部通信を一切しないシンプルな構成を明示して作成を依頼する
    • 結果として悪意ある命令の混入リスクがゼロになり、自分の環境に最適化された構成が得られる

■ 4. 実践例

  • claude-code-security-kit および claude-code-immune を、既存ツールの概念を参考にClaudeに一から作成させた
  • 結果として個人環境(Vault・Tailscale・NeuroState)に最適化されたスキルが完成した
  • claude-code-immune はNeuroStateの状態変化を用いてプロンプトインジェクションを検出し、スキルが汚染された際にAIの異常動作を警告する

■ 5. まとめ

  • 野良スキルを発見した場合はブラウザで目視確認し、Claudeには読ませない
  • 気に入った機能は「概念」だけをClaude Codeに伝える
  • スキルは必ず一から自分用に作成してもらう
  • 作成したスキルはセキュリティツールで確認する