Torna agli aggiornamenti
New releaseAug 7, 2026

osv-scanner v2.5.0

Scanner di vulnerabilità scritto in Go che utilizza i dati forniti da https://osv.dev

Condividi

OpenSSF Scorecard Checks codecov SLSA 3 GitHub Release

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 distroSupporto artefatti dei linguaggi
Alpine OSGo
DebianJava
UbuntuNode
Python

Consulta la documentazione completa per i dettagli sul supporto.

Utilizzo:

$ osv-scanner scan image my-image-name:tag

screencast dell'output html della scansione dei contenitori

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.

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:

EcosistemaFormato file (Tipo)Strategie di remediation supportate
npmpackage-lock.json (lockfile)in-place
npmpackage.json (manifest)relock
Mavenpom.xml (manifest)override

È disponibile come comando CLI headless e anche come modalità interattiva.

Esempio (per npm)

$ osv-scanner fix \
    --max-depth=3 \
    --min-severity=5 \
    --ignore-dev  \
    --strategy=in-place \
    -L path/to/package-lock.json

Modalità interattiva (per npm)

$ osv-scanner fix \
    -M path/to/package.json \
    -L path/to/package-lock.json
Screenshot della schermata dei risultati relock interattivi con alcune patch di allentamento selezionate

Fonti dei dati e privacy

OSV-Scanner comunica con i seguenti servizi esterni durante il funzionamento:

OSV.dev API

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.

deps.dev API

Utilizzata per informazioni supplementari sui pacchetti:

  • Risoluzione delle dipendenze: Risolve i grafi delle dipendenze per la scansione delle vulnerabilità e la remediation
  • Scansione delle immagini dei contenitori: Interroga i metadati delle immagini dei contenitori per il rilevamento delle vulnerabilità
  • Scansione delle licenze (flag --licenses): Recupera le informazioni sulle licenze dei pacchetti
  • Deprecazione dei pacchetti: Verifica se i pacchetti sono deprecati

I dati inviati includono nomi di pacchetti, versioni ed ecosistemi. Nessun codice sorgente viene trasmesso.

Registri dei pacchetti

Quando si utilizza il registro nativo per la risoluzione delle dipendenze (invece di deps.dev), OSV-Scanner può interrogare:

RegistroURLUtilizzato per
Maven Centralrepo.maven.apache.org/maven2Metadati dei pacchetti Maven e file POM
npm Registryregistry.npmjs.orgMetadati dei pacchetti npm
PyPIpypi.orgMetadati dei pacchetti Python

Contribuisci

Segnala problemi

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.

Contribuire al codice di osv-scanner

Vedi CONTRIBUTING.md per la documentazione su come contribuire al codice.

Cronologia delle stelle

Grafico della cronologia delle stelle

Categorie