Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
DependencyCheck — OWASP dependency-check è un'utilità di analisi della composizione software che rileva vulnerabilità pubblicamente divulgate nelle dipendenze delle applicazioni. | Kitploit
Strumenti/GitHubGitHub/dependency-check/dependencycheck
Scanner di VulnerabilitàAnalisi delle VulnerabilitàDevSecOpsSicurezza della Supply Chain
GitHubdependency-check/dependencycheck

DependencyCheck

OWASP dependency-check è un'utilità di analisi della composizione software che rileva vulnerabilità pubblicamente divulgate nelle dipendenze delle applicazioni.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web
7.7k1.4k2 giorni faRevisionato da Kitploit

Maven Central Build and Deploy Snapshot CII Best Practices Apache 2.0 License

Black Hat Arsenal Black Hat Arsenal Black Hat Arsenal Black Hat Arsenal

Dependency-Check

Dependency-Check è uno strumento di Software Composition Analysis (SCA) che tenta di rilevare le vulnerabilità divulgate pubblicamente presenti nelle dipendenze di un progetto. Lo fa determinando se esiste un identificatore Common Platform Enumeration (CPE) per una determinata dipendenza. Se lo trova, genera un report che collega alle voci CVE associate.

La documentazione e i link alle release binarie di produzione sono disponibili sulle github pages. Inoltre, ulteriori informazioni sull'architettura e sui modi per estendere dependency-check sono disponibili nel wiki.

Avviso

Questo prodotto utilizza l'API NVD ma non è approvato né certificato dalla NVD.

Aggiornamento obbligatorio alla 12.1.0+

A causa di modifiche di compatibilità dell'API NVD, l'aggiornamento è obbligatorio. Vedere #7463 per maggiori informazioni.

Modifiche sostanziali nella 11.0.0

  • Java 11 è ora richiesto per eseguire dependency-check 11.0.0 o versioni successive

  • Aggiornamento del database H2

    11.0.0 contiene modifiche sostanziali nell'uso del database H2 locale. Verrà effettuato un download completo dei dati NVD. Nota: se si utilizza una directory dati condivisa, il file del database h2 non è compatibile con le versioni precedenti di dependency-check. Se si verificano problemi, potrebbe essere necessario eseguire un purge:

    • gradle: ./gradlew dependencyCheckPurge
    • maven: mvn org.owasp:dependency-check-maven:11.0.0:purge
    • cli: dependency-check.sh --purge

Altri avvisi

Chiave API NVD fortemente consigliata

Dependency-check è passato dall'uso del data-feed NVD all'API NVD a partire dalla 9.0.0+ (gennaio 2024). Gli utenti di dependency-check sono fortemente incoraggiati a ottenere una chiave API NVD; vedere https://nvd.nist.gov/developers/request-an-api-key Senza una chiave API NVD, gli aggiornamenti di dependency-check saranno estremamente lenti. Consultare la documentazione per le integrazioni cli, maven, gradle o ant su come impostare la chiave API NVD.

Chiave API NVD, CI e rate limiting

L'API NVD applica dei limiti di frequenza (rate limit). Se si utilizza una singola API KEY e si verificano più build, si potrebbe raggiungere il limite di frequenza e ricevere errori 403. In un ambiente CI è necessario adottare una strategia di caching.

Autenticazione obbligatoria di Sonatype OSS Index e migrazione a Sonatype Guide

A settembre 2025 Sonatype OSS Index ha iniziato a imporre l'uso degli API token per l'autenticazione. Ad aprile 2026 è iniziata una successiva migrazione a Sonatype Guide, dando il via a una transizione verso l'uso dei Sonatype Guide API Token, che dovrebbero sostituire le vecchie chiavi/token API OSS Index entro la fine del 2026.

Senza credenziali, Dependency Check disabiliterà automaticamente l'analizzatore OSS Index. Consultare la documentazione per le integrazioni CLI, Maven, Gradle o Ant su come impostare le credenziali dell'analizzatore per l'uso di un token Sonatype Guide o di una vecchia chiave API OSS Index.

