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ワークフローまで、クリーンに統合可能です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト