OSV.dev — Детектор уязвимостей от Google для вашего стека зависимостей
Когда последний раз вы проверяли зависимости?
Представьте: вы устанавливаете пакет в проект, а через месяц узнаёте, что в нём обнаружили критическую уязвимость. Знакомая ситуация? Google создал инструмент, который помогает избежать таких сценариев. OSV.dev — это не просто база данных уязвимостей, а целая экосистема для анализа безопасности зависимостей.
Что такое OSV.dev?
OSV (Open Source Vulnerabilities) — это открытая база данных уязвимостей с API и инструментами сканирования. Проект развивается под эгидой Google и уже интегрирован с такими системами как GitHub Advisory Database и PyPI Advisory Database.
Кому это нужно:
- Разработчикам, которые хотят знать о уязвимостях в своих зависимостях
- Командам DevOps для автоматического мониторинга безопасности
- Менеджерам open-source проектов для оперативного реагирования на угрозы
Ключевые возможности
1. Универсальный сканер зависимостей
OSV предоставляет отдельный инструмент на Go, который умеет проверять:
- Файлы блокировок (lockfiles)
- Docker-контейнеры на базе Debian
- SBOM-файлы (SPDX и CycloneDB)
- Git-репозитории
Пример запуска сканера:
osv-scanner --lockfile=package-lock.json
2. Обширная база данных
В OSV собраны уязвимости из:
- Национальной базы уязвимостей (NVD)
- GitHub Advisory Database
- PyPI, Go, Rust, Debian и других экосистем
Данные доступны через API и веб-интерфейс, а также в виде дампов в Google Cloud Storage (gs://osv-vulnerabilities).
3. Удобное API
Для интеграции в CI/CD или собственные инструменты доступно REST API с подробной документацией. Есть готовые биндинги для Go.
Пример запроса уязвимостей для конкретного пакета:
curl -X POST -d '
{
"version": "2.4.1",
"package": {
"name": "express",
"ecosystem": "npm"
}
}' https://api.osv.dev/v1/query
Как это работает внутри?
Архитектура OSV.dev включает несколько ключевых компонентов:
- API сервер (на Go) — основной интерфейс для запросов
- Индексатор — определяет версии уязвимых пакетов
- Воркеры — занимаются анализом воздействия и биссекцией коммитов
- Конвертеры — преобразуют данные из разных источников (NVD, Alpine, Debian)
Весь проект развёрнут на Google Cloud Platform с использованием:
- Cloud Functions
- Cloud Datastore
- Terraform для управления инфраструктурой
Где это можно применить?
- В CI/CD пайплайнах — добавьте проверку зависимостей перед сборкой
- Для мониторинга production-окружения — регулярно проверяйте используемые версии
- При выборе библиотек — перед добавлением новой зависимости проверьте её историю уязвимостей
- Для compliance-отчётности — автоматически получайте список известных уязвимостей
Интересно, что OSV уже интегрирован с такими инструментами как Trivy, Dependency-Track и Renovate (список совместимых инструментов есть в README).
Стоит ли попробовать?
OSV.dev — это: ✅ Открытый и бесплатный сервис от Google ✅ Поддержка множества языков и экосистем ✅ Готовые инструменты для интеграции
Особенно полезен будет:
- Командам, работающим с большим количеством зависимостей
- Разработчикам библиотек, которые хотят оперативно реагировать на уязвимости
- Компаниям с strict compliance-требованиями
Как начать:
- Попробуйте веб-интерфейс на osv.dev
- Установите osv-scanner для локальных проверок
- Интегрируйте API в свои процессы
P.S. Если найдёте новую уязвимость — проект принимает contributions! Подробности в CONTRIBUTING.md.