
osv-scanner v2.5.0
Scanner di vulnerabilità veloce e multi-linguaggio per dipendenze open-source. Esegue la scansione di lockfile, container e directory sorgente confrontandoli con il database OSV, con correzione guidata e supporto offline.
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:
- Linguaggi: C/C++, Dart, Elixir, Go, Java, Javascript, PHP, Python, R, Ruby, Rust.
- Gestori di pacchetti: npm, pip, yarn, maven, go modules, cargo, gem, composer, nuget e altri.
- Sistemi operativi: Rileva le vulnerabilità nei pacchetti del sistema operativo su sistemi Linux.
- Contenitori: Scansiona le immagini dei contenitori per individuare vulnerabilità nelle immagini di base e nei pacchetti inclusi.
- Remediation guidata: Fornisce raccomandazioni per gli aggiornamenti di versione dei pacchetti basate su criteri come la profondità delle dipendenze, la gravità minima, la strategia di correzione e il ritorno sull'investimento.
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à.
Database sottostante
Il database sottostante, OSV.dev, offre diversi vantaggi rispetto ai database di advisory e agli scanner closed source:
- Coprendo la maggior parte degli ecosistemi open source di linguaggi e sistemi operativi (incluso Git), è completo.
- Ogni advisory proviene da una fonte aperta e autorevole (ad es. GitHub Security Advisories, RustSec Advisory Database, Ubuntu security notices)
- Chiunque può suggerire miglioramenti agli advisory, con il risultato di un database di altissima qualità.
- Il formato OSV memorizza in modo inequivocabile le informazioni sulle versioni interessate in un formato leggibile dalle macchine che si mappa con precisione sull'elenco dei pacchetti di uno sviluppatore.
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!
Installazione di base
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.
Funzionalità principali
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.
Scansione di una directory sorgente
$ 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.
Lockfile supportati
OSV-Scanner supporta 11+ ecosistemi linguistici e 19+ tipi di lockfile. Per verificare se il tuo ecosistema è coperto, consulta la nostra documentazione dettagliata.
Scansione dei contenitori
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

Scansione delle licenze
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
Scansione offline
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
Remediation guidata (Sperimentale)
[!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.