Pular para o conteúdo

Dependency-Track - Análise Contínua de SBOM - Guia de Referência

Dependency-Track - Análise Contínua de SBOM - Guia de Referência

Dependency-Track (um projeto emblemático OWASP) é uma plataforma para gestão contínua de risco de cadeia de suprimentos de software. Sua ideia definidora: em vez de escanear suas dependências uma vez no tempo de compilação, você faz upload de um SBOM CycloneDX por projeto e a plataforma re-avalia continuamente esses componentes conforme novas vulnerabilidades são divulgadas. Quando um CVE é divulgado, você imediatamente sabe quais de suas aplicações contêm o componente afetado — sem reconstruir ou rescanear nada.

Implantação

MétodoComando
Docker Composecurl -LO https://dependencytrack.org/docker-compose.yml && docker compose up -d
Container (API)docker run -p 8081:8080 dependencytrack/apiserver
Frontendcontainer dependencytrack/frontend (UI padrão em 8080)
KubernetesGráfico Helm disponível
Requisitos~4GB+ RAM; PostgreSQL para produção

Conceitos Centrais

TermoSignificado
ProjetoUma aplicação/serviço que você rastreia
ComponenteUma dependência dentro de um projeto
SBOMBill of materials CycloneDX que você faz upload
VulnerabilidadeUm CVE/advisory afetando um componente
PolíticaRegras que portão risco (licença, severidade, idade)
PortfólioTodos os projetos, agregados

Fazendo Upload de um SBOM

Gere com Syft ou ferramentas cyclonedx-*, depois faça upload via API:

# Gerar um SBOM CycloneDX
syft dir:. -o cyclonedx-json > bom.json

# Fazer upload para Dependency-Track
curl -X POST "http://localhost:8081/api/v1/bom" \
  -H "X-Api-Key: $DT_API_KEY" \
  -F "project=$PROJECT_UUID" \
  -F "bom=@bom.json"
EndpointPropósito
POST /api/v1/bomFazer upload de um SBOM
GET /api/v1/projectListar projetos
PUT /api/v1/projectCriar um projeto
GET /api/v1/vulnerability/project/{uuid}Vulnerabilidades para um projeto
GET /api/v1/metrics/project/{uuid}/currentMétricas de risco atual

Fontes de Inteligência de Vulnerabilidade

FonteFornece
NVDDados de CVE
GitHub AdvisoriesAvisos específicos do ecossistema
OSVBanco de dados de Vulnerabilidades de Código Aberto
VulnDBComercial (opcional)
InternoSeus próprios avisos

A plataforma espelha esses feeds e re-analisa todos os componentes armazenados em um cronograma.

Mecanismo de Política

Condição de políticaExemplo
SeveridadeFalhar se alguma vulnerabilidade CRÍTICA
LicençaBloquear GPL em produtos proprietários
Idade do componenteSinalizar dependências não mantidas por N anos
CoordenadasBanir um pacote/versão específica
CWESinalizar classes de fraqueza específicas

Políticas produzem violações que aparecem junto com vulnerabilidades, então risco de licença e higiene são rastreados no mesmo lugar.

Integração de CI/CD

# Em um pipeline: build → gerar SBOM → upload → portão
syft dir:. -o cyclonedx-json > bom.json
curl -X POST "$DT_URL/api/v1/bom" -H "X-Api-Key: $DT_API_KEY" \
  -F "project=$PROJECT_UUID" -F "bom=@bom.json"

# Sondagem para o resultado da análise e falha em violações de política
IntegraçãoNota
Jenkins/GitHub ActionsPlugins/ações oficiais disponíveis
WebhooksNotifique Slack/Teams/Jira em novas descobertas
VEXRegistre decisões de exploração (não afetado, etc.)

Triagem & VEX

AçãoSignificado
Não AfetadoCaminho de código vulnerável não é alcançável
Falso PositivoDetecção está errada
ResolvidoCorrigido neste projeto
SuprimidoRisco aceito com justificativa

Registrar estes como VEX mantém o ruído baixo e documenta decisões para auditores.

Dependency-Track vs Scanners Pontuais

AspectoDependency-TrackGrype/TrivySocket
ModeloPlataforma SBOM contínuaScan pontualDetecção de malware comportamental
Re-avaliaçãoAutomática em novos CVEsApenas quando você re-executaEm mudanças de dependência
Visualização de portfólioSim (todos os projetos)Por scanPor PR
Melhor paraRisco de cadeia de suprimentos em toda a orgScanning de CIDetecção de pacote malicioso

Alimente-o com SBOMs de Syft; combine com Grype para scanning em tempo de construção e Socket para detecção de pacote malicioso.

Recursos