Skip to main content

Los SBOM generados por Snyk ahora incluyen detalles de licencia de las bibliotecas de código abierto de tus proyectos

Escrito por
blog feature supply chain sbom

9 de diciembre de 2024

0 minutos de lectura

Nos alegra anunciar que los SBOM (listas de materiales de software) generados por las herramientas de Snyk ahora incluirán información sobre licencias. Esta nueva capacidad forma parte de nuestros esfuerzos continuos en nuestra solución de seguridad de la cadena de suministro de software. Las herramientas de esta solución, diseñadas para desarrolladores, te ayudan a comprender mejor la cadena de suministro de tu aplicación, identificar posibles riesgos y tomar las medidas necesarias para anticiparte a ellos.

La importancia de los SBOM para proteger la cadena de suministro de software

La mayoría del software moderno está compuesto por elementos de código abierto prediseñados. Estos pueden agilizar el desarrollo, pero también introducir vulnerabilidades de seguridad y riesgos en la cadena de suministro. En respuesta a las pautas regulatorias destinadas a mitigar estas amenazas, muchas organizaciones están adoptando la práctica de crear listas de materiales de software (SBOM), un inventario detallado de los componentes y las dependencias de sus aplicaciones.

Un SBOM es similar a una lista de materiales de fabricación y proporciona información esencial a compradores y herramientas posteriores. Los formatos estandarizados, como CycloneDX y SPDX, facilitan la creación de informes legibles y procesables. Para los equipos de seguridad de aplicaciones (AppSec), esta visibilidad es esencial para comprender y abordar los ataques a la cadena de suministro, además de cumplir con los requisitos regulatorios.

Sin embargo, integrar la creación de SBOM en el proceso de desarrollo puede ser un desafío para los desarrolladores. Por suerte, herramientas como Snyk simplifican el proceso con una forma sencilla de generar SBOM y ofrecer información clara sobre los componentes de una aplicación (por ejemplo, los componentes de código abierto) y cómo interactúan entre sí.

La conclusión clave es que crear un SBOM no debería frenar la innovación, sino ayudar a los desarrolladores a priorizar tanto la seguridad como el tiempo de desarrollo y, en última instancia, servir como herramienta para que las organizaciones reduzcan los riesgos.

Riesgos de las licencias en el desarrollo de software

Los SBOM no solo sirven para enumerar lo que contiene un software; también son fundamentales para comprender los riesgos asociados con las licencias de código abierto. Una preocupación importante son los peligros de los acuerdos de licencia que no protegen adecuadamente tu propiedad intelectual. Por ejemplo, usar una licencia como la MIT puede exponerte a posibles problemas por infracción de derechos de autor. El hecho de que la licencia MIT solo exija atribución y no limite el uso ni la distribución puede ser un arma de doble filo: si bien ofrece flexibilidad, también facilita que otras personas reutilicen tu código sin permiso.

Saber qué tipos de licencia usan las dependencias de tus aplicaciones te permite verificar de forma proactiva si estas presentan riesgos de licencia desconocidos. Los metadatos de licencia que ahora se incluyen en los SBOM generados por Snyk pueden ayudar a los equipos legales, de riesgos y de auditoría a gestionar el cumplimiento de las licencias. A menudo, los SBOM se almacenan o procesan en herramientas posteriores; por ejemplo, motores de políticas personalizados o herramientas que generan informes para públicos como el equipo Legal. Además, los datos de licencia pueden ayudar a determinar los avisos de atribución requeridos.

Información sobre licencias en tus SBOM con Snyk

Hasta ahora, los usuarios tenían que recurrir a soluciones alternativas, como editar o anotar los SBOM o enriquecerlos con datos de otras herramientas. Snyk ofrece una herramienta de código abierto, parlay, para enriquecer los SBOM con datos de fuentes externas, como ecosyste.ms, que proporciona información sobre las licencias asociadas a cada dependencia. Snyk ya ofrece datos de licencias en otras áreas del producto, como su interfaz de línea de comandos (CLI) y su interfaz web, así que el paso lógico era incluirlos directamente en los SBOM generados.

De hecho, la información sobre licencias es uno de los elementos clave que recomienda incluir en los SBOM el Instituto Nacional de Estándares y Tecnología (NIST), y también es un campo obligatorio para la FDA. Por eso, es esencial para el cumplimiento. Como resultado, los desarrolladores y los equipos AppSec han tenido que recurrir a anotaciones manuales o soluciones alternativas mediante API o herramientas como Parlay para proporcionar esta información esencial, que ahora está disponible de forma nativa en los SBOM de Snyk.

Este ejemplo muestra un fragmento de la información de dependencias que incluían los SBOM generados por Snyk antes de este cambio.

Fragmento de un SBOM antes de incorporar la información sobre licencias:

{
  "bom-ref": "5-github.com/mattn/go-colorable@v0.0.7",
  "group": "github.com/mattn",
  "name": "github.com/mattn/go-colorable",
  "purl": "pkg:golang/github.com/mattn/go-colorable@v0.0.7",
  "type": "library",
  "version": "v0.0.7"
}

Con esta última actualización, Snyk ahora incluye información sobre licencias de los ecosistemas compatibles en todos los SBOM (listas de materiales de software) que genera. Esta nueva función utiliza expresiones SPDX para mostrar claramente los datos de licencia y detectar tanto licencias únicas como múltiples, incluso cuando se combinan con operadores lógicos.

Los metadatos de licencia agregados aparecen en dos ubicaciones específicas: en los SBOM de CycloneDX, como components.licenses.expression, y en los SBOM de SPDX, como packages.licenseConcluded. Este enfoque simplificado aumenta la utilidad general de los artefactos SBOM de Snyk, ya que ofrece a los usuarios de herramientas posteriores una mejor comprensión de las dependencias de un recurso y les permite tomar decisiones informadas sobre el cumplimiento de licencias.

El fragmento anterior, ahora con la información sobre licencias, se ve así:

Fragmento de un SBOM después de incorporar la información sobre licencias; los cambios se indican con >:

{
  "bom-ref": "5-github.com/mattn/go-colorable@v0.0.7",
  "group": "github.com/mattn",
  "licenses": [
    {
      "expression": "(MIT AND Apache-2.0)"
    }
  ],
  "name": "github.com/mattn/go-colorable",
  "purl": "pkg:golang/github.com/mattn/go-colorable@v0.0.7",
  "type": "library",
  "version": "v0.0.7"
}

¿Cómo puedo incluir información sobre licencias en los SBOM que genera Snyk?

Al generar un SBOM con Snyk, los metadatos de licencia se incluirán automáticamente de forma predeterminada para todos los ecosistemas compatibles y en todos los entornos. Esto significa que no tienes que cambiar nada para incluir los metadatos de licencia en tus SBOM con formato CycloneDX y SPDX. La función está disponible para los SBOM generados con la CLI de Snyk y con las distintas API de generación de SBOM.

Explora el estado de la seguridad del código abierto

Conoce las tendencias y los enfoques actuales sobre el software de código abierto y la seguridad de la cadena de suministro.