Torna agli aggiornamenti
New releaseAug 4, 2026

sbomlyze v0.3.6

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 Bills 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 lo rilevano.

[![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] [![License: Apache-2.0][license-img]][license] [![Downloads][download-img]][download]

SBOMlyze blocca una modifica dell'hash a parità di versione in una pull request reale

Scopri perché questo segnale è diverso da un manifest o da un diff di componenti ordinario in Diff dei manifest vs. diff degli SBOM vs. deriva di integrità.

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

Avvio rapido con GitHub Action

Aggiungi [SBOMlyze Diff da GitHub Marketplace][marketplace] per confrontare un SBOM committato o generato separatamente con la sua baseline git. Lo SHA immutabile qui sotto è l'Action v0.5.1 pubblicata:```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

The Action scrive un Job Summary per impostazione predefinita e può applicare policy, segnalare
derive di integrità, caricare SARIF o mantenere un singolo commento sulla pull request. Vedi
[il riferimento completo all'Action](https://github.com/rezmoss/sbomlyze/blob/main/ACTION.md) per input, output, permessi
e indicazioni di sicurezza. Vedi il
[repository di dimostrazione live](https://github.com/rezmoss/sbomlyze-action-demo)
per un aggiornamento di dipendenza superato e un blocco per modifica dell'hash a parità di versione, con
esecuzioni di workflow pubbliche e prove SARIF.

Per sperimentazioni specifiche per formato, usa gli esempi pubblici
[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). Ciascuno
contiene cinque scenari di revisione riproducibili. La
[guida beta da 10 minuti](https://github.com/rezmoss/sbomlyze/blob/main/BETA.md) raccoglie quattro domande mirate su attivazione e
qualità dei segnali.

Gli SBOM generati non devono essere committati: `baseline: workflow-artifact`
recupera l'artefatto corrispondente più recente da un'esecuzione riuscita del branch predefinito.
Un [workflow complementare 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 resta responsabile
di revisione e policy.

## Perché sbomlyze?

Molti strumenti generano SBOM. Pochi li confrontano, e ancora meno ti dicono se un cambiamento è di routine o un segnale d'allarme per la supply chain. sbomlyze colma questa lacuna.

| Funzionalità | **sbomlyze** | cyclonedx-cli | sbomqs | syft / trivy |
|---|:---:|:---:|:---:|:---:|
| **Diff** SBOM-to-SBOM | ✅ | base | ❌ | ❌ |
| Deriva **integrità / manomissione** (hash modificato senza cambio di versione) | ✅ | ❌ | ❌ | ❌ |
| Diff del grafo delle dipendenze + rischio di profondità transitiva | ✅ | ❌ | ❌ | ❌ |
| Punteggio 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à

- **Diff di SBOM**: Confronta due SBOM e osserva a colpo d'occhio componenti aggiunti, rimossi e modificati
- **Classificazione della deriva**: Distingui la deriva di versione dalla **deriva di integrità** (un hash cambiato senza cambio di versione, segnale di manomissione) e dalla deriva dei metadati
- **Punteggio di conformità**: Valuta qualsiasi SBOM rispetto agli elementi minimi di **NTIA**, **CISA 2025** e **BSI TR-03183**
- **Diff del grafo delle dipendenze**: Tieni traccia delle dipendenze transitive e della profondità della supply chain
- **Supporto multi-formato**: Syft, CycloneDX, SPDX (JSON)
- **Conversione di formato**: Converti tra formati CycloneDX, SPDX e Syft
- **Corrispondenza identità robusta**: precedenza PURL → CPE → BOM-ref → namespace/name
- **Modalità statistiche**: Analizza singoli SBOM per metriche di licenza, dipendenza e integrità
- **Modalità TUI interattiva**: Esplora gli SBOM con navigazione da tastiera e ricerca
- **Modalità Web UI**: Esploratore SBOM basato su browser con caricamento tramite trascinamento
- **Motore di policy**: Applica regole di deriva, licenza e punteggio di conformità nelle pipeline CI
- **GitHub Marketplace Action**: Controlla le pull request in base alla deriva SBOM con Job Summary, SARIF e output di commento opzionale
- **Rilevamento di duplicati e collisioni**: Trova più versioni dello stesso pacchetto e corrispondenze di identità ambigue
- **Molteplici formati di output**: Text, JSON, SARIF, JUnit XML, Markdown, HTML, JSON Patch
- **Parsing tollerante**: Continua in caso di errori con avvisi 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 dell'installer:**

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

L'installer verifica sempre il checksum della release. Quando è installata una CLI GitHub compatibile, verifica anche la provenienza della build della release e si blocca se tale verifica non riesce.

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

Dalla release binaria

Scarica l'ultimo binario da GitHub Releases.

A partire dalla v0.3.7, gli archivi di rilascio vengono pubblicati con attestazioni degli 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 supportano la verifica delle firme nativa del gestore di pacchetti.

Categorie