アップデート一覧に戻る
New releaseAug 5, 2026

SkillSpector v2.5.2

AIエージェントスキルのためのセキュリティスキャナー。インストールする前に、Claude Code、Codex、MCPスキルにおける脆弱性、悪意のあるパターン、セキュリティリスク、プロンプトインジェクション、データ外部流出、サプライチェーンリスクを検出します。

共有

SkillSpector

AIエージェントスキル向けのセキュリティスキャナー。 エージェントスキルをインストールする前に、脆弱性、悪意のあるパターン、セキュリティリスクを検出します。

Python 3.12+ License: Apache 2.0

概要

AIエージェントスキル(Claude Code、Codex CLI、Gemini CLI などで使用されるもの)は、暗黙の信頼と最小限の審査のもとで実行されます。研究データセットのうち分析対象となった31,132件のスキルのサブセットでは、スキルの26.1%に脆弱性が含まれており、5.2%が悪意のある意図を示している可能性があります。

SkillSpector は、「このスキルはインストールしても安全か?」 という問いに答える手助けをします。

SkillSpector は NVIDIA Verified Skills パイプライン の一部であり、公開前にエージェントスキルをスキャン、評価、署名します。合格したスキルは NVIDIA skills カタログ に公開されます。

ドキュメント

  • インストール前にエージェントスキルをスキャンする — ホストされたガイド: いつスキャンすべきか、レポートの読み方、インストールをゲートする方法。
  • 開発ガイド — アーキテクチャ、パッケージレイアウト、アナライザーパイプラインの拡張方法。
  • 分析リソースの上限 — フェイルクローズドなバンドル、パーサー、ネストされたアーティファクト、台帳、および検出結果の上限。
  • Pi 拡張機能 — エージェントセッション内からスキルをスキャンするための Pi ツールとして SkillSpector をインストールします。
  • OpenCode 拡張機能 — エージェントセッション内からスキルをスキャンするための OpenCode ツールおよび /skillspector コマンドとして SkillSpector をインストールします。

機能

  • マルチフォーマット入力: Git リポジトリ、URL、zip ファイル、ディレクトリ、または単一ファイルをスキャン
  • 17カテゴリにわたる71の脆弱性パターン: プロンプトインジェクション、データ流出、権限昇格、サプライチェーン、過剰なエージェンシー、出力処理、システムプロンプト漏洩、メモリポイズニング、ツールの悪用、ローグエージェント、拒否回避、トリガー悪用、危険なコード(AST)、テイント追跡、YARA シグネチャ、MCP 最小権限、および MCP ツールポイズニング
  • 2段階分析: 高速な静的解析 + オプションの LLM セマンティック評価
  • ライブ脆弱性検索: SC4 は OSV.dev にリアルタイムの CVE データを問い合わせ、自動オフラインフォールバックを備える
  • 複数の出力フォーマット: ターミナル、JSON、Markdown、および SARIF レポート
  • リスクスコアリング: 0〜100 のスコアと重大度ラベル、明確な推奨事項
  • ベースライン / 誤検知の抑制: glob ルールまたはフィンガープリントベースラインを介して既知の検出結果を承認し、再スキャンでは新規の問題のみを表面化させる(ドキュメント)

クイックスタート

インストール

オープンソースソフトウェアに関する通知: このプロジェクトは、追加のサードパーティ製オープンソースソフトウェアプロジェクトをダウンロードおよびインストールします。使用前に、これらのオープンソースプロジェクトのライセンス条項を確認してください。

まず仮想環境を作成してアクティベートしてください(すべての make ターゲットは venv がアクティブであることを前提としています)。uv または pip を使用してください。Makefile は利用可能であれば uv を、そうでなければ pip を使用します。

uv によるクイックインストール(CLI のみ):```bash uv tool install git+https://github.com/NVIDIA/skillspector.git

Update later: uv tool update skillspector

`skillspector mcp` を実行する予定がある場合は、インストール時に MCP extra をインストールしてください:```bash
uv tool install 'skillspector[mcp] @ git+https://github.com/NVIDIA/skillspector.git'

ソースから:```bash

Clone the repository

git clone https://github.com/NVIDIA/skillspector.git cd skillspector

Create and activate virtual environment

uv venv .venv && source .venv/bin/activate

or: python3 -m venv .venv && source .venv/bin/activate

Install for production use

make install

Or install with development dependencies

make install-dev

### Docker(Python 不要)

付属の [Dockerfile](https://github.com/nvidia/skillspector/blob/main/Dockerfile) からローカルでビルドすることで、Python をインストールせずに SkillSpector を実行できます。このイメージは Docker 公式 Python `3.12-slim-bookworm` イメージをベースにしています。

**イメージをビルドする:**```bash
make docker-build
# or: docker build -t skillspector .

ローカルディレクトリをスキャンするには、カレントディレクトリをコンテナの作業ディレクトリである /scan にマウントします:```bash docker run --rm -v "$PWD:/scan" skillspector scan ./my-skill/ --no-llm

**LLM分析によるスキャン** ローカルの `.env` ファイルで認証情報を渡します:```bash
cat > .env <<'EOF'
SKILLSPECTOR_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...
EOF

I understand the translation requirements. Please provide the Markdown content chunk you'd like me to translate from English to Japanese.```bash docker run --rm
-v "$PWD:/scan"
--env-file .env
skillspector scan ./my-skill/