Se si desidera utilizzare Sonatype OSS Index (tramite Guide), è necessario configurare Dependency-Check e considerare le implicazioni della migrazione a Sonatype Guide, il cui modello commerciale/di utilizzo è cambiato. Vedere la documentazione dell'analizzatore per maggiori informazioni.

Ambiente di build Gradle

Con la 9.0.0+ gli utenti potrebbero riscontrare problemi con eccezioni NoSuchMethodError dovute alla risoluzione delle dipendenze. Se si verifica questo problema, sarà necessario fissare alcune delle dipendenze transitive di dependency-check a versioni specifiche. Ad esempio:

/buildSrc/build.gradle

root@kitploit:~
dependencies {
    constraints {
        // org.owasp.dependencycheck needs at least this version of jackson. Other plugins pull in older versions..
        add("implementation", "com.fasterxml.jackson:jackson-bom:2.21.2")

        // org.owasp.dependencycheck needs these versions. Other plugins pull in older versions..
        add("implementation", "org.apache.commons:commons-lang3:3.20.0")
        add("implementation", "org.apache.commons:commons-text:1.15.0")
    }
}

Requisiti

Versione Java

Versione Java minima: Java 11

Accesso a Internet

OWASP dependency-check richiede l'accesso a diverse risorse ospitate esternamente. Per maggiori informazioni, vedere Accesso a Internet richiesto.

Strumenti di build

Per analizzare alcuni stack tecnologici, dependency-check potrebbe richiedere l'installazione di altri strumenti di sviluppo. Alcune delle analisi elencate di seguito potrebbero essere sperimentali e richiedere l'abilitazione degli analizzatori sperimentali.

  1. Per analizzare gli assembly .NET, devono essere installati il runtime o l'SDK di dotnet 8.
    • È possibile analizzare assembly destinati ad altri runtime - ma 8 è richiesto per eseguire l'analisi.
  2. Se si analizzano progetti GoLang, go deve essere installato.
  3. L'analisi dei progetti Elixir richiede mix_audit.
  4. L'analisi dei progetti npm, pnpm e yarn richiede l'installazione di npm, pnpm o yarn.
    • Le analisi eseguite utilizzano la rispettiva funzione audit di ciascuno.
  5. L'analisi di Ruby è un wrapper attorno a bundle-audit, che deve essere installato.

Release correnti

Plugin Jenkins

Per le istruzioni sull'uso del plugin Jenkins, consultare la pagina del plugin OWASP Dependency-Check.

Riga di comando

Istruzioni più dettagliate sono disponibili sulle github pages di dependency-check. L'ultima CLI può essere scaricata da github nella sezione releases.

Download dell'ultima release:

