Pular para o conteúdo
Segurança

SBOM e dependências: saiba o que existe no software que sua empresa usa

Organize inventário de componentes, vincule versões ao deploy e priorize vulnerabilidades com contexto e responsáveis.

SBOM e dependências: saiba o que existe no software que sua empresa usa

Quando surge uma vulnerabilidade em uma biblioteca, a primeira pergunta deveria ser simples: onde usamos esse componente? Em muitos projetos, a resposta exige abrir repositórios, conferir versões e descobrir qual build está realmente em produção. O atraso começa antes da correção.

Uma SBOM é um inventário estruturado dos componentes de software e de suas relações. Ela ajuda a localizar exposição e organizar manutenção, mas não equivale a um atestado de segurança.

Inventário não é apenas a lista do package.json

Dependências diretas são os pacotes escolhidos pela equipe. Dependências transitivas chegam por meio deles. Além disso, a aplicação pode usar imagem de sistema, bibliotecas de outra linguagem, componentes de build e serviços externos. O escopo do inventário deve ser definido para que ninguém confunda uma lista parcial com o produto inteiro.

O CycloneDX descreve SBOM como inventário de componentes, serviços e relações de dependência. A especificação SLSA, por sua vez, trata de garantias progressivas na cadeia de fornecimento, incluindo procedência de artefatos. São conceitos complementares: saber o que existe e compreender de onde veio o que foi publicado.

Relacione o inventário à versão em produção

Uma lista gerada no computador de um desenvolvedor pode não representar o artefato publicado. Vincule a SBOM ao identificador do build, ao commit e à imagem ou pacote implantado. Essa relação permite responder se uma versão afetada está em uso e em qual ambiente.

Em um exemplo hipotético, três sistemas usam o mesmo componente, mas apenas um build contém a versão vulnerável. Sem vínculo entre inventário e implantação, a equipe pode atualizar o projeto errado ou declarar resolvido um problema que continua em produção.

PerguntaRegistro necessárioDecisão apoiada
Qual componente usamos?Nome, ecossistema e versãoLocalizar o pacote correto
Onde ele está publicado?Artefato e ambienteDeterminar exposição operacional
Como chegou ao projeto?Relação de dependênciaEscolher atualização direta ou indireta
Quem responde pela correção?Proprietário do sistemaEvitar alerta sem responsável
Qual versão substituiu a anterior?Histórico de deployComprovar a atualização

Priorize vulnerabilidades pelo contexto

Um alerta de scanner exige análise. Verifique versão, componente afetado, possibilidade de exploração e uso no sistema. Um pacote presente apenas no build pode ter um risco diferente de uma biblioteca exposta a entrada pública, mas não deve ser ignorado automaticamente.

Também examine o caminho de atualização. Corrigir uma dependência transitiva pode exigir atualizar o pacote que a incorpora. Forçar uma versão incompatível sem teste pode quebrar funcionalidades. O objetivo é reduzir risco sem transformar a correção em incidente operacional.

Defina prazos internos e responsáveis conforme criticidade. Uma vulnerabilidade explorável em componente exposto merece tratamento diferente de um achado sem caminho conhecido no ambiente. Registre o raciocínio para que a classificação possa ser revisada quando surgirem novas informações.

Atualização segura inclui teste e retorno

Use versões controladas e um processo reproduzível de instalação. Revise mudanças relevantes do pacote e execute verificações proporcionais ao impacto. Uma atualização de biblioteca de autenticação exige atenção a login, sessão, autorização e recuperação, não apenas ao build.

Evite acumular todas as dependências por longos períodos e depois atualizá-las de uma vez. Pequenas atualizações frequentes podem facilitar diagnóstico, desde que a equipe tenha capacidade de revisar e validar. Automatizar a abertura de propostas de atualização é diferente de aprovar automaticamente qualquer alteração.

A procedência do build também importa

Uma lista correta de componentes não protege um pipeline comprometido. Controle quem pode alterar o processo de build, quais credenciais ele recebe e como o artefato chega à produção. Sempre que possível, preserve evidências que relacionem origem, processo e resultado.

O nível de controle deve acompanhar o risco e a estrutura da empresa. Uma PME não precisa reproduzir toda a operação de uma grande plataforma para começar. Pode iniciar com inventário por versão, responsáveis definidos, atualização assistida e proteção dos acessos de publicação.

Checklist para sair do improviso

  • Gerar inventário a partir do artefato ou processo de build definido.
  • Registrar versão publicada e ambiente correspondente.
  • Incluir dependências transitivas no escopo aplicável.
  • Atribuir responsável por cada sistema.
  • Tratar alertas com contexto e prazo de revisão.
  • Validar atualização antes do deploy.
  • Preservar histórico e possibilidade de recuperação.

Perguntas frequentes

Ter SBOM impede ataques?

Não. Ela melhora visibilidade e resposta. Segurança também depende de autorização, configuração, proteção do pipeline e outras medidas adequadas ao sistema.

Um scanner substitui a análise técnica?

Não. Ele identifica sinais e versões conhecidas. A equipe precisa avaliar relevância, exposição, impacto e forma de correção.

Isso é necessário em um sistema pequeno?

Um inventário proporcional pode evitar horas de incerteza e reduzir dependência de conhecimento individual. A implementação deve ser compatível com o porte e o risco.

Referências e próximo passo

Consulte SBOM no CycloneDX e a especificação SLSA. O plano de manutenção apresentado é uma orientação editorial, sem alegação de certificação.

Para identificar dependências e riscos em uma aplicação existente, use o guia de auditoria técnica e conheça a manutenção de sistemas da A2CR.

Compartilhar