Google heeft de OSV-Scanner-tool gepresenteerd voor het controleren op onverholpen kwetsbaarheden in code en applicaties, die rekening houdt met de volledige keten van gerelateerde afhankelijkheden. De OSV-Scanner maakt het mogelijk om situaties te identificeren waarin een applicatie kwetsbaar wordt door problemen in een van de bibliotheken die als afhankelijkheid worden gebruikt. Een kwetsbare bibliotheek kan zelfs indirect worden gebruikt, dat wil zeggen, worden aangeroepen via een andere afhankelijkheid. De code van het project is geschreven in de programmeertaal Go en wordt verspreid onder de Apache 2.0-licentie.
De OSV-Scanner kan automatisch en recursief de directory structuur scannen, waarbij projecten en applicaties worden geïdentificeerd aan de hand van de aanwezigheid van git-directories (informatie over kwetsbaarheden wordt bepaald door het analyseren van de hashes van commits), SBOM-bestanden (Software Bill Of Material in de formaten SPDX en CycloneDX), manifesten of lock-bestanden van package managers zoals Yarn, NPM, GEM, PIP en Cargo. Ook wordt het scannen van de inhoud van Docker-containerafbeeldingen, die zijn gebouwd op basis van pakketten uit Debian-repositories, ondersteund.

Informatie over kwetsbaarheden komt uit de OSV-database (Open Source Vulnerabilities), die gegevens bevat over beveiligingsproblemen in de repositories van Crates.io (Rust), Go, Maven, NPM (JavaScript), NuGet (C#), Packagist (PHP), PyPI (Python), RubyGems, Android, Debian en Alpine, evenals gegevens over kwetsbaarheden in de Linux-kernel en informatie uit rapporten over kwetsbaarheden in projecten die op GitHub zijn geplaatst. In de OSV-database wordt de status van het oplossen van het probleem weergegeven, worden commits genoemd met de opkomst en oplossing van de kwetsbaarheid, het bereik van kwetsbare versies, links naar de projectrepository met de code en een melding van het probleem. De aangeboden API maakt het mogelijk om op het niveau van commits en tags de opkomst van de kwetsbaarheid te volgen en de blootstelling van afgeleide producten en afhankelijkheden aan het probleem te analyseren.

Bron: opennet.ru
