Сканер уязвимостей, написанный на Go, который использует данные, предоставленные https://osv.dev
Используйте OSV-Scanner для поиска существующих уязвимостей, затрагивающих зависимости вашего проекта. OSV-Scanner предоставляет официально поддерживаемый фронтенд для базы данных OSV и CLI-интерфейс для OSV-Scalibr, который связывает список зависимостей проекта с уязвимостями, которые на них влияют.
OSV-Scanner поддерживает широкий спектр типов проектов, менеджеров пакетов и функций, включая, но не ограничиваясь:
OSV-Scanner использует расширяемую библиотеку OSV-Scalibr под капотом для обеспечения этой функциональности. Если язык или менеджер пакетов в настоящее время не поддерживается, пожалуйста, оставьте запрос на добавление функции.
База данных, лежащая в основе, OSV.dev, имеет ряд преимуществ по сравнению с закрытыми базами данных рекомендаций и сканерами:
Всё вышеперечисленное приводит к точным и применимым на практике уведомлениям об уязвимостях, что сокращает время, необходимое для их устранения. Загляните на OSV.dev для получения более подробной информации!
Для установки OSV-Scanner, пожалуйста, обратитесь к разделу установки нашей документации. Релизы OSV-Scanner можно найти на странице релизов репозитория GitHub. Рекомендуемый способ — загрузить предварительно собранный двоичный файл для вашей платформы. В качестве альтернативы вы можете использовать
go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest для сборки из исходного кода.
Для получения дополнительной информации, пожалуйста, прочитайте нашу подробную документацию, чтобы узнать, как использовать OSV-Scanner. Для получения подробной информации о каждой функции нажмите на их заголовки в этом README.
Обратите внимание: Это инструкции для последней бета-версии OSV-Scanner V2. Если вы используете V1, обратитесь к README и документации V1.
$ osv-scanner scan source -r /path/to/your/dir
Эта команда рекурсивно просканирует указанный каталог на наличие любых поддерживаемых файлов пакетов, таких как package.json, go.mod, pom.xml и т.д., и выведет все обнаруженные уязвимости.
OSV-Scanner имеет возможность использовать анализ вызовов, чтобы определить, действительно ли уязвимая функция используется в проекте, что приводит к меньшему количеству ложных срабатываний и применимым на практике предупреждениям.
OSV-Scanner также может обнаруживать вендоренный C/C++ код для сканирования уязвимостей. Подробности см. здесь.
OSV-Scanner поддерживает 11+ языковых экосистем и 19+ типов файлов блокировок. Чтобы проверить, покрыта ли ваша экосистема, пожалуйста, ознакомьтесь с нашей подробной документацией.
OSV-Scanner также поддерживает комплексное сканирование образов контейнеров с учётом слоёв для обнаружения уязвимостей в следующих пакетах операционных систем и зависимостях, специфичных для языков.
| Поддержка дистрибутивов | Поддержка языковых артефактов |
|---|---|
| Alpine OS | Go |
| Debian | Java |
| Ubuntu | Node |
| Python |
Подробности о поддержке см. в полной документации.
Использование:
$ osv-scanner scan image my-image-name:tag

Проверьте лицензии ваших зависимостей, используя данные deps.dev. Для получения сводки:
osv-scanner --licenses path/to/repository
Для проверки по списку разрешённых лицензий (формат SPDX):
osv-scanner --licenses="MIT,Apache-2.0" path/to/directory
Сканируйте свой проект по локальной базе данных OSV. Сетевое соединение не требуется после первоначальной загрузки базы данных. Базу данных также можно загрузить вручную.
osv-scanner --offline --download-offline-databases ./path/to/your/dir
[!WARNING] Управляемое исправление (команда
fix) может быть рискованным при запуске на ненадёжных проектах. Оно может побудить менеджер пакетов выполнять скрипты или следовать внешним реестрам, указанным в проекте. Пожалуйста, убедитесь, что вы доверяете исходному коду и артефактам, прежде чем продолжить.