SPDX vs. CycloneDX: formatos SBOM comparados

Todas as mensagens

Apesar da crescente adoção da Lista de Materiais de Software (SBOM) para servir como uma ferramenta de gerenciamento de vulnerabilidades e segurança cibernética, muitas organizações ainda lutam para compreender os dois formatos SBOM mais populares em uso atualmente, SPDX e CycloneDX. Neste artigo, compararemos esses dois formatos para ajudá-lo a escolher o mais adequado às suas necessidades.

O que são formatos SBOM

Ao desenvolver listas de materiais de software para desenvolvimento de software e gerenciamento de vulnerabilidades, é necessário aderir a um formato ou padrões específicos. Os formatos padrão do SBOM definem uma estrutura específica e unificada para a geração do SBOM e também determinam como ele será compartilhado com clientes e usuários ao longo da cadeia de fornecimento de software. Os formatos SBOM também definem a composição do software em um formato de fácil compreensão para outras ferramentas de segurança cibernética. Geralmente, existem três formatos SBOM. Eles incluem:

Troca de dados de pacote de software (SPDX): este é um projeto SBOM de código aberto e legível por máquina da fundação Linux. Ele foi projetado principalmente para garantir conformidade e transparência no gerenciamento de código aberto e proprietário por equipes de desenvolvimento e corporações.

CicloneDX (CDX): este também é um formato SBOM de código aberto e legível por máquina, desenvolvido pela comunidade Open Web Application Security Project (OWASP). É um formato SBOM leve focado na facilidade de adoção e automação da geração de SBOM em todo o pipeline de desenvolvimento de software. 

Etiquetas de identificação de software (SWID):  As tags SWID são consideradas mais um identificador de software do que um formato SBOM. Ele fornece uma maneira simples e transparente de rastrear o inventário de software, armazenando informações específicas sobre o lançamento do software.

Geralmente, apenas os formatos SPDX e CycloneDX SBOM são reconhecidos oficialmente. O principal uso do formato SWID é para identificação de software porque não oferece tantas informações quanto os outros dois formatos.

SPDX e CycloneDX contêm informações sobrepostas e muitos argumentam que podem ser usados ​​de forma intercambiável, uma vez que não existe um formato SBOM “padrão” único. No entanto, os dois formatos têm casos de uso tradicionalmente diferentes no ciclo de vida de desenvolvimento de software. Portanto, diferentes organizações precisam determinar qual funciona melhor para elas com base em suas necessidades específicas de segurança cibernética e conformidade.

Clique aqui para saiba mais sobre os formatos padrão SBOM.

Comparação de SPDX vs.

SPDX e CyclonDX são os dois formatos padrão para geração de SBOM e é provável que permaneçam assim por muito tempo. A maioria das plataformas de geração SBOM suporta ambos os formatos. No entanto, são ferramentas distintas com casos de uso diferentes. Algumas de suas principais diferenças são destacadas abaixo:

Visão geral do CycloneDX

CycloneDX é um projeto SBOM de código aberto de uma das principais organizações de segurança de software, o Open Web Application Security Project (OWASP). O projeto foi lançado em 2017 como uma plataforma de análise de componentes para ajudar os usuários a identificar riscos na cadeia de fornecimento de software. A identificação de vulnerabilidades continua sendo o principal caso de uso do CycloneDX. Este formato SBOM também ajuda na conformidade de licenças e na identificação de componentes de software desatualizados.

CycloneDX está focado na automação e na facilitação da adoção dos requisitos SBOM em todo o ciclo de construção do software. O formato é usado por organizações de software proprietário e de código aberto para casos de uso de segurança.

Como formato BOM, o CycloneDX possui outras aplicações além da preparação de listas de materiais de software. Também pode ser usado para compilar componentes, vulnerabilidades e serviços de hardware e sistemas em nuvem. SBOMs preparados no formato Cyclone DX listam vulnerabilidades em três campos principais. Estes são:

  • Enumeração de plataforma comum (CPE): Vulnerabilidades em um aplicativo, dispositivos de hardware ou sistema operacional.
  • SWID: a etiqueta de identificação do software é usada para analisar os componentes do software instalado
  • URL do pacote (PURL). CycloneDX também lista metadados de pacotes de software.

Além disso, o formato CycloneDX também suporta o rastreamento de proveniência de produtos de software e seus componentes. Isso facilita a identificação dos autores e fornecedores do software e de todos os seus componentes.

Visão geral do SPDX

SPDX significa Troca de dados de pacotes de software. É um projeto de código aberto da Linux Foundation criado com a intenção de servir como um formato comum para a coleta e compartilhamento de dados de software, especialmente informações de licenciamento.

O padrão SPDX foi originalmente desenvolvido em 2011 como uma ferramenta de gerenciamento de licenças de código aberto. Ao longo dos anos, o formato foi refinado para incluir novos campos que melhoram a capacidade do formato de capturar informações importantes relacionadas à segurança e torná-lo mais interoperável com outros formatos SBOM padrão.

Em setembro de 2021, a International Standard Organization reconheceu o formato SPDX como um padrão reconhecido internacionalmente para publicação SBOM. SPDX é o único formato SBOM que alcançou esse feito.

