Skip to content
Back to skills

Program Owasp Dependency Check

ASecurity

Guia Definitivo e Padrões de Engenharia para OWASP Dependency-Check (owasp.org/www-project-dependency-check), cobrindo Software Composition Analysis (SCA), CLI, plugins Maven e Gradle, GitHub Actions, integração com NVD API v2, banco de dados centralizado de CVEs, sintaxe completa de suppressions.xml, CPE hints e Quality Gates baseados em CVSS.

  • 10 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
developmentgobashsqlnodetestingcode-reviewgitapidatabasebackend

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add dandgabr/skills --skill program-owasp-dependency-check --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Program Owasp Dependency Check?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Program Owasp Dependency Check
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dandgabr-program-owasp-dependency-check/badge)](https://www.skillsdirectory.com/skills/dandgabr-program-owasp-dependency-check)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: program-owasp-dependency-check
description: Guia Definitivo e Padrões de Engenharia para OWASP Dependency-Check (owasp.org/www-project-dependency-check), cobrindo Software Composition Analysis (SCA), CLI, plugins Maven e Gradle, GitHub Actions, integração com NVD API v2, banco de dados centralizado de CVEs, sintaxe completa de suppressions.xml, CPE hints e Quality Gates baseados em CVSS.
metadata:
  type: defensive
  phase: testing
  mitre:
    - T1195.001
    - T1195.002
  tools:
    - owasp-dependency-check
    - maven
    - gradle
---

# Habilidade de IA: Guia e Engenharia com OWASP Dependency-Check (SCA Tool)

Esta skill fornece orientação técnica canônica, comandos operacionais e padrões de engenharia para o **OWASP Dependency-Check** ([owasp.org/www-project-dependency-check](https://owasp.org/www-project-dependency-check/)), a ferramenta open-source padrão para **Software Composition Analysis (SCA)**, projetada para identificar vulnerabilidades conhecidas (CVEs) em bibliotecas e componentes de terceiros em projetos de software.

---

## 🧭 Visão Geral e Funcionamento do Dependency-Check

O OWASP Dependency-Check coleta evidências sobre as dependências do projeto (Vendor, Product, Version) a partir de manifestos, nomes de arquivos, hashes e metadados de pacotes, mapeia essas informações para identificadores de **CPE (Common Platform Enumeration)** e consulta as bases da **NVD (National Vulnerability Database)** e **GitHub Security Advisory (GHSA)** para relatar CVEs associadas.

```
┌────────────────────────────────────────────────────────────────────────┐
│               FLUXO DE ANÁLISE DO OWASP DEPENDENCY-CHECK               │
└────────────────────────────────────────────────────────────────────────┘
  [ 1. Coleta de Evidências ]
         │  (Analisa JARs, package.json, pom.xml, go.mod, arquivos binários)
         ▼
  [ 2. Mapeamento de CPE ]
         │  (Gera identificadores: cpe:2.3:a:apache:log4j:2.14.1:*:*:*:*:*:*:*)
         ▼
  [ 3. Consulta NVD API v2 & Cache Local ]
         │  (Verifica banco de dados H2 local ou PostgreSQL centralizado)
         ▼
  [ 4. Aplicação de Supressões (suppressions.xml) ]
         │  (Descarta falsos positivos e vulnerabilidades com mitigação aceita)
         ▼
  [ 5. Avaliação de Quality Gate (failBuildOnCVSS) ]
            (Falha a compilação caso CVSS >= Limiar definido)
```

---

## 💻 Modos de Integração e Execução

### 1. Linha de Comando (CLI)

```bash
# Execução básica com exportação em múltiplos formatos (HTML, JSON, SARIF)
dependency-check.sh \
    --project "EcommerceApp" \
    --scan "./src" \
    --scan "./lib" \
    --out "./reports" \
    --format "ALL" \
    --nvdApiKey "SEU_NVD_API_KEY" \
    --failOnCVSS 7.0

# Execução utilizando arquivo de supressão de falsos positivos
dependency-check.sh \
    --project "EcommerceApp" \
    --scan "./target" \
    --suppression "./config/dependency-check-suppressions.xml" \
    --format "HTML" \
    --out "./reports"
```

---

### 2. Integração com Apache Maven (`pom.xml`)

Adicione o plugin `dependency-check-maven` no bloco `<build><plugins>`:

```xml
<plugin>
    <groupId>org.owasp</groupId>
    <artifactId>dependency-check-maven</artifactId>
    <version>10.0.3</version>
    <configuration>
        <!-- Chave de API NVD v2 obrigatória para evitar rate-limits -->
        <nvdApiKey>${env.NVD_API_KEY}</nvdApiKey>
        
        <!-- Arquivo de supressão de falsos positivos -->
        <suppressionFiles>
            <suppressionFile>${project.basedir}/config/dependency-check-suppressions.xml</suppressionFile>
        </suppressionFiles>
        
        <!-- Falhar a compilação do Maven se houver vulnerabilidade High/Critical -->
        <failBuildOnCVSS>7.0</failBuildOnCVSS>
        
        <!-- Formatos de saída gerados -->
        <formats>
            <format>HTML</format>
            <format>JSON</format>
            <format>SARIF</format>
        </formats>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
</plugin>
```

#### Comandos de Execução no Maven:
```bash
# Executar a verificação avulsa
mvn org.owasp:dependency-check-maven:check

# Executar apenas a atualização do banco de dados NVD em cache
mvn org.owasp:dependency-check-maven:update-only
```

---

### 3. Integração com Gradle (`build.gradle`)

```groovy
plugins {
    id 'org.owasp.dependencycheck' version '10.0.3'
}

dependencyCheck {
    nvd {
        apiKey = System.getenv('NVD_API_KEY')
    }
    suppressionFile = 'config/dependency-check/suppressions.xml'
    failBuildOnCVSS = 7.0f
    formats = ['HTML', 'JSON', 'SARIF']
    analyzers {
        assemblyEnabled = false
        nodeAudit {
            enabled = true
        }
    }
}
```

#### Comando de Execução no Gradle:
```bash
./gradlew dependencyCheckAnalyze
```

---

## 🔑 Configuração da NVD API v2 e Banco Centralizado

Devido às restrições estritas de taxa (*Rate Limiting*) introduzidas na NVD API v2 do NIST, a obtenção de uma **NVD API Key** gratuita é mandatória para evitar erros `403 Forbidden` ou downloads que ultrapassam 40 minutos em pipelines CI/CD.

### Configuração de Banco de Dados Centralizado (PostgreSQL / MySQL)
Em pipelines corporativos com múltiplos runners concorrentes, configure o Dependency-Check para utilizar um banco relacional centralizado em vez de arquivos H2 individuais:

```xml
<configuration>
    <databaseProperties>
        <driver>org.postgresql.Driver</driver>
        <url>jdbc:postgresql://db-sec.empresa.local:5432/dependencycheck</url>
        <user>dc_user</user>
        <password>${env.DB_PASSWORD}</password>
    </databaseProperties>
</configuration>
```

---

## 🛡️ Gestão de Falsos Positivos e Arquivo de Supressão (`suppressions.xml`)

O arquivo de supressão permite ignorar CVEs que não afetam a aplicação (por exemplo, quando o método vulnerável não é executado ou o CPE casou incorretamente com uma biblioteca homônima).

### Sintaxe Completa do Arquivo `dependency-check-suppressions.xml`:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.4.xsd">

    <!-- 1. Supressão de falso positivo por CPE incorreto -->
    <suppress>
        <notes><![CDATA[
            Falso positivo: O componente interno 'auth-module' foi incorretamente 
            identificado como o produto legado Apache Auth.
        ]]></notes>
        <packageUrl regex="true">^pkg:maven/com\.empresa/auth-module@.*$</packageUrl>
        <cpe>cpe:/a:apache:auth</cpe>
    </suppress>

    <!-- 2. Supressão de CVE específica com data de expiração (Until) -->
    <suppress until="2026-12-31Z">
        <notes><![CDATA[
            CVE-2022-1471 no SnakeYaml: Avaliada pelo time de AppSec. A aplicação não 
            utiliza deserialização genérica não confiável. Mitigação aceita até a migração v2.0.
        ]]></notes>
        <packageUrl regex="true">^pkg:maven/org\.yaml/snakeyaml@.*$</packageUrl>
        <vulnerabilityName>CVE-2022-1471</vulnerabilityName>
    </suppress>

    <!-- 3. Supressão por hash SHA-1 de arquivo binário específico -->
    <suppress>
        <notes><![CDATA[
            Supressão para binário de testes interno legado.
        ]]></notes>
        <sha1>66734244CE86857018B023A8C56AE0635C56B6A1</sha1>
        <cve>CVE-2020-99999</cve>
    </suppress>

</suppressions>
```

---

## 🚀 Integração em CI/CD (GitHub Actions Workflow)

```yaml
name: SCA Dependency-Check Scan

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  dependency_check:
    name: OWASP Dependency-Check (SCA)
    runs-on: ubuntu-latest
    permissions:
      security-events: write
      contents: read

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4

      - name: Run OWASP Dependency-Check
        uses: dependency-check/Dependency-Check_Action@10.0.3
        with:
          project: 'EcommerceBackend'
          path: '.'
          format: 'SARIF'
          args: >
            --nvdApiKey ${{ secrets.NVD_API_KEY }}
            --failOnCVSS 7
            --suppression config/dependency-check-suppressions.xml

      - name: Upload SARIF to GitHub Security Tab
        if: always()
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: 'reports/dependency-check-report.sarif'
```

---

## 🔗 Integração com Outras Skills do Repositório

- **[software-supply-chain-security](../../security/appsec/software-supply-chain-security/SKILL.md)**: Teoria de gestão de dependências, SBOM (CycloneDX/SPDX), VEX e priorização por EPSS/CISA KEV.
- **[sast-code-review](../../security/appsec/sast-code-review/SKILL.md)**: Complementa o SCA auditando falhas no código proprietário.
- **[devsecops-engineer](../../security/ops-architecture/devsecops-engineer/SKILL.md)**: Orquestração de pipelines CI/CD e Quality Gates corporativos.
- **[program-github-actions](../github-actions/SKILL.md)**: Configuração de workflows automatizados e upload de SARIF no GitHub.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.