Lista de materiales de software (SBOM)

Un SBOM con cada análisis

Cada análisis enumera todos los paquetes que instalan tus lockfiles, con su licencia, el paquete que los trae y sus vulnerabilidades conocidas. Descárgalo como SBOM CycloneDX 1.6, en todos los planes, también en el gratuito.

Qué contiene

Un documento por análisis, hecho con los mismos datos que el informe, así que el SBOM y la puntuación describen siempre el mismo commit.

  • Cada paquete instalado

    Cada versión de paquete npm o Composer que instalan tus lockfiles, con su package URL (purl), si lo declaras tú o llega a través de otro paquete, y si solo lo necesita el desarrollo.

  • Licencias

    La licencia de cada paquete como identificador o expresión SPDX. En los lockfiles que no guardan licencias (yarn, pnpm, bun), se obtienen del registro de npm; un valor que no es SPDX se conserva como nombre de la licencia.

  • El grafo de dependencias

    Qué paquete trae a cuál, desde tu proyecto hacia abajo, para que veas por qué está cada paquete.

  • Vulnerabilidades conocidas

    Los avisos que OSV conoce para estas versiones, enlazados a los paquetes afectados, con su gravedad y la versión que los corrige.

Leído de tus lockfiles

Agnes crea la lista a partir del lockfile, fuera del sandbox. Nunca instala tus dependencias ni ejecuta tu código.

  • package-lock.json
  • npm-shrinkwrap.json
  • yarn.lock
  • pnpm-lock.yaml
  • bun.lock
  • composer.lock

Sin lockfile no hay SBOM: haz commit de uno para que cada análisis pueda enumerar lo que entregas. Los paquetes de Composer aparecen con sus licencias y avisos.

Un paquete en el SBOM
{
  "type": "library",
  "bom-ref": "pkg:npm/%40vue/reactivity@3.5.13",
  "group": "@vue",
  "name": "reactivity",
  "version": "3.5.13",
  "purl": "pkg:npm/%40vue/reactivity@3.5.13",
  "scope": "required",
  "licenses": [{ "license": { "id": "MIT" } }],
  "properties": [
    { "name": "agnes:direct", "value": "false" },
    { "name": "agnes:lockfile", "value": "package-lock.json" }
  ]
}

Dónde conseguirlo

El SBOM del último análisis está siempre a un clic, y los análisis anteriores conservan el suyo.

  • Resumen del proyecto

    La tarjeta SBOM del resumen de un proyecto descarga el más reciente, con el número de paquetes, licencias y vulnerabilidades que contiene.

  • Cualquier análisis

    Cada análisis tiene su propia descarga, así que puedes entregar el SBOM exactamente del commit que publicaste.

  • Tu agente de IA

    Los agentes conectados a Agnes lo obtienen con la herramienta get_sbom, por ejemplo para comprobar una licencia o planificar una actualización.

    Conectar un agente →

Para clientes, auditorías y la Cyber Resilience Act

Clientes y auditores piden cada vez más un SBOM, y el Reglamento de Ciberresiliencia de la UE (Cyber Resilience Act) pide a los fabricantes de productos con elementos digitales que elaboren uno que cubra al menos las dependencias de primer nivel. El SBOM de Agnes cubre cada paquete instalado y se actualiza con cada análisis. Es una parte de lo que pide el reglamento, no el cumplimiento por sí solo.

El formato

CycloneDX 1.6 en JSON, el estándar de OWASP que leen la mayoría de las herramientas SBOM. Los paquetes se identifican por su package URL y las licencias por SPDX, y nuestras pruebas comprueban la exportación con el esquema oficial de CycloneDX. El número de serie del documento es el identificador del análisis, así que el mismo análisis da siempre el mismo SBOM.

Lo que no contiene: tus propios archivos de código, hashes de archivos y paquetes que no están en ningún lockfile, como scripts copiados en el repositorio. Los proyectos muy grandes se limitan a 20.000 paquetes; el SBOM indica entonces cuántos ha dejado fuera.

Mira lo que entrega tu repositorio

Conecta un repositorio y el primer análisis llega con su SBOM.