シェル環境から直接認証情報を渡すこともできます:```bash
docker run --rm \
  -v "$PWD:/scan" \
  -e SKILLSPECTOR_PROVIDER=anthropic \
  -e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \
  skillspector scan ./my-skill/

ホストファイルシステムにレポートを書き込むには、マウントされたディレクトリに書き込みます:```bash docker run --rm
-v "$PWD:/scan"
skillspector scan ./my-skill/ --no-llm --format json --output report.json

**繰り返しの静的スキャン用のオプションのエイリアス**:```bash
alias skillspector-docker='docker run --rm -v "$PWD:/scan" skillspector'
skillspector-docker scan ./my-skill/ --no-llm

基本的な使い方```bash

Scan a local skill directory

skillspector scan ./my-skill/

Scan a single SKILL.md file

skillspector scan ./SKILL.md

Scan a Git repository

skillspector scan https://github.com/user/my-skill

Scan a zip file

skillspector scan ./my-skill.zip

#### サイズ制限

SkillSpector は、過大なダウンロードや zip 爆弾の影響を抑えるため、リモート入力とアーカイブ入力に対して 2 つの独立した上限を適用します。

- **取り込み単位の上限**: `INGEST_MAX_BYTES` (100 MiB) — ストリーミング URL ダウンロード、zip アーカイブの非圧縮合計サイズ、および Git リポジトリのクローン後のディスク使用量に適用されます。
- **zip メンバー上限**: `INGEST_MAX_ZIP_MEMBERS` (10,000) — 単一の zip 内のエントリ数を制限します。

ファイル単位の 1 MB 解析上限 (`MAX_FILE_BYTES`) は、別個の下流の制限であることに注意してください。これは、すでに取り込まれたディレクトリから個々のアナライザーが読み取る量を制限します。上記の取り込み上限は、そもそもどれだけのコンテンツがディスク上に到達できるかを制限します。いずれかの取り込み上限に違反すると、`IngestLimitExceededError` でフェイルクローズします。

### 出力形式```bash
# Terminal output (default) - pretty formatted
skillspector scan ./my-skill/

# JSON output - machine readable
skillspector scan ./my-skill/ --format json --output report.json

# Markdown output - for documentation
skillspector scan ./my-skill/ --format markdown --output report.md

# SARIF output - for CI/CD integration and IDE tooling
skillspector scan ./my-skill/ --format sarif --output report.sarif

バッチスキャン

contrib/batch_scan/ からスキルディレクトリ全体を並列でスキャンします:```bash python -m contrib.batch_scan.batch_scan ./my-skills/ --no-llm python -m contrib.batch_scan.batch_scan ./my-skills/ --workers 20 -f json -o report.json python -m contrib.batch_scan.batch_scan ./tests/fixtures/ -f terminal --workers 20

多言語検出(zh/ja/ko)とターミナル/JSON/Markdown出力をサポートします。

より高い並行性でLLMスキャンを行うには、
[`.env.example`](https://github.com/nvidia/skillspector/blob/main/contrib/batch_scan/.env.example)に従って複数のAPIキーを設定してください — キーがアカウントレベルのレート制限を共有していなければ、プールによってスループットと耐障害性が向上します。

詳細は[contribガイド](https://github.com/nvidia/skillspector/blob/main/contrib/batch_scan/docs)を参照してください。

> **LLMサポートに関する注記:** デフォルト設定は、最も安価な公開オプションとしてDeepSeekを対象としています。DeepSeek-Chatは
> [終了が予定されており](https://api-docs.deepseek.com/)、コントリビューターは
> ローカルモデルをテストするハードウェアを持っていません。バッチスキャナーは
> もともとOpenAI互換エンドポイントでテストされました — DeepSeekの
> 構造化出力サポートの欠如により、手動のJSONパースパッチが必要でした。より
> 汎用的なバックエンド(Ollama、vLLM、または別のプロバイダー)を
> 提供できる方は、PRを大歓迎します。

### 誤検知の抑制(ベースライン)

既知/許容済みの検出結果を抑制し、リスクスコアが未トリアージの問題のみを反映し、再スキャンが*新規*の検出結果のみを表面化するようにします。完全なリファレンスについては
[抑制ガイド](https://github.com/nvidia/skillspector/blob/main/docs/SUPPRESSION.md)を参照してください。```bash
# Accept all current findings into a baseline (run once), then commit it.
skillspector baseline ./my-skill/ -o .skillspector-baseline.yaml

# Scan against the baseline — only NEW findings are reported and scored.
skillspector scan ./my-skill/ --baseline .skillspector-baseline.yaml

# Review what was suppressed (still excluded from the score).
skillspector scan ./my-skill/ --baseline .skillspector-baseline.yaml --show-suppressed

ベースラインでは、ドリフト耐性のある glob ルール(ルール ID、ファイルパス、またはメッセージによる)も使用できます — .skillspector-baseline.example.yaml を参照してください。 正確なフィンガープリントベースラインは証拠に紐づきます。スキャン対象のソースまたは SkillSpector のバージョンを変更すると、再度レビューされるまで検出結果はアクティブなままになります。 選択したベースラインまたはベースライン出力がスキル ディレクトリ内に保存されている場合、SkillSpector はその正確なファイルをコンテンツ分析から除外するため、その抑制テキストが検出結果を生成したり、再生成されたフィンガープリントに含まれたりすることはありません。 兄弟ファイルは通常のスキャン対象に残ります。

LLM 分析

カテゴリ