O Que É um SBOM?
Um SBOM - software bill of materials - é um inventário completo e legível por máquina de cada componente que entrou no seu software.
Quando uma nova vulnerabilidade atinge uma biblioteca popular, a primeira pergunta é "estamos afetados?". Um SBOM responde instantaneamente: ele lista cada dependência e componente de um build, então você pesquisa o seu inventário em vez de adivinhar.
O que um SBOM lista
Cada componente com seu nome, versão, fornecedor e frequentemente uma licença e um identificador único. Gerado a partir da árvore de dependências resolvida, ele captura tanto componentes diretos quanto transitivos.
Formatos padrão
Os dois formatos comuns são SPDX e CycloneDX, ambos legíveis por máquina. Padronizar em um deles permite que as ferramentas consumam seus SBOMs para correspondência de vulnerabilidades, conformidade de licenças e auditorias.
Um pequeno exemplo
Um scanner como o Syft gera um SBOM CycloneDX a partir da sua imagem construída; depois, quando um novo CVE surge, você consulta os SBOMs armazenados para descobrir exatamente quais releases contêm o componente afetado - em segundos, não dias.
Por que gerar na CI
A CI é onde o build acontece e o conjunto exato de dependências é conhecido, então é o lugar natural para emitir um SBOM e anexá-lo como um artifact. Armazenado junto ao release, ele se torna um registro durável do que foi entregue.
Além das vulnerabilidades
SBOMs também viabilizam a conformidade de licenças (sinalizando uma dependência copyleft em um produto proprietário) e são cada vez mais exigidos por contratos e regulamentações, tornando-os um registro que vale a pena manter para cada release.
Principais conclusões
- Um SBOM é um inventário legível por máquina de cada componente do build.
- SPDX e CycloneDX são os formatos padrão.
- Gere-o na CI e anexe-o ao release para uma análise de impacto rápida.