Google опубликовал OSV-Scanner, сканер уязвимостей, учитывающий зависимости

Компания Google представила инструментарий OSV-Scanner для проверки наличия неисправленных уязвимостей в коде и приложениях, работающий с учётом всей цепочки связанных с кодом зависимостей. OSV-Scanner позволяет выявлять ситуации, когда приложение становится уязвимым из-за проблем в одной из библиотек, используемых в качестве зависимости. При этом уязвимая библиотека может использоваться опосредованно, т.е. вызываться через другую зависимость. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0.

OSV-Scanner может автоматически рекурсивно сканировать дерево каталогов, определяя проекты и приложения по наличию git-каталогов (информация об уязвимостях определяется через анализ хэшей коммитов), SBOM-файлов (Software Bill Of Material в форматах SPDX и CycloneDX), манифестов или lock-файлов пакетных менеджеров, таких как Yarn, NPM, GEM, PIP и Cargo. Также поддерживается сканирование начинки образов docker-контейнеров, собранных на основе пакетов из репозиториев Debian.


Информация об уязвимостях берётся из базы данных OSV (Open Source Vulnerabilities), охватывающей сведения о проблемах с безопасностью в репозиториях Сrates.io (Rust), Go, Maven, NPM (JavaScript), NuGet (C#), Packagist (PHP), PyPI (Python), RubyGems, Android, Debian и Alpine, а также данные об уязвимостях в ядре Linux и сведения из отчётов об уязвимостях в проектах, размещённых на GitHub. В базе OSV отражён статус исправления проблемы, указаны коммиты с появлением и исправлением уязвимости, диапазон подверженных уязвимости версий, ссылки на репозиторий проекта с кодом и уведомление о проблеме. Предоставляемый API позволяют на уровне коммитов и тегов отследить проявление уязвимости и проанализировать подверженность проблеме производных продуктов и зависимостей.


Release. Ссылка here.