Volver a actualizaciones
Nuevo releaseJul 25, 2026

sbomlyze v0.3.5

git diff para tu SBOM ,compara CycloneDX/SPDX/Syft listas de materiales, detecta manipulaciones, y controla el CI

Compartir

sbomlyze

git diff para tu SBOM. Compara dos Software Bills of Materials y observa qué cambió entre compilaciones, versiones y lanzamientos.

sbomlyze compara los hashes de los componentes, no solo las cadenas de versión. Cuando un atacante intercambia un paquete sin incrementar su versión, sbomlyze lo detecta. Los generadores y los escáneres de vulnerabilidades pasan esto por alto.

[![CI][ci-img]][ci] [![GitHub Marketplace][marketplace-img]][marketplace] [![GitHub Release][release-img]][release] [![Go Report Card][go-report-img]][go-report] [![OpenSSF Scorecard][scorecard-img]][scorecard] [![OpenSSF Best Practices][best-practices-img]][best-practices] [![License: Apache-2.0][license-img]][license] [![Downloads][download-img]][download]

SBOMlyze bloquea un cambio de hash con la misma versión en una pull request real

Descubre por qué esta señal es diferente de un diff de manifiesto o de un diff de componentes ordinario en Manifest diff vs. SBOM diff vs. integrity drift.

Los generadores crean SBOMs y los escáneres encuentran CVEs. sbomlyze te dice qué cambió entre dos SBOMs y si se puede confiar en ello. Ejecútalo después de tu generador: syft image:tag -o cyclonedx-json | sbomlyze - --compliance analiza y puntúa el SBOM generado sin necesidad de un archivo temporal. Compáralo con una línea base para clasificar la deriva y controlar tu pipeline.

Inicio rápido de GitHub Action

Añade [SBOMlyze Diff desde GitHub Marketplace][marketplace] para comparar un SBOM registrado en el repositorio o generado por separado con su línea base de git. El SHA inmutable a continuación es la Action publicada v0.5.1:```yaml steps:

  • uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0

  • uses: rezmoss/sbomlyze@31503690611fda8ebba4ed2bd186eda000442594 # v0.5.1 with: sbom-path: build/sbom.cdx.json

La Action escribe un Job Summary por defecto y puede aplicar políticas, reportar
deriva de integridad, subir SARIF o mantener un único comentario en el pull request. Consulta
[la referencia completa de la Action](https://github.com/rezmoss/sbomlyze/blob/main/ACTION.md) para entradas, salidas, permisos
y guía de seguridad. Consulta el
[repositorio de demostración en vivo](https://github.com/rezmoss/sbomlyze-action-demo)
para ver una actualización de dependencia aprobada y un cambio de hash de la misma versión bloqueado, con
ejecuciones de workflow públicas y evidencia SARIF.

Para dogfooding específico de formato, usa el ejemplo público de
[Go + SPDX](https://github.com/rezmoss/sbomlyze-go-spdx-demo),
[Node + CycloneDX](https://github.com/rezmoss/sbomlyze-node-cyclonedx-demo) o
[contenedor](https://github.com/rezmoss/sbomlyze-container-demo). Cada uno
contiene cinco escenarios de revisión reproducibles. La
[guía beta de 10 minutos](https://github.com/rezmoss/sbomlyze/blob/main/BETA.md) recopila cuatro preguntas centradas en activación y calidad
de señal.

Los SBOM generados no necesitan ser confirmados: `baseline: workflow-artifact`
recupera el artefacto coincidente más reciente de una ejecución exitosa de la rama por defecto.
Un [workflow complementario de Syft fijado](https://github.com/rezmoss/sbomlyze/blob/main/examples/workflows/syft-companion.yml)
muestra la generación y publicación de baseline mientras SBOMlyze sigue siendo responsable
de la revisión y la política.

## ¿Por qué sbomlyze?

Muchas herramientas generan SBOM. Pocas los comparan, y menos aún te dicen si un cambio es rutinario o una bandera roja en la cadena de suministro. sbomlyze llena ese vacío.

| Capacidad | **sbomlyze** | cyclonedx-cli | sbomqs | syft / trivy |
|---|:---:|:---:|:---:|:---:|
| **diff** SBOM-a-SBOM | ✅ | básico | ❌ | ❌ |
| Deriva de **integridad / manipulación** (hash cambiado sin versión) | ✅ | ❌ | ❌ | ❌ |
| Diff de grafo de dependencias + riesgo de profundidad transitiva | ✅ | ❌ | ❌ | ❌ |
| Puntuación de cumplimiento **NTIA / CISA / BSI** | ✅ | ❌ | ✅ | ❌ |
| Conversión de formato (Syft / CycloneDX / SPDX) | ✅ | ✅ | ❌ | parcial |
| Exploradores **TUI + Web UI** | ✅ | ❌ | ❌ | ❌ |
| Puerta de política + SARIF / JUnit / Markdown / HTML / Patch | ✅ | parcial | parcial | parcial |

## Características

- **Diffing de SBOM**: Compara dos SBOM y ve los componentes añadidos, eliminados y modificados de un vistazo
- **Clasificación de deriva**: Distingue la deriva de versión de la **deriva de integridad** (un hash cambiado sin un cambio de versión, lo que indica manipulación) y la deriva de metadatos
- **Puntuación de cumplimiento**: Puntúa cualquier SBOM según los elementos mínimos de **NTIA**, **CISA 2025** y **BSI TR-03183**
- **Diff de grafo de dependencias**: Rastrea dependencias transitivas y profundidad de la cadena de suministro
- **Soporte multi-formato**: Syft, CycloneDX, SPDX (JSON)
- **Conversión de formato**: Convierte entre formatos CycloneDX, SPDX y Syft
- **Coincidencia de identidad robusta**: precedencia PURL → CPE → BOM-ref → namespace/name
- **Modo de estadísticas**: Analiza SBOM individuales para métricas de licencia, dependencia e integridad
- **Modo TUI interactivo**: Explora SBOM con navegación por teclado y búsqueda
- **Modo Web UI**: Explorador de SBOM basado en navegador con carga mediante arrastrar y soltar
- **Motor de políticas**: Aplica reglas de deriva, licencia y puntuación de cumplimiento en pipelines de CI
- **GitHub Marketplace Action**: Bloquea pull requests según la deriva del SBOM con Job Summary, SARIF y salida de comentario opcional
- **Detección de duplicados y colisiones**: Encuentra múltiples versiones del mismo paquete y coincidencias de identidad ambiguas
- **Múltiples formatos de salida**: Texto, JSON, SARIF, JUnit XML, Markdown, HTML, JSON Patch
- **Análisis tolerante**: Continúa ante errores con advertencias estructuradas

## Instalación

### Homebrew (macOS/Linux)```bash
brew install rezmoss/sbomlyze/sbomlyze

