SPDX vs. CycloneDX: formatos SBOM comparados

Todos los Artículos

A pesar de la creciente adopción de la Lista de materiales de software (SBOM) para que sirva como herramienta de gestión de vulnerabilidades y ciberseguridad, muchas organizaciones todavía tienen dificultades para comprender los dos formatos SBOM más populares que se utilizan en la actualidad, SPDX y CycloneDX. En este artículo, compararemos estos dos formatos para ayudarlo a elegir el más adecuado para sus necesidades.

¿Qué son los formatos SBOM?

Al desarrollar listas de materiales de software para el desarrollo de software y la gestión de vulnerabilidades, es necesario cumplir con un formato o estándares específicos. Los formatos SBOM estándar definen una estructura específica y unificada para la generación de SBOM y también determinan cómo se compartirá con los clientes y usuarios a lo largo de la cadena de suministro de software. Los formatos SBOM también definen la composición del software en un formato que sea fácil de entender para otras herramientas de ciberseguridad. Generalmente, existen tres formatos SBOM. Incluyen:

Intercambio de datos de paquetes de software (SPDX): este es un proyecto SBOM de código abierto y legible por máquina de la fundación Linux. Fue diseñado principalmente para garantizar el cumplimiento y la transparencia en la gestión del código propietario y de código abierto por parte de equipos de desarrollo y corporaciones.

CiclónDX (CDX): Este también es un formato SBOM de código abierto y legible por máquina desarrollado por la comunidad Open Web Application Security Project (OWASP). Es un formato SBOM liviano centrado en la facilidad de adopción y la automatización de la generación de SBOM en todo su proceso de desarrollo de software. 

Etiquetas de identificación de software (SWID):  Las etiquetas SWID se consideran más un identificador de software que un formato SBOM. Proporciona una forma sencilla y transparente de realizar un seguimiento del inventario de software almacenando información específica sobre la versión del software.

Generalmente, sólo se reconocen oficialmente los formatos SPDX y CycloneDX SBOM. El uso principal del formato SWID es para la identificación de software porque no ofrece tanta información como los otros dos formatos.

SPDX y CycloneDX contienen información superpuesta y muchos han argumentado que se pueden usar indistintamente ya que no existe un formato SBOM "estándar" único. Sin embargo, los dos formatos tienen casos de uso tradicionalmente diferentes dentro del ciclo de vida del desarrollo de software. Por lo tanto, diferentes organizaciones deben determinar cuál funciona mejor para ellas en función de sus necesidades únicas de ciberseguridad y cumplimiento.

Haga clic aquí para Obtenga más información sobre los formatos estándar SBOM.

Comparación de SPDX y CycloneDx

SPDX y CyclonDX son los dos formatos estándar para la generación de SBOM y es probable que sigan así durante mucho tiempo. La mayoría de las plataformas de generación SBOM admiten ambos formatos. Sin embargo, son herramientas distintas con diferentes casos de uso. Algunas de sus diferencias principales se destacan a continuación:

Descripción general de CycloneDX

CycloneDX es un proyecto SBOM de código abierto de una de las principales organizaciones de seguridad de software, Open Web Application Security Project (OWASP). El proyecto se lanzó en 2017 como una plataforma de análisis de componentes para ayudar a los usuarios a identificar riesgos en la cadena de suministro de software. La identificación de vulnerabilidades sigue siendo el principal caso de uso de CycloneDX. Este formato SBOM también ayuda con el cumplimiento de la licencia y con la identificación de componentes de software obsoletos.

CycloneDX se centra en la automatización y en facilitar la adopción de los requisitos de SBOM durante todo el ciclo de construcción del software. El formato lo utilizan organizaciones de software propietario y de código abierto para casos de uso de seguridad.

Como formato BOM, CycloneDX tiene otras aplicaciones más allá de la preparación de listas de materiales de software. También se puede utilizar para compilar componentes, vulnerabilidades y servicios de hardware y sistemas en la nube. Los SBOM preparados en el formato Cyclone DX enumeran vulnerabilidades en tres campos principales. Estos son:

  • Enumeración de plataforma común (CPE): vulnerabilidades dentro de una aplicación, dispositivos de hardware o sistema operativo.
  • SWID: la etiqueta de identificación del software se utiliza para analizar los componentes del software instalado.
  • URL del paquete (PURL). CycloneDX también enumera los metadatos del paquete de software.

Además de esto, el formato CycloneDX también admite el seguimiento de procedencia de productos de software y sus componentes. Esto facilita la identificación de los autores y proveedores de software y todos sus componentes.

Descripción general de SPDX

SPDX significa Intercambio de datos de paquetes de software. Es un proyecto de código abierto de la Fundación Linux creado con la intención de servir como un formato común para recopilar y compartir datos de software, especialmente información sobre licencias.

El estándar SPDX se desarrolló originalmente en 2011 como una herramienta de gestión de licencias de código abierto. A lo largo de los años, el formato se ha ido perfeccionando para incluir nuevos campos que mejoran la capacidad del formato para capturar información importante relacionada con la seguridad y hacerlo más interoperable con otros formatos SBOM estándar.

En septiembre de 2021, la Organización Internacional de Normalización reconoció el formato SPDX como un estándar reconocido internacionalmente para la publicación de SBOM. SPDX es el único formato SBOM que ha logrado esta hazaña.

Ahora en la versión 2.2.2, la versión original de la especificación SPDX se desarrolló para facilitar el cumplimiento de las políticas de licencia de software. Las versiones posteriores han agregado algunas capacidades que lo hacen útil para una amplia gama de casos de uso, incluida la identificación de vulnerabilidades de software.

La última versión del SPDX fue diseñada de acuerdo con el estándar de la NTIA para "Elementos mínimos para una lista de materiales de software". Enumera los componentes, derechos de autor, licencias y referencias de seguridad de un software.

Se espera que un documento SBOM en formato SPDX tenga campos y secciones específicos como se destaca a continuación:

  • Información de creación de documentos: esta información se utiliza para determinar la compatibilidad con herramientas de procesamiento estándar.
  • Información del paquete: la información del paquete define entidades importantes que comparten el mismo contexto dentro del paquete de software, como los contenedores, componentes y productos.
  • Información del archivo: información de identificación de los archivos de software, como el nombre, la licencia y la información de derechos de autor de cada archivo.
  • Información del fragmento: esto no siempre es aplicable. La información del fragmento sólo es necesaria cuando los datos del software provienen de una fuente diferente.

●  Relaciones y anotaciones: un SBOM en formato SPDX también indica la relación entre los diferentes documentos, archivos y paquetes utilizados dentro del software con anotaciones claras que facilitan que cualquiera revise las relaciones de los componentes del software.

SPDXCiclónDX
Información: el formato SPDX SBOM captura información sobre el autor de la lista de materiales del software, cómo se creó y cuándo se creó para cada versión del archivo SPDX.Metadatos de BOM: el formato CycloneDX captura información importante sobre el fabricante/proveedor del software y los componentes de destino. También incluye información de licencia y metadatos de las herramientas utilizadas para crear la lista de materiales.
Información del paquete: incluye datos relacionados con las propiedades comunes de todo el paquete de software.Componentes: describe todos los componentes del software a lo largo de toda la cadena de suministro.
Información del archivo: datos relacionados con todos los archivos incluidos en el paquete de software.Servicios: describe las API externas, las URL de los terminales y los requisitos de autenticación. Confíe en los cruces de límites y otros requisitos externos del software.
Información del fragmento: datos relacionados con una parte específica de un archivo.Dependencias: este campo describe la relación directa y transitiva entre los diferentes componentes de un software.
Información de licencia: un campo para capturar datos sobre licencias no capturadas en la lista de licencias SPDX.Extensiones: proporciona datos sobre puntos de extensión que serán útiles para futuros casos de uso y funcionalidad.
Correlación entre elementos SPDX: el campo muestra cómo se vinculan entre sí los diferentes archivos, documentos y paquetes detallados en la documentación SPDX.
Anotaciones: información adicional para explicar cómo se revisó el documento SPDX, quién lo revisó y cuándo se revisó.

¿Cuál es la diferencia entre SPDX y CycloneDX?

Los dos formatos SBOM estándar resaltados anteriormente se pueden utilizar para generar, compartir y administrar datos SBOM. Permiten a los usuarios generar información precisa sobre los componentes de un producto de software. El formato SPDX (Software Package Data Exchange) se diseñó principalmente como una forma de administrar licencias de software de código abierto y compartir información sobre los paquetes. CycloneDX, por otro lado, permite a los usuarios crear SBOM (Lista de materiales de software) que proporcionan información detallada sobre los componentes de software.

¿Qué estándar es mejor utilizar?

Dado que el formato que elija determina la estructura de su documento SBOM, sus componentes, cómo se generará y cómo se compartirá con los usuarios, es importante que elija el formato SBOM correcto para generando SBOM en función de las necesidades únicas de su organización.

Aunque SPDX y CycloneDX tienen aplicaciones muy similares, son diferentes en términos de sus casos de uso originales. El formato SPDX se creó en 2011 como herramienta de gestión de licencias. Hoy en día, sigue siendo útil para compartir información detallada sobre los componentes de un sistema de software con humanos a lo largo de la cadena de suministro. Esto hace que este formato sea más útil para fines de desarrollo de software.

CycloneDX (CDX), por otro lado, se desarrolló más recientemente con el objetivo principal de generar documentación SBOM, lo que lo convierte en una herramienta de gestión de vulnerabilidades más eficiente, ya que detalla todos los componentes estándar de un producto de software. La naturaleza liviana de CycloneDX también lo convierte en una herramienta eficiente para generar listas de materiales de software legibles por máquina que puede compartir y procesar rápidamente.

Al fin y al cabo, no existe un formato "mejor" entre estos dos. Cuál elegir depende en gran medida de las necesidades específicas de su organización y del caso de uso previsto del documento SBOM que pretende generar. 

Este contenido es presentado por Scribe Security, un proveedor líder de soluciones de seguridad de la cadena de suministro de software de extremo a extremo, que ofrece seguridad de última generación para artefactos de código y procesos de desarrollo y entrega de código en todas las cadenas de suministro de software. Más información.