Retour aux mises à jour
New releaseSep 3, 2026

sbomlyze v0.5.3

Git diff pour les SBOM — comparer les documents CycloneDX, SPDX et Syft, détecter les falsifications et valider le CI.

Partager

sbomlyze

git diff pour votre SBOM. Comparez deux Software Bills of Materials et voyez ce qui a changé entre les builds, les versions et les releases.

sbomlyze compare les hachages des composants, pas seulement les chaînes de version. Lorsqu'un attaquant remplace un paquet sans incrémenter sa version, sbomlyze le signale. Les générateurs et les scanners de vulnérabilités manquent cela.

[![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 bloque un changement de hachage à version identique dans une vraie pull request

Découvrez pourquoi ce signal est différent d'un diff de manifest ou d'un diff ordinaire de composants dans Manifest diff vs. SBOM diff vs. integrity drift.

Les générateurs produisent des SBOM et les scanners trouvent des CVE. sbomlyze vous indique ce qui a changé entre deux SBOM et s'il faut s'y fier. Exécutez-le après votre générateur : syft image:tag -o cyclonedx-json | sbomlyze - --compliance analyse et note le SBOM généré sans fichier temporaire. Comparez-le à une baseline pour classifier la dérive et conditionner votre pipeline.

Démarrage rapide avec GitHub Action

Ajoutez [SBOMlyze Diff depuis GitHub Marketplace][marketplace] pour comparer un SBOM versionné ou généré séparément avec sa baseline git. Le SHA immuable ci-dessous est l'Action v0.5.1 publiée :```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 écrit un Job Summary par défaut et peut appliquer une politique, signaler
une dérive d'intégrité, téléverser un SARIF ou maintenir un commentaire unique sur
une pull request. Consultez
[la référence complète de l'Action](https://github.com/rezmoss/sbomlyze/blob/main/ACTION.md) pour les entrées, sorties, permissions
et conseils de sécurité. Consultez le
[dépôt de démonstration en direct](https://github.com/rezmoss/sbomlyze-action-demo)
pour une mise à jour de dépendance réussie et un changement de hash à version
identique bloqué, avec des exécutions de workflow publiques et des preuves SARIF.

Pour un dogfooding spécifique à un format, utilisez l'exemple public
[Go + SPDX](https://github.com/rezmoss/sbomlyze-go-spdx-demo),
[Node + CycloneDX](https://github.com/rezmoss/sbomlyze-node-cyclonedx-demo) ou
[container](https://github.com/rezmoss/sbomlyze-container-demo). Chacun
contient cinq scénarios de revue reproductibles. Le
[guide bêta de 10 minutes](https://github.com/rezmoss/sbomlyze/blob/main/BETA.md) rassemble quatre questions ciblées sur
l'activation et la qualité du signal.

Les SBOM générés n'ont pas besoin d'être commités : `baseline: workflow-artifact`
récupère l'artefact correspondant le plus récent d'une exécution réussie sur la
branche par défaut. Un [workflow compagnon Syft épinglé](https://github.com/rezmoss/sbomlyze/blob/main/examples/workflows/syft-companion.yml)
montre la génération et la publication de la baseline tandis que SBOMlyze reste
responsable de la revue et de la politique.

## Pourquoi sbomlyze ?

De nombreux outils génèrent des SBOM. Peu les comparent, et encore moins vous disent si un changement est routinier ou constitue un signal d'alerte de chaîne d'approvisionnement. sbomlyze comble ce vide.

| Capacité | **sbomlyze** | cyclonedx-cli | sbomqs | syft / trivy |
|---|:---:|:---:|:---:|:---:|
| **Diff** SBOM-à-SBOM | ✅ | basique | ❌ | ❌ |
| Dérive d'**intégrité / altération** (hash modifié sans version) | ✅ | ❌ | ❌ | ❌ |
| Diff du graphe de dépendances + risque de profondeur transitive | ✅ | ❌ | ❌ | ❌ |
| Scoring de conformité **NTIA / CISA / BSI** | ✅ | ❌ | ✅ | ❌ |
| Conversion de format (Syft / CycloneDX / SPDX) | ✅ | ✅ | ❌ | partiel |
| Explorateurs **TUI + Web UI** | ✅ | ❌ | ❌ | ❌ |
| Policy gate + SARIF / JUnit / Markdown / HTML / Patch | ✅ | partiel | partiel | partiel |

## Fonctionnalités

- **Diff de SBOM** : Comparez deux SBOM et visualisez en un coup d'œil les composants ajoutés, supprimés et modifiés
- **Classification de dérive** : Distinguez la dérive de version de la **dérive d'intégrité** (un hash modifié sans changement de version, signalant une altération) et de la dérive de métadonnées
- **Scoring de conformité** : Évaluez n'importe quel SBOM selon les éléments minimaux **NTIA**, **CISA 2025** et **BSI TR-03183**
- **Diff du graphe de dépendances** : Suivez les dépendances transitives et la profondeur de la chaîne d'approvisionnement
- **Support multi-format** : Syft, CycloneDX, SPDX (JSON)
- **Conversion de format** : Convertissez entre les formats CycloneDX, SPDX et Syft
- **Correspondance d'identité robuste** : PURL → CPE → BOM-ref → précédence namespace/name
- **Mode statistiques** : Analysez des SBOM uniques pour les métriques de licence, de dépendances et d'intégrité
- **Mode TUI interactif** : Explorez les SBOM avec navigation au clavier et recherche
- **Mode Web UI** : Explorateur de SBOM basé sur navigateur avec téléversement par glisser-déposer
- **Moteur de politique** : Appliquez des règles de dérive, de licence et de score de conformité dans les pipelines CI
- **Action GitHub Marketplace** : Bloquez les pull requests sur la dérive de SBOM avec Job Summary, SARIF et sortie de commentaire optionnelle
- **Détection de doublons et de collisions** : Trouvez plusieurs versions du même paquet et les correspondances d'identité ambiguës
- **Formats de sortie multiples** : Text, JSON, SARIF, JUnit XML, Markdown, HTML, JSON Patch
- **Parsing tolérant** : Continuez en cas d'erreurs avec des avertissements structurés

## Installation

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

Script d'installation

Le script d'installation télécharge le binaire approprié pour votre OS/architecture :```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

**Options d'installation :**

| Option | Description |
|--------|-------------|
| `-b <dir>` | Répertoire d'installation (par défaut : `./bin`) |
| `-d` | Activer la sortie de débogage |
| `-v <ver>` | Installer une version spécifique (par défaut : la plus récente) |

L'installateur vérifie toujours la somme de contrôle de la release. Lorsqu'un GitHub CLI
compatible est installé, il vérifie également la provenance de build de la release et échoue
en mode fermé si cette vérification n'aboutit pas.

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

À partir d'une version binaire

Téléchargez le dernier binaire depuis GitHub Releases.

Catégories