Script de instalación

El script de instalación descarga el binario correcto para tu SO/arquitectura:```bash

Install to ./bin

curl -sSfL https://raw.githubusercontent.com/rezmoss/sbomlyze/main/install.sh | sh

Install to /usr/local/bin (requires sudo)

curl -sSfL https://raw.githubusercontent.com/rezmoss/sbomlyze/main/install.sh | sudo sh -s -- -b /usr/local/bin

Install specific version

curl -sSfL https://raw.githubusercontent.com/rezmoss/sbomlyze/main/install.sh | sh -s -- -v 0.4.0

**Opciones del instalador:**

| Opción | Descripción |
|--------|-------------|
| `-b <dir>` | Directorio de instalación (predeterminado: `./bin`) |
| `-d` | Habilitar salida de depuración |
| `-v <ver>` | Instalar una versión específica (predeterminado: la más reciente) |

El instalador siempre verifica la suma de comprobación de la versión. Cuando hay una CLI de GitHub compatible
instalada, también verifica la procedencia de compilación de la versión y falla de forma segura si
esa verificación no tiene éxito.

### Instalación con Go```bash
go install github.com/rezmoss/sbomlyze/cmd/sbomlyze@latest

Desde la versión binaria

Descarga el binario más reciente desde GitHub Releases.

A partir de la v0.3.7, los archivos de la versión se publican con atestaciones de artefactos de GitHub. Verifica una descarga de forma independiente con:```bash gh attestation verify ./sbomlyze_0.4.0_Linux_x86_64.tar.gz
--repo rezmoss/sbomlyze
--signer-workflow rezmoss/sbomlyze/.github/workflows/release.yml

Las instrucciones para repositorios apt, rpm y apk sin firmar se han eliminado hasta que los repositorios admitan la verificación de firmas nativa del gestor de paquetes.

Categorías