O desenvolvimento de Software baseia-se fortemente na utilização de componentes pré-construídos de terceiros para simplificar os processos, alguns dos quais são de código aberto. Estes componentes são os blocos de construção das aplicações Web modernas, mas também podem introduzir vulnerabilidades, oferecendo aos cibercriminosos potenciais pontos de entrada no seu sistema.
Para obter visibilidade dos componentes e gerir as vulnerabilidades de dependência que compõem o seu software, é essencial manter uma lista denominada SBOM (lista de materiais do software) para reforçar a segurança, a gestão de riscos e a conformidade da sua aplicação.
O que é a SBOM?
A Software Bill of Materials (SBOM) é um inventário detalhado de todos os componentes fechados e de código aberto, bibliotecas e dependências utilizadas numa aplicação. Em termos mais simples, tal como um produto físico pode vir com uma lista de componentes e materiais, o software também tem os seus componentes.
Os programadores e vendedores constroem frequentemente software através da combinação de código aberto e código comercial. O SBOM detalha sistematicamente estes componentes para garantir a transparência e a rastreabilidade dos componentes de código fundamentais nos produtos de software, ajudando a facilitar a segurança da cadeia de fornecimento e a garantir a conformidade com os regulamentos.
Quais são os benefícios de uma SBOM?
Na sua essência, um SBOM oferece três benefícios principais:

Transparência
Oferece uma visão clara da composição do software, permitindo que as partes interessadas - quer sejam programadores, auditores ou utilizadores finais - compreendam os componentes que fazem parte da sua pilha de software.

Vulnerability Management
A segurança é uma das preocupações mais prementes no desenvolvimento de software. Um SBOM pode identificar rapidamente os componentes de um produto de software, facilitando a identificação, o tratamento e a correção de vulnerabilidades.
Quando um aviso de segurança é lançado, ele normalmente contém informações atualizadas sobre vulnerabilidades em componentes de software. Ao cruzar uma SBOM com os avisos de segurança mais recentes, as organizações podem determinar rapidamente se as suas aplicações estão em risco e tomar as medidas de mitigação necessárias para garantir que estão devidamente seguras.

