NVIDIA/SkillSpector

Security scanner for AI agent skills. Detect vulnerabilities, malicious patterns, security risks, prompt injection, data exfiltration, and supply-chain risks in Claude Code, Codex, and MCP skills before you install them.

SkillSpector – AIエージェントスキル向けセキュリティスキャナー

概要 – SkillSpectorは、AIエージェントの「スキル」(Claude Code、Codex CLI、Gemini CLIなどのエージェントで使用されるプラグイン形式のコードバンドル)をインストール前にチェックし、既知のセキュリティ上の問題を検出するオープンソースツールです。これは、安全なスキルを署名してNVIDIAスキルカタログに公開するNVIDIAの Verified Skills パイプラインの一部です。

重要性 – READMEによると、31,000件のスキルサンプルを調査したところ、4分の1以上に脆弱性が含まれており、数パーセントには悪意のある意図が見られました。スキルを早期にスキャンすることで、プロンプトの漏洩、データの流出、ホストシステムの侵害につながる可能性のあるコードのデプロイを回避できます。


主な機能(READMEより)

  • マルチソース入力 – ローカルディレクトリ、単一の SKILL.md ファイル、zipアーカイブ、Git URL、またはそれらの組み合わせをスキャン可能。
  • 71種類の脆弱性パターン – 17のカテゴリ(プロンプトインジェクション、データ流出、権限昇格、サプライチェーン攻撃、ツール悪用、メモリポイズニング、YARAシグネチャなど)を網羅。
  • 2段階分析 – 高速な静的分析と、オプションのLLMベースのセマンティックチェック。
  • ライブCVE検索 – OSV.devにクエリを投げて最新の脆弱性データを取得(オフラインフォールバックあり)。
  • 多様なレポート形式 – 人間が読みやすいターミナル出力、JSON、Markdown、SARIF(CI/CDパイプラインに最適)。
  • リスクスコアリング – 0〜100の数値スコアと重大度ラベル、具体的な修正案を提示。
  • ベースライン / 誤検知抑制 – ベースラインファイル (.skillspector-baseline.yaml) を保存して既知の検出結果を自動的に除外。次回以降のスキャンでは新規の問題のみが表示されます。
  • スキャン範囲の明示的制御 – --exclude グロブを使用して、無視ファイルに依存せずにパスを除外可能。
  • LLM統合 – オプションのセマンティック分析段階で多くのプロバイダー(OpenAI、Anthropic、Bedrock、NVIDIA Build、Gemini、Ollama、Azure OpenAIなど)をサポート。適切なデフォルト設定と環境変数による構成が可能。
  • バッチスキャン – contrib/batch_scan モジュールによる多数スキルの並列スキャン。多言語検出 (zh/ja/ko) と構成可能なAPIキープールに対応。
  • MCPレジストリ比較 – 2つのMCPレジストリスナップショットを比較し、サーバーIDの変更、追加、削除を確認可能。

はじめに

インストール (Python)

# CLIのみ(MCP拡張機能なし)
uv tool install git+https://github.com/NVIDIA/skillspector.git

# MCP拡張機能付き(`skillspector mcp` に必要)
uv tool install 'skillspector[mcp] @ git+https://github.com/NVIDIA/skillspector.git'

または、リポジトリをクローンし、提供されている Makefile を使用してインストール (make install または make install-dev) してください。

Docker (Python不要)

make docker-build               # イメージのビルド
docker run --rm -v "$PWD:/scan" skillspector scan ./my-skill/ --no-llm

.env ファイルを追加するか、-e フラグを使用してLLMプロバイダーの認証情報を指定してください。


標準的なワークフロー

# 1. スキルのスキャン(静的のみ)
skillspector scan ./my-skill/ --no-llm

# 2. 手動レビュー後にベースラインを作成
skillspector baseline ./my-skill/ -o .skillspector-baseline.yaml

# 3. 再スキャン – 新規の検出結果のみが報告される
skillspector scan ./my-skill/ --baseline .skillspector-baseline.yaml

--format json|markdown|sarif および --output <file> を使用して、CIパイプラインなどで利用可能な機械可読レポートを出力します。


拡張性とドキュメント

  • 開発ガイド (docs/DEVELOPMENT.md) – アナライザーパイプラインの仕組みと新しいチェックの追加方法を解説。
  • リソース制限ドキュメント (docs/ANALYSIS_RESOURCE_BOUNDS.md) – zip爆弾を防ぐための取り込みサイズ制限について説明。
  • Pi / OpenCode 拡張機能 – アクティブなエージェントセッション内からSkillSpectorを呼び出し可能 (/skillspector コマンド)。
  • 抑制ガイド (docs/SUPPRESSION.md) – ベースライン形式とグロブルールの詳細。

想定ユーザー

  • AIエージェント開発者 – NVIDIAカタログや独自の内部レジストリにスキルを公開する方。
  • セキュリティチーム – CI/CDや本番環境のエージェントにおけるスキルインストールをゲート管理する必要がある方。
  • Opsエンジニア – スキルの安全チェックを自動化パイプラインに統合する方(SARIF出力はGitHub ActionsやAzure Pipelinesなどで利用可能)。

ライセンスと互換性

  • Apache 2.0 ライセンス。
  • Python 3.12+ が必要(または python:3.12-slim-bookworm ベースのDockerイメージ)。

まとめ

SkillSpectorは、AIエージェントプラグインという新たなエコシステムに焦点を当てた、実用的なオープンソースのセキュリティ分析ツールです。膨大な既知の脆弱性パターンライブラリとオプションのLLM駆動型セマンティックチェックを組み合わせ、柔軟な入力ソースと出力形式を提供します。ローカル開発からCI/CDワークフローまで、クリーンに統合可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト