¿Qué es el estándar SPDX y cómo ayuda a la industria del software? – CloudSavvy TI

Ilustración que muestra el logotipo de SPDX

los Intercambio de datos del paquete de software (SPDX) define un estándar abierto para comunicar información sobre componentes de software. SPDX se utiliza para crear listas de listas de materiales de software (SBOM), encapsular detalles de licencias y derechos de autor, y proporcionar metadatos de paquetes, como identificadores de versión y vulnerabilidades conocidas.

SPDX se diseñó originalmente hace más de una década como una forma de ayudar a los desarrolladores a cumplir con las licencias de código abierto. Desde entonces, se ha ampliado con nuevas capacidades para describir árboles de dependencia y emitir SBOM. SPDX fue catapultado a la atención mundial en septiembre de 2021 cuando ISO lo reconoció como el estándar internacional para la documentación de la cadena de suministro de software.

¿Quién crea SPDX?

SPDX es un proyecto independiente administrado por la comunidad Fundación Linux. El estándar actual ha sido respaldado y creado por partes interesadas de toda la industria del software. La lista incluye grandes nombres como Google y Microsoft, así como desarrolladores de herramientas adyacentes como Anchore y Snyk.

SPDX es la culminación de la experiencia de estos proveedores en la gestión, documentación y mantenimiento de cadenas de suministro de software a escala. El proyecto está abierto a participación externa sin embargo, cualquier individuo o empresa que trabaje con artefactos SPDX puede unirse a la reunión general mensual o suscribirse a la lista de correo.

¿Para qué sirve SPDX?

SPDX es una forma estándar de la industria para describir los paquetes de software y sus dependencias. Está destinado a funcionar en todos los proveedores, lenguajes de programación y marcos. El estándar reduce el esfuerzo involucrado en la producción de un SBOM para un proyecto al abstraer las diferencias entre los formatos de paquetes y aumentar la interoperabilidad en todo el ecosistema.

Los SBOM siguen siendo un concepto nuevo para muchos desarrolladores. Un lugar natural para comenzar es en los archivos de bloqueo del administrador de paquetes que ya tiene. Sin embargo, simplemente copiando y pegando su package.json en un archivo de documentación no es una solución resistente. ¿Qué pasa cuando también tienes un composer.json para su backend y un requirements.txt para ese componente independiente de Python? Ahora tiene tres fuentes de paquetes independientes para auditar, verificar el cumplimiento de la licencia y obtener listas de vulnerabilidades.

SPDX proporciona una forma unificada de estructurar, almacenar y consultar esta información. los especificación define un formato inequívoco para comunicar los metadatos de cualquier paquete de software. La clave aquí está en ese vocabulario de «paquete de software»: no estamos hablando de paquetes NPM o gemas de Ruby, sino que tenemos una visión de nivel superior del panorama de desarrollo.

un SPDX definición de paquete incluye datos como el nombre del componente, la versión, el autor y la licencia. Los paquetes pueden hacer referencia a otros paquetes para definir sus árboles de dependencia. El formato también admite datos a nivel de archivo para describir el contenido de un paquete.

Creación de SBOM compatibles con SPDX

Las herramientas en torno a SPDX aún están surgiendo. Un proyecto comunitario destacado es el Kit de herramientas de revisión de software de código abierto que puede generar metadatos SPDX desde los formatos de administrador de paquetes más comunes. los Generador SBOM abierto es una alternativa que se centra más estrechamente en la generación de SBOM compatible con SPDX.

También encontrará compatibilidad con SPDX en muchos generadores de listas de dependencia y escáneres de vulnerabilidades populares. Una vez que tenga un archivo con formato SPDX, puede introducirlo en otras herramientas y bibliotecas para realizar más análisis.

El proyecto SPDX se esta desarrollando Bibliotecas de cliente SPDX para Java, Python, Go y JavaScript. Esto facilitará el consumo de datos SPDX dentro de sus propias aplicaciones. También hay un sitio web que ofrece funciones de análisis, validación y comparación de SPDX.

¿Por qué todo esto importa?

Los ataques prominentes a la cadena de suministro han expuesto la fragilidad del desarrollo de software moderno. Es demasiado fácil terminar con árboles de dependencia en expansión que hacen referencia a decenas o cientos de miles de paquetes distintos. Una vulnerabilidad en cualquiera de estos podría amenazar su aplicación, incluso si el código que ha escrito usted mismo es infalible.

Los desafíos de las cadenas de suministro de software fueron mencionados directamente por la orden ejecutiva de EE.UU. sobre ciberseguridad en mayo de 2021. Ahora es imperativo que los mantenedores de código abierto, los usuarios intermedios y las organizaciones impulsadas por el software trabajen para brindar más visibilidad de los componentes que componen el software del mundo. Un formato común para producir, compartir y analizar SBOM es una parte importante de la solución.

Tener SPDX acreditado como estándar ISO le da a la industria un punto de referencia colectivo. Es una especificación que razonablemente podría exigirse como entrega requerida para futuros proyectos de software. Las agencias gubernamentales, las industrias reguladas y los clientes conscientes de la seguridad pueden exigir artefactos SPDX para que puedan ser coherentes en la forma en que auditan y protegen sus cadenas de suministro.

La adopción de SPDX entre industrias permitiría a las organizaciones tener más confianza en la seguridad del nuevo software que adquieren. Identificar si los sistemas se ven afectados por vulnerabilidades críticas de día cero sería un caso de consultar el SBOM, en lugar de inspeccionar manualmente los diversos formatos de administrador de paquetes utilizados en un proyecto.

Si bien las primeras versiones del estándar han existido durante una década, solo recientemente comenzó a ganar impulso el movimiento hacia SBOM automatizados, cumplimiento e indexación de dependencia. Convertirse en un estándar ISO podría ser el punto de inflexión en el que los desarrolladores adopten SPDX a escala.

Conclusión

SPDX es ahora los manera de definir las cadenas de suministro de software. Es un formato diseñado desde cero para expresar las relaciones entre los paquetes de software. Se puede utilizar para producir una lista de materiales, validar el cumplimiento de la licencia y determinar la autoría y la propiedad.

Con el escrutinio de las cadenas de suministro de software cada vez más intenso, el ecosistema SPDX es algo que los desarrolladores, los equipos de operaciones e incluso los equipos legales pueden esperar ver mucho más en los próximos años. Proporciona una forma de navegar por las relaciones entre los componentes de software y las restricciones que se imponen en torno a su uso.

Tener una forma estandarizada de proporcionar esta información le da a la industria algo específico a lo que aspirar al crear SBOM y auditar las cadenas de suministro. SPDX aborda la ambigüedad que ha prevalecido hasta la fecha, ofreciendo un formato de catalogación probado y sólido para reemplazar los índices y hojas de cálculo de paquetes específicos de la organización.

Deja un comentario

En esta web usamos cookies para personalizar tu experiencia de usuario.    Política de cookies
Privacidad