
Scanner di vulnerabilità scritto in Go che utilizza i dati forniti da https://osv.dev
Usa OSV-Scanner per trovare le vulnerabilità esistenti che interessano le dipendenze del tuo progetto. OSV-Scanner fornisce un frontend ufficialmente supportato per il database OSV e un'interfaccia CLI per OSV-Scalibr che collega l'elenco delle dipendenze di un progetto alle vulnerabilità che le interessano.
OSV-Scanner supporta un'ampia gamma di tipi di progetto, gestori di pacchetti e funzionalità, tra cui:
OSV-Scanner utilizza internamente la libreria estensibile OSV-Scalibr per fornire questa funzionalità. Se un linguaggio o un gestore di pacchetti non è attualmente supportato, ti preghiamo di aprire una richiesta di funzionalità.
Il database sottostante, OSV.dev, offre diversi vantaggi rispetto ai database di advisory e agli scanner closed source:
Tutto ciò si traduce in notifiche di vulnerabilità accurate e utilizzabili, che riducono il tempo necessario per risolverle. Dai un'occhiata a OSV.dev per maggiori dettagli!
Per installare OSV-Scanner, fai riferimento alla sezione sull'installazione della nostra documentazione. Le release di OSV-Scanner sono disponibili nella pagina delle release del repository GitHub. Il metodo consigliato è scaricare un binario precompilato per la tua piattaforma. In alternativa, puoi usare
go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest per compilarlo dal sorgente.
Per maggiori informazioni, leggi la nostra documentazione dettagliata per imparare come usare OSV-Scanner. Per informazioni dettagliate su ciascuna funzionalità, fai clic sui loro titoli in questo README.
Nota: queste sono le istruzioni per l'ultima beta di OSV-Scanner V2. Se stai usando V1, consulta invece il README e la documentazione della V1.
$ osv-scanner scan source -r /path/to/your/dir
Questo comando scansionerà ricorsivamente la directory specificata per individuare eventuali file di pacchetto supportati, come package.json, go.mod, pom.xml, ecc., e mostrerà tutte le vulnerabilità rilevate.
OSV-Scanner ha la possibilità di utilizzare l'analisi delle chiamate per determinare se una funzione vulnerabile è effettivamente usata nel progetto, riducendo i falsi positivi e fornendo avvisi utilizzabili.
OSV-Scanner può anche rilevare il codice C/C++ vendored per la scansione delle vulnerabilità. Vedi qui per i dettagli.
OSV-Scanner supporta 11+ ecosistemi linguistici e 19+ tipi di lockfile. Per verificare se il tuo ecosistema è coperto, consulta la nostra documentazione dettagliata.
OSV-Scanner supporta anche una scansione completa e sensibile ai layer per le immagini dei contenitori, per rilevare vulnerabilità nei seguenti pacchetti del sistema operativo e nelle dipendenze specifiche del linguaggio.
| Supporto distro | Supporto artefatti dei linguaggi |
|---|---|
| Alpine OS | Go |
| Debian | Java |
| Ubuntu | Node |
| Python |
Consulta la documentazione completa per i dettagli sul supporto.
Utilizzo:
$ osv-scanner scan image my-image-name:tag

Controlla le licenze delle tue dipendenze utilizzando i dati di deps.dev. Per un riepilogo:
osv-scanner --licenses path/to/repository
Per verificare rispetto a un elenco di licenze consentite (formato SPDX):
osv-scanner --licenses="MIT,Apache-2.0" path/to/directory
Scansiona il tuo progetto utilizzando un database OSV locale. Non è richiesta alcuna connessione di rete dopo il download iniziale del database. Il database può anche essere scaricato manualmente.
osv-scanner --offline --download-offline-databases ./path/to/your/dir
[!WARNING] La remediation guidata (il comando
fix) può essere rischiosa se eseguita su progetti non affidabili. Potrebbe indurre il gestore di pacchetti a eseguire script o a seguire registri esterni specificati nel progetto. Assicurati di fidarti del codice sorgente e degli artefatti prima di procedere.
OSV-Scanner fornisce la remediation guidata, una funzionalità che suggerisce aggiornamenti delle versioni dei pacchetti in base a criteri come la profondità delle dipendenze, la gravità minima, la strategia di correzione e il ritorno sull'investimento. Attualmente supportiamo la correzione delle vulnerabilità nei seguenti file:
È disponibile come comando CLI headless e anche come modalità interattiva.
$ 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 comunica con i seguenti servizi esterni durante il funzionamento:
La fonte primaria per le informazioni sulle vulnerabilità. OSV-Scanner interroga questa API per verificare la presenza di vulnerabilità note nei pacchetti e per identificare le dipendenze C/C++ vendored. I dati inviati includono nomi di pacchetti, versioni, ecosistemi e hash dei file. Usa la modalità --offline per disabilitare le richieste di rete e scansionare invece un database locale.
Utilizzata per informazioni supplementari sui pacchetti:
--licenses): Recupera le informazioni sulle licenze dei pacchettiI dati inviati includono nomi di pacchetti, versioni ed ecosistemi. Nessun codice sorgente viene trasmesso.
Quando si utilizza il registro nativo per la risoluzione delle dipendenze (invece di deps.dev), OSV-Scanner può interrogare:
| Registro | URL | Utilizzato per |
|---|---|---|
| Maven Central | repo.maven.apache.org/maven2 |
Se hai quello che sembra un bug, utilizza il sistema di tracciamento dei problemi GitHub. Prima di aprire un problema, cerca tra i problemi esistenti per vedere se il tuo è già coperto.
osv-scannerVedi CONTRIBUTING.md per la documentazione su come contribuire al codice.
| Ecosistema | Formato file (Tipo) | Strategie di remediation supportate |
|---|
| npm | package-lock.json (lockfile) | in-place |
| npm | package.json (manifest) | relock |
| Maven | pom.xml (manifest) | override |
| Metadati dei pacchetti Maven e file POM |
| npm Registry | registry.npmjs.org | Metadati dei pacchetti npm |
| PyPI | pypi.org | Metadati dei pacchetti Python |