root@kitploit:~
$ VERSION=$(curl -s https://dependency-check.github.io/DependencyCheck/current.txt)
$ curl -Ls "https://github.com/dependency-check/DependencyCheck/releases/download/v$VERSION/dependency-check-$VERSION-release.zip" --output dependency-check.zip

Su *nix

root@kitploit:~
$ ./bin/dependency-check.sh -h
$ ./bin/dependency-check.sh --out . --scan [path to jar files to be scanned]

Su Windows

root@kitploit:~
> .\bin\dependency-check.bat -h
> .\bin\dependency-check.bat --out . --scan [path to jar files to be scanned]

Su Mac con Homebrew Nota - gli utenti di homebrew che eseguono l'aggiornamento dalla 5.x alla 6.0.0 dovranno eseguire dependency-check.sh --purge.

root@kitploit:~
$ brew update && brew install dependency-check
$ dependency-check -h
$ dependency-check --out . --scan [path to jar files to be scanned]

Plugin Maven

Istruzioni più dettagliate sono disponibili sulle github pages di dependency-check-maven. Per impostazione predefinita, il plugin è associato alla fase verify (cioè mvn verify). In alternativa, è possibile invocare direttamente il plugin tramite mvn org.owasp:dependency-check-maven:check.

Il plugin dependency-check può essere configurato come segue:

root@kitploit:~
<project>
    <build>
        <plugins>
            ...
            <plugin>
              <groupId>org.owasp</groupId>
              <artifactId>dependency-check-maven</artifactId>
              <executions>
                  <execution>
                      <goals>
                          <goal>check</goal>
                      </goals>
                  </execution>
              </executions>
            </plugin>
            ...
        </plugins>
        ...
    </build>
    ...
</project>

Plugin Gradle

Per le istruzioni sull'uso del plugin Gradle, consultare la github page di dependency-check-gradle.

Task Ant

Per le istruzioni sull'uso del task Ant, consultare la github page di dependency-check-ant.

Prerequisiti di sviluppo

Affinché l'installazione vada a buon fine, è necessario avere installati i seguenti componenti:

  • Java: java -version 25.0
  • Maven: mvn -version 3.6.3 e versioni successive

I casi di test richiedono:

  • dotnet core versione 8.0
  • Go: go version 1.12 e versioni successive
  • Ruby bundler-audit
  • Yarn
  • pnpm

Utilizzo per lo sviluppo

Le seguenti istruzioni descrivono come compilare e utilizzare lo snapshot corrente. Sebbene l'intenzione sia quella di mantenere uno snapshot stabile, si consiglia di utilizzare le versioni di release elencate sopra.

Il repository contiene alcuni file di grandi dimensioni a causa delle risorse di test. Il team ha cercato di ripulire il più possibile la cronologia. Tuttavia, si consiglia di eseguire una shallow clone per risparmiare tempo:

root@kitploit:~
git clone --depth 1 https://github.com/dependency-check/DependencyCheck.git

Su *nix

root@kitploit:~
$ mvn -s settings.xml install
$ ./cli/target/release/bin/dependency-check.sh -h
$ ./cli/target/release/bin/dependency-check.sh --out . --scan ./src/test/resources

Su Windows

root@kitploit:~
> mvn -s settings.xml install
> .\cli\target\release\bin\dependency-check.bat -h
> .\cli\target\release\bin\dependency-check.bat --out . --scan ./src/test/resources

Quindi caricare il file 'dependency-check-report.html' risultante nel proprio browser preferito.

Compilazione senza eseguire i test

Per velocizzare i tempi di iterazione, è anche possibile compilare senza eseguire i test ogni volta:
mvn -s settings.xml install -DskipTests=true

Si prega di ricordare di eseguire almeno una volta i test prima di aprire la PR. :)

IntelliJ Idea

Per poter eseguire il debug dei test in IntelliJ Idea, è possibile introdurre una configurazione Maven che esegua il test e abiliti il debug con breakpoint, ecc.
In pratica, si fa quanto descritto in https://www.jetbrains.com/help/idea/work-with-tests-in-maven.html#run_single_test e si imposta forkCount a 0, altrimenti il debug non funzionerà.

Passo dopo passo:

  • Run -> Edit Configurations
  • + (Add new configuration) -> Maven
  • Dare un nome alla configurazione, ad es. Run tests
  • Scegliere la working directory, ad es. core
  • In command line, inserire -DforkCount=0 -f pom.xml -s ../settings.xml test
  • Premere OK
  • Run -> Debug, quindi scegliere la configurazione di esecuzione appena creata

IntelliJ ora eseguirà i test per il sottoprogetto core con il debug abilitato. I breakpoint impostati in qualsiasi punto del codice dovrebbero funzionare.

Testare solo una funzione o una classe

Se si desidera velocizzare i tempi di iterazione, è anche possibile testare solo una funzione o una classe di test.
Questo funziona aggiungendo -Dtest=MyTestClass o -Dtest=MyTestClass#myTestFunction alla configurazione di esecuzione. La riga di comando completa nella configurazione di esecuzione sarebbe quindi:

-Dtest=MyTestClass#myTestFunction -DforkCount=0 -f pom.xml -s ../settings.xml test

Docker

Nell'esempio seguente si presuppone che il sorgente da controllare si trovi nella directory di lavoro corrente e che i report vengano scritti in $(pwd)/odc-reports. Vengono utilizzate directory persistenti per dati e cache, consentendo di eliminare il container dopo l'esecuzione.

Per Linux:

root@kitploit:~
#!/bin/sh

