
In Go geschriebener Schwachstellen-Scanner, der die von https://osv.dev bereitgestellten Daten verwendet.
Verwenden Sie OSV-Scanner, um vorhandene Schwachstellen zu finden, die die Abhängigkeiten Ihres Projekts betreffen. OSV-Scanner bietet ein offiziell unterstütztes Frontend für die OSV-Datenbank und eine CLI-Schnittstelle zu OSV-Scalibr, die die Abhängigkeitsliste eines Projekts mit den sie betreffenden Schwachstellen verknüpft.
OSV-Scanner unterstützt eine breite Palette von Projekttypen, Paketmanagern und Funktionen, einschließlich, aber nicht beschränkt auf:
OSV-Scanner nutzt intern die erweiterbare Bibliothek OSV-Scalibr, um diese Funktionalität bereitzustellen. Wenn eine Sprache oder ein Paketmanager derzeit nicht unterstützt wird, reichen Sie bitte eine Funktionsanfrage ein.
Die zugrunde liegende Datenbank OSV.dev bietet im Vergleich zu proprietären Advisory-Datenbanken und Scannern mehrere Vorteile:
All dies führt zu präzisen und umsetzbaren Schwachstellenmeldungen, was die Zeit für deren Behebung reduziert. Weitere Details finden Sie unter OSV.dev!
Informationen zur Installation von OSV-Scanner finden Sie im Abschnitt Installation unserer Dokumentation. OSV-Scanner-Versionen finden Sie auf der Releases-Seite des GitHub-Repositorys. Die empfohlene Methode ist das Herunterladen einer vorgefertigten Binärdatei für Ihre Plattform. Alternativ können Sie go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest verwenden, um es aus dem Quellcode zu erstellen.
Weitere Informationen zur Verwendung von OSV-Scanner finden Sie in unserer ausführlichen Dokumentation. Klicken Sie für detaillierte Informationen zu jeder Funktion auf deren Titel in diesem README.
Bitte beachten Sie: Dies sind die Anweisungen für die neueste OSV-Scanner-V2-Beta. Wenn Sie V1 verwenden, schauen Sie sich stattdessen das V1-README und die Dokumentation an.
$ osv-scanner scan source -r /path/to/your/dir
Dieser Befehl scannt das angegebene Verzeichnis rekursiv nach unterstützten Paketdateien wie package.json, go.mod, pom.xml usw. und gibt alle entdeckten Schwachstellen aus.
OSV-Scanner bietet die Möglichkeit, mithilfe der Call-Analyse festzustellen, ob eine anfällige Funktion tatsächlich im Projekt verwendet wird. Dies führt zu weniger Fehlalarmen und umsetzbaren Warnungen.
OSV-Scanner kann für die Schwachstellensuche auch vendored C/C++-Code erkennen. Details finden Sie hier.
OSV-Scanner unterstützt 11+ Sprach-Ökosysteme und 19+ Lockfile-Typen. Um zu prüfen, ob Ihr Ökosystem abgedeckt ist, schauen Sie sich unsere ausführliche Dokumentation an.
OSV-Scanner unterstützt außerdem ein umfassendes, Layer-bewusstes Scannen von Container-Images, um Schwachstellen in den folgenden Betriebssystempaketen und sprachspezifischen Abhängigkeiten zu erkennen.
| Distro-Unterstützung | Unterstützung für Sprach-Artefakte |
|---|---|
| Alpine OS | Go |
| Debian | Java |
| Ubuntu | Node |
| Python |
Details zur Unterstützung finden Sie in der vollständigen Dokumentation.
Verwendung:
$ osv-scanner scan image my-image-name:tag

Prüfen Sie die Lizenzen Ihrer Abhängigkeiten mithilfe der deps.dev-Daten. Für eine Zusammenfassung:
osv-scanner --licenses path/to/repository
Um gegen eine Liste zulässiger Lizenzen (SPDX-Format) zu prüfen:
osv-scanner --licenses="MIT,Apache-2.0" path/to/directory
Scannen Sie Ihr Projekt gegen eine lokale OSV-Datenbank. Nach dem initialen Datenbank-Download ist keine Netzwerkverbindung erforderlich. Die Datenbank kann auch manuell heruntergeladen werden.
osv-scanner --offline --download-offline-databases ./path/to/your/dir
[!WARNING] Guided Remediation (der Befehl
fix) kann bei nicht vertrauenswürdigen Projekten riskant sein. Dies kann den Paketmanager dazu veranlassen, Skripte auszuführen oder im Projekt angegebene externe Registries zu verfolgen. Bitte stellen Sie sicher, dass Sie dem Quellcode und den Artefakten vertrauen, bevor Sie fortfahren.
OSV-Scanner bietet Guided Remediation an, eine Funktion, die Paketversions-Upgrades basierend auf Kriterien wie Abhängigkeitstiefe, Mindestschweregrad, Behebungsstrategie und Return on Investment vorschlägt. Derzeit unterstützen wir die Behebung von Schwachstellen in den folgenden Dateien:
Dies ist sowohl als Headless-CLI-Befehl als auch im interaktiven Modus verfügbar.
$ osv-scanner fix \
--max-depth=3 \
--min-severity=5 \
--ignore-dev \
--strategy=in-place \
-L path/to/package-lock.json
$ osv-scanner fix \
-M path/to/package.json \
-L path/to/package-lock.json
OSV-Scanner kommuniziert während des Betriebs mit den folgenden externen Diensten:
Die primäre Datenquelle für Schwachstelleninformationen. OSV-Scanner fragt diese API ab, um Pakete auf bekannte Schwachstellen zu prüfen und vendored C/C++-Abhängigkeiten zu identifizieren. Zu den gesendeten Daten gehören Paketnamen, Versionen, Ökosysteme und Datei-Hashes. Verwenden Sie den --offline-Modus, um Netzwerkanfragen zu deaktivieren und stattdessen gegen eine lokale Datenbank zu scannen.
Wird für zusätzliche Paketinformationen verwendet:
--licenses-Flag): Ruft Lizenzinformationen für Pakete ab.Zu den gesendeten Daten gehören Paketnamen, Versionen und Ökosysteme. Es wird kein Quellcode übertragen.
Wenn die native Registry für die Abhängigkeitsauflösung verwendet wird (anstelle von deps.dev), fragt OSV-Scanner möglicherweise Folgendes ab:
| Registry | URL | Verwendet für |
|---|---|---|
| Maven Central | repo.maven.apache.org/maven2 |
Wenn Sie vermuten, dass es sich um einen Fehler handelt, nutzen Sie bitte das GitHub-Issue-Tracking-System. Bevor Sie ein Issue erstellen, durchsuchen Sie bitte die vorhandenen Issues, um zu prüfen, ob Ihr Problem bereits abgedeckt ist.
osv-scanner beitragenInformationen zum Beitragen von Code finden Sie in CONTRIBUTING.md.
| Ökosystem | Dateiformat (Typ) | Unterstützte Behebungsstrategien |
|---|
| npm | package-lock.json (lockfile) | in-place |
| npm | package.json (manifest) | relock |
| Maven | pom.xml (manifest) | override |
| Maven-Paketmetadaten und POM-Dateien |
| npm Registry | registry.npmjs.org | npm-Paketmetadaten |
| PyPI | pypi.org | Python-Paketmetadaten |