
vet v1.19.0
Защита от вредоносных пакетов с открытым исходным кодом 🤖
Находите вредоносные пакеты, уязвимости и рискованные CI-процессы до того, как они попадут в продакшен.
Установка • Документация • Команды • Политики • Discord
[!NOTE] Эта ветка — vet v2, в альфа-версии. vet v1 находится в ветке
mainи остаётся последним релизом. Примечания к выпуску v2.0.0 сопоставляют каждую команду и флаг v1 с v2.
Зачем нужен vet
Ваши зависимости, рабочие процессы GitHub Actions и конфигурации AI-агентов выполняют код, который написали не вы. vet находит в них риски.
- Вредоносные пакеты. vet проверяет каждый пакет по SafeDep Threat Intel. Threat Intel анализирует новые версии пакетов, когда их публикуют реестры.
- Известные уязвимости, с указанием исправленной версии для обновления.
- Рискованные рабочие процессы. Опасные триггеры, внедрение шаблонов, раскрытые секреты и действия без закреплённого commit SHA.
- Подмена lockfile и свежие версии. Записи из недоверенного реестра и версии в пределах окна cooldown.
- Политика как код. Правила на CEL определяют, когда сканирование завершается неудачей. Вы можете протестировать правило на сохранённом сканировании.
- Инвентаризация AI и криптографии. vet перечисляет AI-библиотеки и криптографические алгоритмы, которые вызывает ваш код, и создаёт CycloneDX xBOM и CBOM.
vet не требует учётной записи и не отправляет исходный код.
Быстрый старт
brew install --cask safedep/tap/vet@edge
vet scan
vet scan --fail-on high # exit 1 on a high or critical finding
vet scan --base-ref origin/main --fail-on high # report only what a pull request changes
vet report show --report sarif=vet.sarif # write SARIF from the saved scan, with no new scan
Установка
| Канал | Команда |
|---|---|
| Homebrew | brew install --cask safedep/tap/vet@edge |
| mise | mise use -g 'github:safedep/vet[prerelease=true]@2' |
| Go | go install github.com/safedep/vet/v2/cmd/vet@latest |
| Контейнер | docker run --rm -v "$PWD:/src" -w /src ghcr.io/safedep/vet:v2-latest scan |
mise устанавливает релиз через день после его публикации. В install.md приведена команда для самой новой сборки, релизные бинарные файлы и аттестации сборки.
Что сканирует vet
| Цель | Пример |
|---|---|
| Каталог (по умолчанию) | vet scan, vet scan ./service |
| Git-репозиторий | vet scan https://github.com/safedep/vet |
| Образ контейнера | vet scan oci://alpine:3.20, vet scan image.tar |
| SBOM (CycloneDX или SPDX) | vet scan sbom.cdx.json |
| Один пакет | vet scan pkg:npm/[email protected] |
| Инструменты на этой машине | vet endpoint audit |
vet читает lock-файлы и манифесты npm, PyPI, Go, Maven, Gradle, Cargo, RubyGems, NuGet, Packagist, Pub и других. Он также читает рабочие процессы GitHub Actions и конфигурации AI-агентов целевого объекта. Он не устанавливает и не запускает ни один из них. Контроли превращают эти данные в находки. См. controls.md.
Политика
Политика определяет, когда сканирование завершается неудачей. Сохраните этот файл как vet-policy.yml:
version: 2
rules:
- id: no-malware
description: A malicious or suspicious package fails the build.
when: finding.family == "malware"
action: fail
- id: no-workflow-injection
when: finding.control_id in ["dangerous-trigger", "template-injection"]
action: fail
- id: no-critical-vulnerability
when: finding.control_id == "vulnerability" && finding.severity == "critical"
action: fail
- id: new-dependency-age
description: A pull request cannot add a version that is less than 14 days old.
when: package.change == "ADDED" && has(package.days_since_publish) && package.days_since_publish < 14
action: fail
suppressions:
- purl: pkg:npm/[email protected]
reason: The upgrade to 4.18.1 is in pull request 42.
expires: 2026-12-31
Протестируйте его на последнем сканировании, без нового сканирования. Затем примените его к pull request:
vet report show last --policy vet-policy.yml
vet scan --base-ref origin/main --policy vet-policy.yml
После истечения срока действия подавление больше не скрывает находку. Прочитайте policy.md, чтобы узнать о полях правил, других правилах и Agent Skill, который напишет политику за вас.
Сценарии использования
- Проверка pull request. vet GitHub Action комментирует pull
request, который добавляет пакет, workflow или находку, и проваливает проверку при атаке.
vet ci initдобавляет его в репозиторий. - CI-гейт. Коды выхода, SARIF для GitHub code scanning, отчёты GitLab и Bitbucket. См. ci.md.
- Ревью pull request.
--base-refсообщает только о пакетах и workflow, которые добавляет изменение. - xBOM и CBOM. Инвентаризация CycloneDX 1.7 AI-библиотек и криптографии, которые использует ваш код. См. inventory.md.
- AI-агенты. vet находит Claude Code и других агентов, а затем выводит JSON и никогда не запрашивает ввод.
- Аудит конечных точек.
vet endpoint auditперечисляет AI-инструменты, MCP-серверы, расширения редакторов и глобальные npm-пакеты на машине разработчика и проверяет их на вредоносное ПО.