DC_VERSION="latest"
DC_DIRECTORY=$HOME/OWASP-Dependency-Check
DC_PROJECT="dependency-check scan: $(pwd)"
DATA_DIRECTORY="$DC_DIRECTORY/data"
CACHE_DIRECTORY="$DC_DIRECTORY/data/cache"

if [ ! -d "$DATA_DIRECTORY" ]; then
    echo "Initially creating persistent directory: $DATA_DIRECTORY"
    mkdir -p "$DATA_DIRECTORY"
fi
if [ ! -d "$CACHE_DIRECTORY" ]; then
    echo "Initially creating persistent directory: $CACHE_DIRECTORY"
    mkdir -p "$CACHE_DIRECTORY"
fi

# Make sure we are using the latest version
docker pull owasp/dependency-check:$DC_VERSION

docker run --rm \
    -e user=$USER \
    -u $(id -u ${USER}):$(id -g ${USER}) \
    --volume $(pwd):/src:z \
    --volume "$DATA_DIRECTORY":/usr/share/dependency-check/data:z \
    --volume $(pwd)/odc-reports:/report:z \
    owasp/dependency-check:$DC_VERSION \
    --scan /src \
    --format "ALL" \
    --project "$DC_PROJECT" \
    --out /report
    # Use suppression like this: (where /src == $pwd)
    # --suppression "/src/security/dependency-check-suppression.xml"

Per Windows:

root@kitploit:~
@echo off

set DC_VERSION="latest"
set DC_DIRECTORY=%USERPROFILE%\OWASP-Dependency-Check
SET DC_PROJECT="dependency-check scan: %CD%"
set DATA_DIRECTORY="%DC_DIRECTORY%\data"
set CACHE_DIRECTORY="%DC_DIRECTORY%\data\cache"

IF NOT EXIST %DATA_DIRECTORY% (
    echo Initially creating persistent directory: %DATA_DIRECTORY%
    mkdir %DATA_DIRECTORY%
)
IF NOT EXIST %CACHE_DIRECTORY% (
    echo Initially creating persistent directory: %CACHE_DIRECTORY%
    mkdir %CACHE_DIRECTORY%
)

rem Make sure we are using the latest version
docker pull owasp/dependency-check:%DC_VERSION%

docker run --rm ^
    --volume %CD%:/src ^
    --volume %DATA_DIRECTORY%:/usr/share/dependency-check/data ^
    --volume %CD%/odc-reports:/report ^
    owasp/dependency-check:%DC_VERSION% ^
    --scan /src ^
    --format "ALL" ^
    --project "%DC_PROJECT%" ^
    --out /report
    rem Use suppression like this: (where /src == %CD%)
    rem --suppression "/src/security/dependency-check-suppression.xml"

Compilazione dal sorgente

Per compilare dependency-check (usando Java 11) eseguire il comando:

root@kitploit:~
mvn -s settings.xml install

Eseguire dependency-check su dependency-check

Dependency-check fa riferimento a diverse dipendenze vulnerabili che non vengono mai utilizzate se non come risorse di test. Tutte queste dipendenze di test opzionali sono incluse nel profilo test-dependencies. Per eseguire dependency-check su se stesso, è sufficiente escludere il profilo test-dependencies:

root@kitploit:~
mvn org.owasp:dependency-check-maven:aggregate -P-test-dependencies -DskipProvidedScope=true

Compilazione della documentazione

La documentazione sulle github pages è generata da questo repository:

root@kitploit:~
mvn -s settings.xml install site site:stage

A lavoro ultimato, puntare il browser su ./target/staging/index.html.

Compilazione dell'immagine Docker

Per compilare l'immagine docker di dependency-check eseguire il comando:

root@kitploit:~
mvn -s settings.xml install
./docker-build.sh

Licenza

È concessa l'autorizzazione a modificare e ridistribuire secondo i termini della licenza Apache 2.0. Vedere il file LICENSE.txt per la licenza completa.

Dependency-Check utilizza diverse altre librerie open source. Consultare il file NOTICE.txt per maggiori informazioni.

Questo prodotto utilizza l'API NVD ma non è approvato né certificato dalla NVD.

Copyright (c) 2012-2025 Jeremy Long. Tutti i diritti riservati.

Scarica lo strumento