Análise de Composição de Software (SCA)
Analise dependências em busca de CVEs conhecidas com OWASP Dependency-Check, Snyk ou GitHub Dependabot.
Análise de Composição de Software (SCA) é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.
O que é SCA
Análise de composição de software (SCA) identifica as dependências de código aberto do seu projeto e verifica-as em bancos de dados de vulnerabilidades (NVD, CVE, GitHub Advisory). Ela também sinaliza problemas de conformidade de licenças.
Por que as dependências de terceiros são arriscadas
As aplicações modernas usam centenas de bibliotecas de código aberto. Uma única biblioteca vulnerável pode expor toda a aplicação. A vulnerabilidade Log4Shell de 2021 (CVE-2021-44228) afetou milhões de aplicações Java por causa de uma biblioteca de registro amplamente utilizada.
Ferramentas de SCA
Ferramentas populares de SCA:
# npm audit (Node.js):
npm audit
npm audit fix
# pip-audit (Python):
pip-audit
# OWASP Dependency-Check:
dependency-check.sh --project myapp --scan ./
# Snyk:
snyk test
snyk monitorDependabot e Renovate
Ferramentas automatizadas de atualização de dependências:
- Dependabot (GitHub) — abre automaticamente PRs para atualizar dependências vulneráveis
- Renovate — é mais configurável e oferece suporte a mais registros
Ative essas ferramentas em todos os repositórios — elas reduzem o trabalho manual de acompanhar as atualizações de dependências.
Entendendo a gravidade das CVEs
Nem toda vulnerabilidade em uma dependência pode ser explorada no seu contexto. Avalie:
- O caminho de código vulnerável pode ser alcançado no seu uso?
- Sua aplicação expõe essa funcionalidade?
- Um WAF ou outro controle reduz o risco?
A pontuação CVSS é um ponto de partida — o contexto determina o risco real.
Dependências transitivas
As dependências diretas têm suas próprias dependências (transitivas). Uma vulnerabilidade em uma biblioteca da qual você nunca ouviu falar ainda pode afetá-lo. As ferramentas de SCA mapeiam toda a árvore de dependências. Execute npm ls ou pip show -r requirements.txt para inspecionar a árvore.
npm ls --all | grep "vulnerable-pkg"
pip show requests | grep RequiresLista de materiais de software (SBOM)
Uma SBOM é um inventário formal de todos os componentes de um produto de software. A Ordem Executiva 14028 (US) exige SBOMs para softwares vendidos ao governo dos US. Formatos: SPDX, CycloneDX.
# Generate SBOM with syft:
syft . -o cyclonedx-json > sbom.json
# Scan SBOM for vulnerabilities:
grype sbom:./sbom.jsonConformidade de licenças
A SCA também verifica licenças. Dependências licenciadas sob GPL em softwares comerciais podem exigir que você disponibilize seu código como código aberto. LGPL, MIT e Apache 2.0 são geralmente permissivas. As equipes jurídicas precisam ter visibilidade das licenças das dependências — a SCA fornece isso automaticamente.
Ataques à cadeia de suprimentos
Invasores injetam código malicioso em pacotes populares de código aberto:
- Typosquatting:
reqeustsem vez derequests - Contas de mantenedores comprometidas (no estilo SolarWinds)
- Confusão de dependências: nomes de pacotes privados vazados para um registro público
A SCA com verificação de integridade (somatórios de verificação, arquivos de bloqueio) reduz esse risco.
Arquivos de bloqueio
Os arquivos de bloqueio (package-lock.json, Pipfile.lock) fixam versões exatas e verificam somatórios de verificação. Confirme os arquivos de bloqueio no controle de código-fonte. Nunca use npm install --legacy-peer-deps para ignorar as verificações dos arquivos de bloqueio em compilações de produção.
SCA no fluxo de CI/CD
Integre a SCA como uma etapa obrigatória do CI:
# GitHub Actions example:
- name: Run npm audit
run: npm audit --audit-level=high
# Fail build on HIGH/CRITICAL findings
# Use --audit-level=moderate for stricter postureVerificação rápida: SCA
Qual é o objetivo principal da Análise de composição de software (SCA)?
Recapitulação da lição
A SCA verifica as dependências do projeto em busca de CVEs conhecidas, problemas de licenciamento e riscos à cadeia de suprimentos. Ela é essencial por causa das dependências transitivas — uma vulnerabilidade em uma biblioteca de uma biblioteca ainda afeta você. Ative Dependabot/Renovate para obter atualizações automatizadas. Gere SBOMs (SPDX/CycloneDX) para ter visibilidade da cadeia de suprimentos. Os arquivos de bloqueio fixam versões e verificam somatórios de verificação. Integre a SCA como uma etapa do CI com limites de gravidade.
Perguntas Frequentes
A aula “Análise de Composição de Software (SCA)” é grátis?
Sim — o texto completo de “Análise de Composição de Software (SCA)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.
O que vou aprender em “Análise de Composição de Software (SCA)”?
Analise dependências em busca de CVEs conhecidas com OWASP Dependency-Check, Snyk ou GitHub Dependabot. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cyber Security Academy?
Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Análise de Composição de Software (SCA)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cyber Security Academy?
Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- SAST e DAST em Pipelines de CI/CD
- Análise de Composição de Software (SCA)
- Varredura de Segredos e Credenciais Codificadas
- Security Champions e Modelagem de Ameaças