Integração no SDLCSoftware Development Lifecycle)
À medida que o software progride através do pipeline de desenvolvimento, é continuamente atualizado, desde a concetualização e design até à implementação e manutenção. Um SBOM serve como um registo dinâmico que assegura que existe uma imagem clara dos componentes, dependências e relações do software em cada fase do SDLC.
Quem precisa de uma SBOM?
Em termos gerais, um consumidor de software pode ser qualquer entidade, comercial ou não comercial, que obtenha os seus componentes de terceiros e utilitários de software de terceiros junto de fornecedores. Estes fornecedores abrangem um vasto espetro:
- Editores de software comercial
- Programadores de software contratuais que fornecem componentes de software
- Fornecedores de FOSS ( Software Livre e de Código Aberto) que gerem o código em repositórios abertos ou gestor de pacotes
Nomeadamente, estes fornecedores têm várias funções. Podem ser fabricantes, programadores, responsáveis pela manutenção ou fornecedores. Idealmente, estas entidades devem também selecionar SBOMs para as suas capacidades de software. Uma distinção única a ter em conta é que a maioria dos fornecedores também são consumidores. No entanto, um fornecedor sem quaisquer componentes a montante é geralmente identificado como uma entidade de raiz.
SBOM no sector público
As agências federais desempenham um papel fundamental na adoção e aplicação das normas SBOM. A sua supervisão não se limita apenas a estabelecer padrões de referência, mas também a garantir a conformidade com esses padrões para o interesse público em geral. Emitida em maio de 2021, a Ordem Executiva 14028 dos EUA encarrega várias agências com amplas jurisdições, incluindo o NIST (Instituto Nacional de Normas e Tecnologia), de reforçar a cibersegurança através de uma variedade de iniciativas relacionadas com a segurança e a integridade da cadeia de fornecimento de software.
A secção 10 (j) da Ordem Executiva 14028 define um SBOM como um "registo formal que contém os detalhes e as relações da cadeia de fornecimento de vários componentes utilizados na construção de software". Os SBOMs têm o potencial de aumentar a transparência, a proveniência e a velocidade com que as vulnerabilidades podem ser identificadas e corrigidas pelos departamentos e agências federais.
Tipos e definições de SBOM
Dependendo do estágio de desenvolvimento e implantação do software, são gerados diferentes tipos de SBOMs, cada um servindo a um propósito único e oferecendo percepções distintas sobre os componentes do software. Aqui estão seis tipos comuns de documentos SBOM.
Conceção
Nesta fase de desenvolvimento da aplicação, alguns componentes podem nem sequer existir ainda. Este tipo de SBOM é normalmente derivado de uma especificação de projeto, de um RFP (pedido de proposta) ou de um conceito inicial.
Fonte
Formado diretamente a partir do ambiente de desenvolvimento, oferece informações sobre os ficheiros de origem e as dependências necessárias para construir um artefacto de produto. É normalmente gerado a partir de ferramentas SCA (análise da composição do software), necessitando ocasionalmente de esclarecimentos manuais.
Construir
Produzido como parte do processo de criação de software, consolida dados de ficheiros de origem, componentes criados e outras dependências. Isto é particularmente valioso porque é gerado durante a criação de um artefacto de software que pode ser libertado.
Analisado
Este SBOM é derivado da análise pós-construção de artefactos de software, tais como executáveis ou imagens de máquinas virtuais. Envolve diversas heurísticas e é por vezes designado por SBOM "de terceiros".
Implementado
Um inventário exaustivo do software presente num sistema. Gerado através da documentação do SBOM dos componentes de software instalados nos sistemas, oferece informações sobre a implementação real do software.
Quais são os elementos de um SBOM?
Os elementos mínimos de um SBOM incluem o nome do fornecedor do software, os componentes, as suas versões, os identificadores únicos, a relação das dependências, o autor dos dados SBOM e o carimbo de data/hora, de acordo com a NTIA (National Telecommunications and Information Administration). Além disso, os dados SBOM devem conter os seguintes elementos para serem eficazes e abrangentes:
- Campos de dados: Devem ter campos de dados claramente definidos que detalhem o nome, as versões e os atributos dos componentes do software. Isto garante que todos os intervenientes compreendem perfeitamente a composição do software.
- Suporte à automatização: Dada a natureza dinâmica do desenvolvimento de software, um SBOM deve ser capaz de ser automaticamente atualizado e integrado em pipelines de desenvolvimento e implementação de software. Isto garante precisão e eficiência em tempo real.
- Práticas e processos: Para além da simples listagem de componentes, um SBOM deve ser integrado nas melhores práticas e processos que regem a sua criação, manutenção e utilização.
Formatos SBOM
Os formatos SBOM mais populares incluem:
- SPDXSoftware Package Data Exchange) - desenvolvido pela Linux Foundation
- CycloneDX-Comumente usado para segurança de aplicações
- SWIDSoftware Identification Tagging)-Definido pela norma ISO/IEC 19770-2
Ao catalogar cada componente, um SBOM permite que as organizações identifiquem claramente as licenças associadas a cada peça de software, garantindo que permanecem em conformidade com os termos de licenciamento e evitam potenciais armadilhas legais.
Mantenha-se em conformidade e Secure no seu SDLC
Devido aos crescentes ataques à cadeia de fornecimento, o governo federal e o sector privado reconhecem a importância da identificação do software. Um SBOM é crucial para detalhar os componentes de software, especialmente os componentes de terceiros. Os dados do SBOM ajudam a prevenir vulnerabilidades e garantem a transparência na criação do SBOM. Cada software deve incluir um SBOM abrangente para reforçar as medidas de segurança.
Ao catalogar cada componente, um SBOM permite que as organizações identifiquem claramente as licenças associadas a cada peça de software, garantindo que permanecem em conformidade com os termos de licenciamento e evitam potenciais armadilhas legais.
Com o OPSWAT SBOM, os programadores podem identificar vulnerabilidades conhecidas, validar licenças e gerar inventário de componentes para OSS (software de código aberto), dependências de terceiros e contentores. Para saber mais sobre como proteger a sua cadeia de fornecimento de software com soluções SBOM robustas, visite a solução Software Supply Chain Security daOPSWAT.