Torna agli aggiornamenti
New releaseSep 3, 2026

sbomlyze v0.5.3

Git diff per gli SBOM: confronta documenti CycloneDX, SPDX e Syft, rileva manomissioni e blocca la pipeline CI.

Condividi

sbomlyze

git diff per il tuo SBOM. Confronta due Software Bill of Materials e scopri cosa è cambiato tra build, versioni e release.

sbomlyze confronta gli hash dei componenti, non solo le stringhe di versione. Quando un attaccante sostituisce un pacchetto senza incrementarne la versione, sbomlyze lo segnala. I generatori e gli scanner di vulnerabilità non se ne accorgono.

[![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 blocca un cambio di hash a parità di versione in una pull request reale

Scopri perché questo segnale è diverso da un diff di manifest o da un normale diff di componenti in Manifest diff vs. SBOM diff vs. integrity drift.

I generatori creano SBOM e gli scanner trovano CVE. sbomlyze ti dice cosa è cambiato tra due SBOM e se fidarsi. Eseguilo dopo il tuo generatore: syft image:tag -o cyclonedx-json | sbomlyze - --compliance analizza e valuta l'SBOM generato senza file temporanei. Confrontalo con una baseline per classificare il drift e controllare la tua pipeline.

Avvio rapido con GitHub Action

Aggiungi [SBOMlyze Diff da GitHub Marketplace][marketplace] per confrontare un SBOM archiviato nel repository o generato separatamente con la sua baseline git. Lo SHA immutabile riportato di seguito è la Action pubblicata 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

L'Action scrive per impostazione predefinita un Job Summary e può applicare policy, segnalare
drift di integrità, caricare SARIF o mantenere un singolo commento su pull-request. Consulta
[il riferimento completo dell'Action](https://github.com/rezmoss/sbomlyze/blob/main/ACTION.md) per input, output, permessi
e linee guida di sicurezza. Consulta il
[repository dimostrativo live](https://github.com/rezmoss/sbomlyze-action-demo)
per un aggiornamento delle dipendenze superato e una modifica di hash a parità di versione bloccata, con
esecuzioni pubbliche dei workflow ed evidenze SARIF.

Per il dogfood specifico per formato, usa l'esempio pubblico
[Go + SPDX](https://github.com/rezmoss/sbomlyze-go-spdx-demo),
[Node + CycloneDX](https://github.com/rezmoss/sbomlyze-node-cyclonedx-demo) o
[container](https://github.com/rezmoss/sbomlyze-container-demo). Ognuno
contiene cinque scenari di revisione riproducibili. La
[guida beta di 10 minuti](https://github.com/rezmoss/sbomlyze/blob/main/BETA.md) raccoglie quattro domande mirate su attivazione e qualità
del segnale.

Gli SBOM generati non devono essere committati: `baseline: workflow-artifact`
recupera l'artifact corrispondente più recente da un'esecuzione riuscita sul branch predefinito. Un
[workflow companion Syft con versione bloccata](https://github.com/rezmoss/sbomlyze/blob/main/examples/workflows/syft-companion.yml)
mostra la generazione e la pubblicazione della baseline mentre SBOMlyze rimane responsabile
della revisione e della policy.

## Perché sbomlyze?

Molti strumenti generano SBOM. Pochi li confrontano, e ancora meno ti dicono se una modifica è di routine o un campanello d'allarme della supply chain. sbomlyze colma questa lacuna.

| Capacità | **sbomlyze** | cyclonedx-cli | sbomqs | syft / trivy |
|---|:---:|:---:|:---:|:---:|
| **diff** SBOM-to-SBOM | ✅ | base | ❌ | ❌ |
| Drift di **integrità / manomissione** (hash modificato senza versione) | ✅ | ❌ | ❌ | ❌ |
| Diff del grafo delle dipendenze + rischio di profondità transitiva | ✅ | ❌ | ❌ | ❌ |
| Scoring di conformità **NTIA / CISA / BSI** | ✅ | ❌ | ✅ | ❌ |
| Conversione di formato (Syft / CycloneDX / SPDX) | ✅ | ✅ | ❌ | parziale |
| Esploratori **TUI + Web UI** | ✅ | ❌ | ❌ | ❌ |
| Policy gate + SARIF / JUnit / Markdown / HTML / Patch | ✅ | parziale | parziale | parziale |

## Funzionalità

- **Diffing SBOM**: confronta due SBOM e visualizza a colpo d'occhio componenti aggiunti, rimossi e modificati
- **Classificazione del drift**: distingue il drift di versione dal **drift di integrità** (un hash modificato senza un cambio di versione, segnale di manomissione) e dal drift di metadati
- **Scoring di conformità**: valuta qualsiasi SBOM rispetto agli elementi minimi **NTIA**, **CISA 2025** e **BSI TR-03183**
- **Diff del grafo delle dipendenze**: traccia le dipendenze transitive e la profondità della supply chain
- **Supporto multi-formato**: Syft, CycloneDX, SPDX (JSON)
- **Conversione di formato**: converti tra i formati CycloneDX, SPDX e Syft
- **Corrispondenza forte delle identità**: precedenza PURL → CPE → BOM-ref → namespace/name
- **Modalità statistiche**: analizza singoli SBOM per metriche di licenza, dipendenze e integrità
- **Modalità TUI interattiva**: esplora gli SBOM con navigazione da tastiera e ricerca
- **Modalità Web UI**: esploratore SBOM basato su browser con upload drag-and-drop
- **Motore di policy**: applica regole su drift, licenze e punteggio di conformità nelle pipeline CI
- **GitHub Marketplace Action**: blocca le pull request sul drift degli SBOM con Job Summary, SARIF e output opzionale come commento
- **Rilevamento duplicati e collisioni**: trova più versioni dello stesso pacchetto e corrispondenze di identità ambigue
- **Formati di output multipli**: Text, JSON, SARIF, JUnit XML, Markdown, HTML, JSON Patch
- **Parsing tollerante**: continua in caso di errori con warning strutturati

## Installazione

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

Script di installazione

Lo script di installazione scarica il binario corretto per il tuo sistema operativo/architettura:```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

**Opzioni del programma di installazione:**

| Opzione | Descrizione |
|--------|-------------|
| `-b <dir>` | Directory di installazione (predefinita: `./bin`) |
| `-d` | Abilita l'output di debug |
| `-v <ver>` | Installa una versione specifica (predefinita: ultima) |

Il programma di installazione verifica sempre il checksum della release. Quando è installata una GitHub CLI compatibile, verifica anche la provenienza della build della release e fallisce in modo sicuro se tale verifica non ha esito positivo.

### Go Install```bash
go install github.com/rezmoss/sbomlyze/cmd/sbomlyze@latest

Da Binary Release

Scarica l'ultimo binario da GitHub Releases.

A partire dalla v0.3.7, gli archivi di release sono pubblicati con attestazioni di artefatti GitHub. Verifica un download in modo indipendente 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

Le istruzioni per i repository apt, rpm e apk non firmati sono state rimosse
finché i repository non supporteranno la verifica delle firme nativa del gestore di pacchetti.

Categorie