
OWASP dependency-check é um utilitário de análise de composição de software que detecta vulnerabilidades divulgadas publicamente em dependências de aplicações.
O Dependency-Check é uma ferramenta de Análise de Composição de Software (SCA) que tenta detectar vulnerabilidades divulgadas publicamente contidas nas dependências de um projeto. Ele faz isso determinando se existe um identificador de Enumeração Comum de Plataforma (CPE) para uma determinada dependência. Se encontrado, ele gerará um relatório com links para as entradas de CVE associadas.
A documentação e os links para os binários de release de produção podem ser encontrados nas github pages. Além disso, mais informações sobre a arquitetura e as formas de estender o dependency-check podem ser encontradas no wiki.
Este produto usa a API NVD, mas não é endossado nem certificado pela NVD.
Devido a mudanças de compatibilidade da API NVD, uma atualização é obrigatória. Consulte #7463 para obter mais informações.
Agora é necessário Java 11 para executar o dependency-check 11.0.0 ou superior
Atualização do banco de dados H2
O 11.0.0 contém mudanças de quebra no uso do banco de dados H2 local. Ocorrerá
um download completo dos dados da NVD. Observe que, se você estiver usando um
diretório de dados compartilhado, o arquivo do banco de dados h2 não é compatível
com versões mais antigas do dependency-check. Se você tiver problemas, talvez seja
necessário executar uma purga:
./gradlew dependencyCheckPurgemvn org.owasp:dependency-check-maven:11.0.0:purgedependency-check.sh --purgeO dependency-check mudou do uso do data-feed da NVD para a API NVD desde o 9.0.0+ (janeiro de 2024).
Os usuários do dependency-check são fortemente incentivados a obter uma Chave da API NVD; consulte https://nvd.nist.gov/developers/request-an-api-key
Sem uma Chave da API NVD, as atualizações do dependency-check serão extremamente lentas.
Consulte a documentação das integrações cli, maven, gradle ou ant para saber como definir a chave da API NVD.
A API NVD aplica limites de taxa (rate limits). Se você estiver usando uma única API KEY e ocorrerem múltiplas compilações, você poderá atingir o limite de taxa e receber erros 403. Em um ambiente de CI, é necessário usar uma estratégia de cache.
Em setembro de 2025, o Sonatype OSS Index começou a exigir o uso de tokens de API para autenticação. Em abril de 2026, teve início uma migração subsequente para o Sonatype Guide, dando início a uma transição para o uso de Tokens de API do Sonatype Guide, que estão planejados para substituir as chaves/tokens legados da API do OSS Index antes do final de 2026.
Sem credenciais, o Dependency Check desabilitará automaticamente o analisador do OSS Index. Consulte a documentação das integrações CLI, Maven, Gradle ou Ant para saber como definir as credenciais do analisador para usar um token do Sonatype Guide ou uma chave legada da API do OSS Index.
Se você deseja usar o Sonatype OSS Index (via Guide), deve configurar o Dependency-Check e considerar as implicações da migração para o Sonatype Guide; cujo modelo comercial/de uso mudou. Consulte a documentação do analisador para obter mais informações.
Com o 9.0.0+, os usuários podem encontrar problemas com exceções NoSuchMethodError devido à
resolução de dependências. Se você encontrar esse problema, precisará fixar (pin) algumas das
dependências transitivas do dependency-check em versões específicas. Por exemplo:
/buildSrc/build.gradle
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")
}
}
Versão Mínima do Java: Java 11
O OWASP dependency-check requer acesso a vários recursos hospedados externamente. Para obter mais informações, consulte Acesso à Internet Necessário.
Para analisar algumas pilhas de tecnologia, o dependency-check pode exigir que outras ferramentas de desenvolvimento estejam instaladas. Algumas das análises listadas abaixo podem ser experimentais e exigir que os analisadores experimentais estejam habilitados.
go deve estar instalado.Elixir requer o mix_audit.npm, pnpm e yarn requer que npm, pnpm ou yarn estejam instalados.
audit de cada um.bundle-audit, que deve estar instalado.Para instruções sobre o uso do plugin Jenkins, consulte a página do Plugin OWASP Dependency-Check.
Instruções mais detalhadas podem ser encontradas nas github pages do dependency-check. A CLI mais recente pode ser baixada do github na seção de releases.
Baixando a versão mais recente:
$ 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
Em *nix
$ ./bin/dependency-check.sh -h
$ ./bin/dependency-check.sh --out . --scan [path to jar files to be scanned]
No Windows
> .\bin\dependency-check.bat -h
> .\bin\dependency-check.bat --out . --scan [path to jar files to be scanned]
No Mac com Homebrew
Nota - usuários de homebrew que estiverem atualizando da 5.x para a 6.0.0 precisarão executar dependency-check.sh --purge.
$ brew update && brew install dependency-check
$ dependency-check -h
$ dependency-check --out . --scan [path to jar files to be scanned]
Instruções mais detalhadas podem ser encontradas nas github pages do dependency-check-maven.
Por padrão, o plugin está vinculado à fase verify (ou seja, mvn verify). Alternativamente,
pode-se invocar diretamente o plugin via mvn org.owasp:dependency-check-maven:check.
O plugin dependency-check pode ser configurado usando o seguinte:
<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>
Para instruções sobre o uso do Plugin Gradle, consulte a github page do dependency-check-gradle.
Para instruções sobre o uso da Tarefa Ant, consulte a github page do dependency-check-ant.
Para que a instalação seja concluída com sucesso, você deve ter os seguintes componentes instalados:
java -version 25.0mvn -version 3.6.3 e superiorOs casos de teste requerem:
go version 1.12 e superiorAs instruções a seguir descrevem como compilar e usar o snapshot atual. Embora haja toda a intenção de manter um snapshot estável, é recomendado que as versões de release listadas acima sejam usadas.
O repositório possui alguns arquivos grandes devido aos recursos de teste. A equipe tentou limpar o histórico o máximo possível. No entanto, é recomendado que você faça um clone raso (shallow clone) para economizar tempo:
git clone --depth 1 https://github.com/dependency-check/DependencyCheck.git
Em *nix
$ 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
No Windows
> 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
Em seguida, carregue o 'dependency-check-report.html' resultante no seu navegador favorito.
Para acelerar seus ciclos de desenvolvimento, você também pode compilar sem executar os testes a cada vez:
mvn -s settings.xml install -DskipTests=true
Lembre-se de executar os testes pelo menos uma vez antes de abrir o PR. :)
Para depurar seus testes no IntelliJ Idea, você pode introduzir uma configuração maven que executa seu teste e ativa a depuração com breakpoints etc.
Basicamente, você faz o que está descrito em https://www.jetbrains.com/help/idea/work-with-tests-in-maven.html#run_single_test e define o forkCount como 0, caso contrário a depuração não funcionará.
Passo a passo:
Run -> Edit Configurations+ (Add new configuration) -> MavenRun testscorecommand line, insira -DforkCount=0 -f pom.xml -s ../settings.xml testOKRun -> Debug e escolha a configuração de execução recém-criadaO IntelliJ agora executará os testes do subprojeto core com a depuração habilitada. Breakpoints definidos em qualquer lugar do código devem funcionar.
Se você quiser acelerar seus ciclos de desenvolvimento, também pode testar apenas uma função ou uma classe de teste.
Isso funciona adicionando -Dtest=MyTestClass ou -Dtest=MyTestClass#myTestFunction à configuração de execução. A linha de comando completa na configuração de execução seria então:
-Dtest=MyTestClass#myTestFunction -DforkCount=0 -f pom.xml -s ../settings.xml test
No exemplo a seguir, presume-se que o código-fonte a ser verificado está no diretório de trabalho atual e os relatórios serão gravados em $(pwd)/odc-reports. Diretórios persistentes de dados e cache são usados, permitindo que você destrua o contêiner após a execução.
Para Linux:
#!/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"
Para Windows:
@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"
Para compilar o dependency-check (usando Java 11), execute o comando:
mvn -s settings.xml install
O dependency-check referencia várias dependências vulneráveis que nunca são usadas,
exceto como recursos de teste. Todas essas dependências de teste opcionais estão incluídas
no perfil test-dependencies. Para executar o dependency-check contra ele mesmo, basta
excluir o perfil test-dependencies:
mvn org.owasp:dependency-check-maven:aggregate -P-test-dependencies -DskipProvidedScope=true
A documentação nas github pages é gerada a partir deste repositório:
mvn -s settings.xml site site:stage
Quando terminar, aponte seu navegador para ./target/staging/index.html.
Para construir a imagem docker do dependency-check, execute o comando:
mvn -s settings.xml install
./docker-build.sh
A permissão para modificar e redistribuir é concedida sob os termos da licença Apache 2.0. Consulte o arquivo LICENSE.txt para obter a licença completa.
O Dependency-Check faz uso de várias outras bibliotecas de código aberto. Consulte o arquivo NOTICE.txt para obter mais informações.
Este produto usa a API NVD, mas não é endossado nem certificado pela NVD.
Copyright (c) 2012-2025 Jeremy Long. Todos os direitos reservados.
