
Защита от вредоносных пакетов с открытым исходным кодом 🤖
<p align="center">
<a href="https://safedep.io">
<picture>
<source srcset="docs/assets/vet-banner-dark.svg" media="(prefers-color-scheme: dark)">
<source srcset="docs/assets/vet-banner-light.svg" media="(prefers-color-scheme: light)">
<img src="https://raw.githubusercontent.com/safedep/vet/HEAD/docs/assets/vet-banner-light.svg" alt="SafeDep VET - Обнаружение вредоносных пакетов в реальном времени и безопасность цепочки поставок ПО" width="100%">
</picture>
</a>
</p>
<div align="center">
<p>
<a href="#quick-start"><strong>Быстрый старт</strong></a> •
<a href="https://docs.safedep.io/"><strong>Документация</strong></a> •
<a href="#community--support"><strong>Сообщество</strong></a>
</p>
</div>
<div align="center">
[](https://goreportcard.com/report/github.com/safedep/vet)
[](https://github.com/safedep/vet/blob/main/LICENSE)
[](https://github.com/safedep/vet/releases)
[](https://api.securityscorecards.dev/projects/github.com/safedep/vet)
[](https://slsa.dev)
[](https://github.com/safedep/vet/actions/workflows/codeql.yml)
[](https://deepwiki.com/safedep/vet)
</div>
---
> [!NOTE]
> `vet` поддерживает специальный режим для Agent Skills.
> Выполните `vet scan --agent-skill <owner/repo>` для сканирования Agent Skill, размещённого в репозитории GitHub.
## Зачем нужен vet?
> **70–90% современного программного обеспечения — это код с открытым исходным кодом** — как узнать, что он безопасен?
Традиционные SCA-инструменты заваливают вас шумом из CVE. **vet** предлагает иной подход:
- **Обнаружение теневого ИИ** — выявляет сигналы использования ИИ-инструментов в различных инструментах и конфигурациях
- **Ловите вредоносное ПО до его поставки** — обнаружение нулевого дня с помощью статического и динамического поведенческого анализа (требуется доступ к SafeDep Cloud)
- **Режьте сквозь шум уязвимостей** — анализирует фактическое использование кода, чтобы показывать только значимые риски
- **Политики как код** — выражайте требования безопасности, лицензий и качества в виде [CEL](https://cel.dev/) выражений
- **Интеграция с CI/CD** — защитные барьеры безопасности в CI/CD без настройки
Бесплатно для open source. Хостируемый SaaS доступен на [SafeDep](https://safedep.io).
## Быстрый старт
**Установка за секунды:**
```bash
# macOS и Linux
brew install safedep/tap/vet
# Через npm
npm install -g @safedep/vet
```
или скачайте [готовый бинарный файл](https://github.com/safedep/vet/releases)
**Приступайте к работе немедленно:**
```bash
# Сканирование зависимостей на вредоносное ПО
vet scan -D . --malware-query
# Остановка CI при критических уязвимостях
vet scan -D . --filter 'vulns.critical.exists(p, true)' --filter-fail
```
## Архитектура
`vet` использует конвейерную архитектуру: **ридеры** (readers) загружают манифесты пакетов из разнообразных источников (каталогов, репозиториев, контейнерных образов, SBOM), **обогатители** (enrichers) дополняют каждый пакет данными об уязвимостях, вредоносном ПО и скоринг-картах из SafeDep Cloud, **CEL-движок политик** оценивает политики безопасности на основе обогащённых данных, а **репортеры** (reporters) формируют практичный результат в таких форматах, как SARIF, JSON и Markdown.
<details>
<summary>Просмотреть схему архитектуры</summary>
```mermaid
graph TB
subgraph "OSS Ecosystem"
R1[npm Registry]
R2[PyPI Registry]
R3[Maven Central]
R4[Other Registries]
end
subgraph "SafeDep Cloud"
M[Continuous Monitoring]
A[Real-time Code Analysis<br/>Malware Detection]
T[Threat Intelligence DB<br/>Vulnerabilities • Malware • Scorecard]
end
subgraph "vet CLI"
S[Source Repository<br/>Scanner]
P[CEL Policy Engine]
O[Reports & Actions<br/>SARIF/JSON/CSV]
end
R1 -->|New Packages| M
R2 -->|New Packages| M
R3 -->|New Packages| M
R4 -->|New Packages| M
M -->|Behavioral Analysis| A
A -->|Malware Signals| T
S -->|Query Package Info| T
T -->|Security Intelligence| S
S -->|Analysis Results| P
P -->|Policy Decisions| O
style M fill:#7CB9E8,stroke:#5A8DB8,color:#1a1a1a
style A fill:#E8A87C,stroke:#B88A5A,color:#1a1a1a
style T fill:#7CB9E8,stroke:#5A8DB8,color:#1a1a1a
style S fill:#90C695,stroke:#6B9870,color:#1a1a1a
style P fill:#E8C47C,stroke:#B89B5A,color:#1a1a1a
style O fill:#B8A3D4,stroke:#9478AA,color:#1a1a1a
```
</details>
## Ключевые возможности
### **Обнаружение вредоносных пакетов**
Защита от вредоносных пакетов в реальном времени на базе [SafeDep Cloud](https://docs.safedep.io/cloud/malware-analysis).
Бесплатно для проектов с открытым исходным кодом. Обнаруживает вредоносное ПО нулевого дня с помощью активного анализа кода.
### **Анализ уязвимостей**
В отличие от сканеров зависимостей, которые заваливают вас шумом, `vet` анализирует ваше **фактическое использование кода**, чтобы расставить приоритеты для реальных рисков.
Подробнее см. в разделе [оценка использования зависимостей](https://docs.safedep.io/vet/guides/dependency-usage-identification).
### **Политики как код**
Определяйте политики безопасности с помощью CEL-выражений для применения требований, учитывающих контекст:
```bash
# Блокировка пакетов с критическими CVE
vet scan --filter 'vulns.critical.exists(p, true)' --filter-fail
# Обеспечение соблюдения лицензий
vet scan --filter 'licenses.contains_license("GPL-3.0")' --filter-fail
# Требование минимальных оценок OpenSSF Scorecard
vet scan --filter 'scorecard.scores.Maintained < 5' --filter-fail
```
### **Поддержка множества экосистем**
Менеджеры пакетов: **npm**, **PyPI**, **Maven**, **Go**, **Ruby**, **Rust**, **PHP**
Контейнерные образы: **Docker**, **OCI**
Форматы SBOM: **CycloneDX**, **SPDX**
Исходные репозитории: **GitHub**, **GitLab**
## Обнаружение вредоносных пакетов
**Защита от вредоносных пакетов в реальном времени** путём запросов к базе угроз SafeDep,
которая непрерывно пополняется за счёт статического и динамического поведенческого анализа.
### Быстрая настройка
```bash
# Запрос известных вредоносных пакетов (ключ API не требуется)
vet scan -D . --malware-query
```
> [!NOTE]
> Флаг `--malware` устарел. Активное (по запросу) сканирование прекращено в пользу
> запросов к базе угроз SafeDep. Теперь `--malware` ведёт себя идентично
> `--malware-query` и сохранён для обратной совместимости.
**Примеры обнаружений:**
- [MAL-2025-3541: express-cookie-parser](https://safedep.io/malicious-npm-package-express-cookie-parser/)
- [MAL-2025-4339: eslint-config-airbnb-compat](https://safedep.io/digging-into-dynamic-malware-analysis-signals/)
- [MAL-2025-4029: ts-runtime-compat-check](https://safedep.io/digging-into-dynamic-malware-analysis-signals/)
**Ключевые функции безопасности:**
- Запросы в реальном времени к базе известных вредоносных пакетов SafeDep
- Поведенческий анализ с использованием статических и динамических методов (выполняется непрерывно в SafeDep Cloud)
- Разбор важных находок с участием человека (human-in-the-loop)
- Публичный [журнал анализа](https://vetpkg.dev/mal) для прозрачности
### Расширенное использование
```bash
# Специализированные сканирования
vet scan --vsx --malware-query # Расширения VS Code
vet scan -D .github/workflows --malware-query # GitHub Actions
vet scan --image nats:2.10 --malware-query # Контейнерные образы
```
> [!NOTE]
> Команда `vet inspect malware` (анализ одного пакета по запросу) устарела и
> будет удалена в одном из будущих релизов. Используйте `vet scan --malware-query` для проверки пакетов
> по базе известных вредоносных пакетов SafeDep.
## Интеграции для продакшена
### GitHub Actions
Защитные барьеры безопасности в CI/CD без настройки:
```yaml
- uses: safedep/vet-action@v1
with:
policy: ".github/vet/policy.yml"
```
См. документацию [vet-action](https://github.com/safedep/vet-action).
### GitLab CI
Корпоративное сканирование с помощью [CI Component для vet](https://docs.safedep.io/vet/guides/gitlab-dependency-scanning):
```yaml
include:
- component: gitlab.com/safedep/ci-components/vet/scan@main
```
### Интеграция с контейнерами
Запускайте `vet` где угодно с помощью нашего контейнерного образа:
```bash
docker run --rm -v $(pwd):/app ghcr.io/safedep/vet:latest scan -D /app --malware-query
```
## Установка
### Homebrew (рекомендуется)
```bash
brew install safedep/tap/vet
```
### npm
```bash
npm install @safedep/vet
```
### Прямое скачивание
Смотрите [релизы](https://github.com/safedep/vet/releases) для готовых бинарных файлов.
### Установка через Go
```bash
go install github.com/safedep/vet@latest
```
### Контейнерный образ
```bash
# Быстрая проверка
docker run --rm ghcr.io/safedep/vet:latest version
# Сканирование локального каталога
docker run --rm -v $(pwd):/workspace ghcr.io/safedep/vet:latest scan -D /workspace
```
### Проверка установки
```bash
vet version
# Должна отобразиться информация о версии и сборке
```
## Расширенные возможности
**Подробнее в нашей исчерпывающей документации:**
- **[Обнаружение использования ИИ](https://github.com/safedep/vet/blob/main/docs/ai-discovery.md)** — выявляет сигналы использования ИИ-инструментов в различных инструментах и конфигурациях
- **[Режим ИИ-агента](https://github.com/safedep/vet/blob/main/docs/agent.md)** — запуск vet в роли ИИ-агента
- **[MCP-сервер](https://github.com/safedep/vet/blob/main/docs/mcp.md)** — запуск vet в роли MCP-сервера для анализа кода с помощью ИИ
- **[Отчёты](https://github.com/safedep/vet/blob/main/docs/reporting.md)** — форматы SARIF, JSON, CSV, HTML, Markdown
- **[Поддержка SBOM](https://docs.safedep.io/vet/guides/cyclonedx-sbom)** — импорт/экспорт CycloneDX, SPDX
- **[Режим запросов](https://docs.safedep.io/cloud/quickstart#query-your-data)** — сканируйте один раз, анализируйте многократно
- **[Интеграция с GitHub](https://docs.safedep.io/)** — сканирование репозиториев и организаций
- **[Пиннинг GitHub Actions](https://github.com/safedep/vet/blob/main/docs/github-actions-pinning.md)** — фиксация GitHub Actions на commit SHA для предотвращения атак на цепочку поставок
## Конфиденциальность
`vet` собирает анонимную телеметрию использования для улучшения продукта. **Ваш код и информация о пакетах никогда не передаются.**
```bash
# Отключение телеметрии (необязательно)
export VET_DISABLE_TELEMETRY=true
```
## Сообщество и поддержка
<div align="center">
### Присоединяйтесь к сообществу
[](https://rebrand.ly/safedep-community)
[](https://github.com/safedep/vet/discussions)
[](https://twitter.com/safedepio)
</div>
### Получите помощь и поделитесь идеями
- **[Интерактивный учебник](https://killercoda.com/safedep/scenario/101-intro)** — практическое знакомство с vet
- **[Полная документация](https://docs.safedep.io/)** — исчерпывающие руководства
- **[Сообщество Discord](https://rebrand.ly/safedep-community)** — поддержка в реальном времени
- **[Трекер задач](https://github.com/safedep/vet/issues)** — отчёты об ошибках и запросы функций
- **[Руководство по внесению вклада](https://github.com/safedep/vet/blob/main/CONTRIBUTING.md)** — присоединяйтесь к разработке
---
<div align="center">
### История звёзд
[](https://star-history.com/#safedep/vet&Date)
### Создано на основе открытого исходного кода
vet стоит на плечах гигантов:
[OSV](https://osv.dev) • [OpenSSF Scorecard](https://securityscorecards.dev/) • [SLSA](https://slsa.dev/) • [OSV-SCALIBR](https://github.com/google/osv-scalibr) • [Syft](https://github.com/anchore/syft)
### Контрибьюторы
Спасибо всем контрибьюторам ❤️
<a href="https://github.com/safedep/vet/graphs/contributors">
<img src="https://contrib.rocks/image?repo=safedep/vet" alt="Контрибьюторы vet" />
</a>
---
<p><strong>Защитите свою цепочку поставок уже сегодня. Поставьте звезду репозиторию и начните!</strong></p>
Создано с любовью командой [SafeDep](https://safedep.io) и сообществом открытого исходного кода
</div>
<img referrerpolicy="no-referrer-when-downgrade" src="https://assets.kitploit.com/production/public/readmes/9305/93ae7d494fad0fb30cbf3ae746a39c4bc7a0f8bbf87fbb587a3f3c01f3c5ce20.png" />