Pular para o conteúdo principal

⚠️ Análise de Vulnerabilidades em Dependências (SCA)

🌟 Objetivo

Assegurar que todas as dependências externas (diretas e transitivas) são analisadas automaticamente e de forma recorrente quanto a vulnerabilidades conhecidas, com rastreabilidade entre:

  • Componente identificado no SBOM
  • Vulnerabilidade associada (CVE)
  • Artefacto e versão afetados
  • Tarefa de correção, exceção ou mitigacão

O processo de SCA é essencial para reduzir o risco associado à reutilização de bibliotecas e pacotes de terceiros.


🚀 Como funciona o processo de SCA

  1. O SBOM gerado é usado como input para o scanner.
  2. Cada componente é comparado com bases de dados de vulnerabilidades (NVD, GitHub Advisories, OSV, etc.).
  3. Para cada CVE encontrado, são identificados:
    • Severidade (CVSS base score ou equivalente)
    • Vetor de exploração (local, remoto, etc.)
    • Estado do patch / correção
  4. É gerado um relatório processável (ex: JSON, HTML, SARIF) e, se aplicável, bloqueado o pipeline.

🤖 Ferramentas open source recomendadas

FerramentaLinguagens / SuporteObservações
SyftMulti-stack (Node, Java, etc.)Gera SBOM + integra com Grype
GrypeMulti-stackScanner de vulnerabilidades com OSV/NVD
TrivyApps, containers, IaCSCA + SAST + secret scanning
OWASP DCJava/Maven/GradleOWASP Dependency-Check, bem suportado
OSV-ScannerNode, Go, Rust, PythonUsa base OSV.dev, integra com GitHub

💡 Syft + Grype é uma combinação particularmente eficaz para pipelines modernos.


💳 Ferramentas comerciais com cobertura alargada

FerramentaDestaques relevantes para o SbD-ToE
SnykSCA, IaC scanning, CI/CD integration, policy enforcement
GitHub Advanced SecurityCodeQL + SCA + Secret scanning integrados no repositório
Jfrog XrayRepositórios, SCA, container scanning, SBOM centralizado
WhiteSource (Mend)Licenças, riscos, policies, alertas centralizados
Checkmarx OneSAST, SCA, IaC, API Security com integração por linguagem e pipeline

Estas ferramentas podem ser justificadas em ambientes regulados ou com grandes volumes de projetos.


🌐 Integração no ciclo de vida

MomentoAção esperadaResultado
📁 BuildScanner SCA executado com input do SBOMRelatório + status do build
📑 Pull RequestAlertas visíveis e findings triadosAprovação condicionada ou bloqueio
✅ ReleaseVerificação de findings pendentesGo/no-go
🚨 Vuln. divulgadaNotificação, triagem e correção associadaIssue/ticket com rastreabilidade

⚠️ Priorizando findings

Os findings devem ser triados com base em:

  • Severidade: CVSS > 7.0 = Crítico
  • Exposição: A aplicação é pública? A função afetada está acessível?
  • Impacto: Dados sensíveis ou ações críticas estão envolvidos?
  • Mitigação alternativa: Existe controle compensatório documentado?
  • Fix disponível?: Versão corrigida existe?

Findings sem exploração plausível não devem ser ignorados, mas classificados como "aceite" com base em risco justificado.


🔗 Ligação com backlog e rastreabilidade

ElementoForma recomendada
Finding (ex: CVE-2023-1234)Criar issue com referência ao SBOM/component
Estado"Pendente", "Corrigido", "Aceite c/ justificativo"
Tagssca, vuln, sbom, seguranca, cve
Evidência de correçãoPR, commit, release, artefacto atualizado

💡 Sugere-se um dashboard por projeto com estado de findings ativos + link para tarefa associada.


📎 Referências cruzadas

DocumentoLigação com SCA
01-inventario-sbom.mdFonte de componentes a analisar
04-integracao-ci-cd.mdExecução automatizada no pipeline
08-rastreabilidade-vulnerabilidades.mdMapping entre finding, ação e release

🔎 A análise SCA deve ser documentada, automatizada e priorizada, integrando-se com ferramentas de backlog, repositórios de código e artefactos de release.