Agora na versão 2.2.2, a versão original da especificação SPDX foi desenvolvida para facilitar a conformidade com as políticas de licenciamento de software. As versões subsequentes adicionaram alguns recursos que o tornam útil para uma ampla variedade de casos de uso, incluindo a identificação de vulnerabilidades de software.

A versão mais recente do SPDX foi projetada de acordo com o padrão da NTIA para “Elementos Mínimos para uma Lista de Materiais de Software”. Ele lista os componentes, direitos autorais, licenças e referências de segurança de um software.

Espera-se que um documento SBOM no formato SPDX tenha campos e seções específicas conforme destacado abaixo:

  • Informações de criação de documentos: essas informações são usadas para determinar a compatibilidade com ferramentas de processamento padrão
  • Informações do pacote: as informações do pacote definem entidades importantes que compartilham o mesmo contexto dentro do pacote de software, como contêineres, componentes e produtos.
  • Informações do arquivo: informações de identificação dos arquivos de software, como nome, licença e informações de direitos autorais de cada arquivo.
  • Informações de snippet: isso nem sempre é aplicável. As informações do snippet só são necessárias quando os dados do software são de uma fonte diferente.

●  Relacionamentos e anotações: Um SBOM no formato SPDX também indica o relacionamento entre os diferentes documentos, arquivos e pacotes usados ​​no software com anotações claras que facilitam a revisão dos relacionamentos dos componentes do software por qualquer pessoa.

SPDXCicloneDX
Informações: O formato SPDX SBOM captura informações sobre o autor do software BOM, como ele foi criado e quando foi criado para cada versão do arquivo SPDX.Metadados da BOM: o formato CycloneDX captura informações importantes sobre o fabricante/fornecedor do software e os componentes de destino. Também inclui informações de licenciamento e metadados das ferramentas usadas para criar a lista de materiais.
Informações do pacote: inclui dados relacionados às propriedades comuns de todo o pacote de software.Componentes: descreve todos os componentes do software em toda a cadeia de suprimentos.
Informações do arquivo: dados relativos a todos os arquivos incluídos no pacote de software.Serviços: descreve APIs externas, URLs de endpoint e requisitos de autenticação. Confie nas travessias de limites e outros requisitos externos do software.
Informações do snippet: dados relacionados a uma parte específica de um arquivo.Dependências: este campo descreve a relação direta e transitiva entre os diferentes componentes de um software
Informações de licenciamento: um campo para capturar dados sobre licenças não capturadas na lista de licenças SPDX.Extensões: Fornece dados sobre pontos de extensão que serão úteis para casos de uso e funcionalidades futuras.
Correlação entre elementos SPDX: o campo mostra como os diferentes arquivos, documentos e pacotes detalhados na documentação SPDX estão vinculados entre si.
anotações: informações adicionais para explicar como o documento SPDX foi revisado, quem o revisou e quando foi revisado.

Qual é a diferença entre SPDX e CycloneDX?

Os dois formatos SBOM padrão destacados acima podem ser usados ​​para gerar, compartilhar e gerenciar dados SBOM. Eles permitem que os usuários gerem informações precisas sobre os componentes de um produto de software. O formato SPDX (Software Package Data Exchange) foi projetado principalmente como uma forma de gerenciar licenças de software de código aberto e compartilhar informações sobre os pacotes. O CycloneDX, por outro lado, permite aos usuários criar SBOMs (lista de materiais de software) que fornecem informações detalhadas sobre componentes de software.

Qual padrão é melhor usar?

Como o formato escolhido determina a estrutura do seu documento SBOM, seus componentes, como ele será gerado e como será compartilhado com os usuários, é importante que você escolha o formato SBOM correto para gerando SBOM com base nas necessidades exclusivas da sua organização.

Embora SPDX e CycloneDX tenham aplicativos muito semelhantes, eles são diferentes em termos de casos de uso originais. O formato SPDX foi criado em 2011 como uma ferramenta de gerenciamento de licenças. Hoje, ainda é útil para compartilhar informações detalhadas sobre os componentes de um sistema de software com humanos ao longo da cadeia de abastecimento. Isso torna esse formato mais útil para fins de desenvolvimento de software.

O CycloneDX (CDX), por outro lado, foi desenvolvido mais recentemente com o objetivo principal de gerar documentação SBOM, o que o torna uma ferramenta de gerenciamento de vulnerabilidades mais eficiente, pois detalha todos os componentes padrão de um produto de software. A natureza leve do CycloneDX também o torna uma ferramenta eficiente para gerar listas de materiais de software legíveis por máquina que você pode compartilhar e processar rapidamente

No final das contas, não existe formato “melhor” entre os dois. Qual escolher depende muito das necessidades específicas da sua organização e do caso de uso pretendido do documento SBOM que você pretende gerar. 

Este conteúdo é oferecido a você pela Scribe Security, um fornecedor líder de soluções de segurança de cadeia de suprimentos de software ponta a ponta – fornecendo segurança de última geração para artefatos de código e processos de desenvolvimento e entrega de código em todas as cadeias de suprimentos de software. Saiba mais.