0Pricing
Cyber Security Academy · Aula

Lista de materiais de software (SBOM)

Faça o inventário do conteúdo do seu software.

Lista de materiais de software (SBOM) é 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 é um SBOM

Uma Lista de Materiais de Software (SBOM) é um inventário formal e legível por máquina de cada componente contido em um software: bibliotecas, suas versões, licenças e informações do fornecedor.

Assim como o rótulo de um alimento lista seus ingredientes, um SBOM permite responder em segundos: este produto contém a versão vulnerável de X? Sem um SBOM, essa pergunta pode exigir dias de investigação manual.

Por que os SBOMs são importantes agora

Quando surge uma vulnerabilidade crítica, a primeira questão operacional é a exposição: quais dos nossos produtos distribuem o componente afetado?

Durante o incidente Log4Shell, as organizações que tinham SBOMs consultaram seus inventários e fizeram a triagem em poucas horas. As que não tinham passaram semanas pesquisando diretórios de compilação. Órgãos reguladores e grandes compradores exigem cada vez mais SBOMs como condição de aquisição.

  • Análise rápida do impacto de vulnerabilidades
  • Conformidade de licenças e acompanhamento de obrigações
  • Transparência da cadeia de fornecimento para clientes e auditores

Formatos padrão de SBOM

Dois padrões abertos predominam. As ferramentas geralmente conseguem converter de um para o outro.

  • SPDX — um padrão da Fundação Linux, forte em licenciamento e amplamente aceito pelos órgãos reguladores
  • CycloneDX — um padrão da OWASP, voltado para segurança, que oferece suporte a dados de vulnerabilidades e relações entre dependências

Evite inventar seu próprio formato; consumidores e ferramentas de varredura esperam esses padrões.

O que deve constar em uma entrada

Cada entrada de componente deve conter informações de identidade suficientes para ser comparada com fontes de vulnerabilidades. Os campos principais:

  • nome e versão — exatos, não um intervalo
  • PURL (URL de pacote) — um identificador universal, como pkg:npm/lodash@4.17.21
  • resumo criptográfico — para verificar a integridade
  • licença — identificador de licença SPDX
  • fornecedor — quem o produziu
# A PURL uniquely identifies a component across ecosystems
pkg:npm/lodash@4.17.21
pkg:pypi/requests@2.31.0
pkg:golang/github.com/gin-gonic/gin@v1.9.1

Geração de um SBOM

Gere SBOMs automaticamente a partir do código-fonte ou de um artefato compilado. Syft é um gerador comum para vários ecossistemas que produz ambos os padrões.

# from a project directory (CycloneDX JSON)
syft dir:. -o cyclonedx-json=sbom.cdx.json

# from a container image (SPDX JSON)
syft my-app:1.4.0 -o spdx-json=sbom.spdx.json

# CycloneDX has native generators per ecosystem too
cyclonedx-npm --output-file sbom.json

SBOMs de código-fonte, compilação e execução

Um SBOM gerado em diferentes etapas registra realidades diferentes.

  • SBOM do código-fonte — o que o manifesto declara; pode não incluir código agrupado ou incorporado
  • SBOM de compilação — o que a compilação realmente incorporou; é o mais preciso para o lançamento
  • SBOM de execução / implantado — o que está de fato presente na imagem em execução, incluindo pacotes do OS

Para garantir a cadeia de fornecimento, gere o SBOM durante a compilação a partir do artefato real e analise também o contêiner final quanto a pacotes no nível do OS.

Varredura de vulnerabilidades em um SBOM

Um SBOM se torna poderoso quando é fornecido a um mecanismo de correspondência que associa componentes a CVEs conhecidas. Isso desacopla a geração da análise: você pode analisar um SBOM antigo no dia em que uma nova CVE for divulgada.

# match an SBOM against vulnerability databases
grype sbom:sbom.cdx.json

# OSV scanner consumes SBOMs directly
osv-scanner --sbom=sbom.spdx.json

# fail CI above a severity threshold
grype sbom:sbom.cdx.json --fail-on high

VEX: indicando o que é explorável

Um SBOM pode mostrar um componente vulnerável que não é realmente explorável no seu produto (a função vulnerável nunca é chamada). Um documento VEX (Intercâmbio de Explorabilidade de Vulnerabilidades eXchange) registra essa avaliação.

O VEX reduz o ruído: em vez de cada cliente entrar em pânico por causa de uma CVE listada, você publica uma declaração de not_affected com justificativa ou de affected com remediação. Isso transforma um inventário bruto em uma triagem que permite agir.

Distribuição e assinatura de SBOMs

Um SBOM só é confiável se for autêntico e estiver associado ao artefato exato que descreve. Assine-o e anexe-o como um atestado, em vez de um arquivo avulso.

# attach a signed SBOM attestation to an image with cosign
cosign attest --predicate sbom.cdx.json \
  --type cyclonedx \
  my-registry/my-app:1.4.0

# verify the attached SBOM attestation
cosign verify-attestation --type cyclonedx my-registry/my-app:1.4.0

Automatização de SBOMs na integração contínua

SBOMs manuais ficam desatualizados imediatamente. Integre a geração ao fluxo de entrega para que cada lançamento produza e armazene um SBOM como artefato de compilação, de preferência assinado e analisado na mesma tarefa.

  • Gere a partir do artefato compilado, não apenas do repositório
  • Armazene SBOMs em um registro consultável, indexado pela versão
  • Faça novas varreduras periódicas nos SBOMs armazenados, usando fontes atualizadas de CVEs
  • Condicione os lançamentos ao resultado da varredura de vulnerabilidades

Armadilhas comuns dos SBOMs

Os SBOMs falham silenciosamente quando são tratados como um mero item de uma lista de verificação.

  • Desatualizado — gerado uma vez e nunca regenerado
  • Incompleto — não inclui pacotes do OS nem código vinculado estaticamente ou incorporado
  • Não verificado — não há resumo criptográfico que o associe ao artefato implantado
  • Não utilizado — produzido, mas nunca analisado nem consultado

O objetivo é um SBOM preciso, regenerado, assinado e analisado continuamente, não um arquivo JSON avulso.

Verificação rápida: finalidade do SBOM

Aplique o que aprendeu a um cenário de incidente.

Recapitulação: SBOM

Agora você pode fazer um inventário do conteúdo do seu software e agir com base nele.

  • Um SBOM é uma lista legível por máquina de cada componente, no formato SPDX ou CycloneDX
  • Identifique os componentes por PURL, versão, resumo criptográfico e licença
  • Gere durante a compilação e depois forneça o SBOM a um mecanismo de correspondência (grype, osv-scanner) para identificar CVEs
  • Use VEX para declarar a explorabilidade real e reduzir falsos alarmes
  • Assine e automatize na integração contínua; faça novas varreduras nos SBOMs armazenados usando fontes atualizadas

A seguir: comprovar a origem dos artefatos por meio da assinatura.

Perguntas Frequentes

A aula “Lista de materiais de software (SBOM)” é grátis?

Sim — o texto completo de “Lista de materiais de software (SBOM)” é 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 “Lista de materiais de software (SBOM)”?

Faça o inventário do conteúdo do seu software. 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 “Lista de materiais de software (SBOM)”?

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

  1. Ameaças à cadeia de suprimentos
  2. Lista de materiais de software (SBOM)
  3. Assinatura de dependências e artefatos
  4. Protegendo pipelines de CI/CD
← Voltar para Cyber Security Academy