
SkillSpector v2.8.2
Сканер безопасности для навыков ИИ-агентов. Обнаруживает уязвимости, вредоносные паттерны, риски безопасности, промпт-инъекции, эксфильтрацию данных и риски цепочки поставок в навыках Claude Code, Codex и MCP до их установки.
SkillSpector
Сканер безопасности для навыков ИИ-агентов. Обнаруживайте уязвимости, вредоносные шаблоны и риски безопасности перед установкой навыков агентов.
Обзор
Навыки ИИ-агентов (используемые Claude Code, Codex CLI, Gemini CLI и т. д.) выполняются с неявным доверием и минимальной проверкой. В проанализированном подмножестве исследовательского набора данных из 31 132 навыков 26,1% навыков содержат уязвимости, а 5,2% демонстрируют вероятные вредоносные намерения.
SkillSpector помогает ответить на вопрос: «Безопасно ли устанавливать этот навык?»
SkillSpector является частью конвейера NVIDIA Verified Skills, который сканирует, оценивает и подписывает навыки агентов перед публикацией. Навыки, прошедшие проверку, публикуются в каталоге навыков NVIDIA.
Документация
- Сканирование навыков агентов перед установкой — Размещённое руководство: когда сканировать, как читать отчёт и как ограничивать установки.
- Руководство по разработке — Архитектура, структура пакета и способы расширения конвейера анализа.
- Границы ресурсов анализа — Отказоустойчивые ограничения для bundle, парсера, вложенных артефактов, реестра и находок.
- Расширение Pi — Установите SkillSpector как инструмент Pi для сканирования навыков изнутри сессий агента.
- Расширение OpenCode — Установите SkillSpector как инструмент OpenCode и команду
/skillspectorдля сканирования навыков изнутри сессий агента.
Возможности
- Множество форматов ввода: сканирование Git-репозиториев, URL-адресов, zip-файлов, каталогов или отдельных файлов
- 71 шаблон уязвимостей в 17 категориях: внедрение промптов, эксфильтрация данных, повышение привилегий, цепочка поставок, чрезмерная автономность, обработка вывода, утечка системного промпта, отравление памяти, злоупотребление инструментами, rogue agent, анти-отказ, злоупотребление триггерами, опасный код (AST), отслеживание taint, сигнатуры YARA, минимальные привилегии MCP и отравление инструментов MCP
- Двухэтапный анализ: быстрый статический анализ + опциональная семантическая оценка 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 во время установки:```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 не требуется)
Запустите SkillSpector без установки Python, собрав его локально из включённого [Dockerfile](https://github.com/nvidia/skillspector/blob/main/Dockerfile). Образ основан на официальном образе Docker Official 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
| -t | --target | Целевой URL |
| -f | --file | Файл, содержащий целевые URL |
| -o | --output | Файл для сохранения результатов |
| -c | --cookie | Cookie для использования в запросах |
| -H | --header | Пользовательский заголовок для использования в запросах |
| -A | --user-agent | Пользовательский User-Agent для использования в запросах |
| -X | --proxy | Прокси для использования в запросах |
| -r | --redirect | Следовать перенаправлениям |
| -k | --insecure | Не проверять SSL-сертификаты |
| -v | --verbose | Включить подробный вывод |
| -h | --help | Показать справку |```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-бомб:
- **Ограничение на приём**: `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/