Voltar às atualizações
New releaseAug 4, 2026

sbomlyze v0.3.6

Git diff para SBOMs—compare documentos CycloneDX, SPDX e Syft, detecte adulterações e sirva como gate de CI.

Compartilhar

sbomlyze

git diff para a sua SBOM. Compare duas Listas de Materiais de Software e veja o que mudou entre builds, versões e lançamentos.

O sbomlyze compara hashes de componentes, não apenas strings de versão. Quando um invasor troca um pacote sem incrementar a versão, o sbomlyze sinaliza isso. Geradores e scanners de vulnerabilidades não detectam isso.

[![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]

O SBOMlyze bloqueia uma alteração de hash de mesma versão em um pull request real

Veja por que esse sinal é diferente de um diff de manifesto ou de um diff comum de componentes em Diff de manifesto vs. diff de SBOM vs. desvio de integridade.

Geradores criam SBOMs e scanners encontram CVEs. O sbomlyze informa o que mudou entre duas SBOMs e se você pode confiar nisso. Execute-o após seu gerador: syft image:tag -o cyclonedx-json | sbomlyze - --compliance analisa e pontua a SBOM gerada sem arquivo temporário. Compare-a com uma linha de base para classificar desvios e controlar seu pipeline.

Início rápido da GitHub Action

Adicione [SBOMlyze Diff do GitHub Marketplace][marketplace] para comparar uma SBOM versionada ou gerada separadamente com sua linha de base do git. O SHA imutável abaixo é a Action v0.5.1 publicada:```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

A Action escreve um Resumo de Job por padrão e pode aplicar políticas, reportar
desvios de integridade, enviar SARIF ou manter um único comentário em pull-request. Consulte
[a referência completa da Action](https://github.com/rezmoss/sbomlyze/blob/main/ACTION.md) para entradas, saídas, permissões
e orientações de segurança. Consulte o
[repositório de demonstração ao vivo](https://github.com/rezmoss/sbomlyze-action-demo)
para uma atualização de dependência aprovada e uma alteração de hash de mesma versão bloqueada, com
execuções de workflow públicas e evidências SARIF.

Para dogfood específico de formato, use os exemplos públicos
[Go + SPDX](https://github.com/rezmoss/sbomlyze-go-spdx-demo),
[Node + CycloneDX](https://github.com/rezmoss/sbomlyze-node-cyclonedx-demo) ou
[contêiner](https://github.com/rezmoss/sbomlyze-container-demo). Cada um
contém cinco cenários de revisão reproduzíveis. O
[guia beta de 10 minutos](https://github.com/rezmoss/sbomlyze/blob/main/BETA.md) reúne quatro perguntas focadas sobre ativação e
qualidade de sinal.

Os SBOMs gerados não precisam ser commitados: `baseline: workflow-artifact`
recupera o artefato correspondente mais recente de uma execução bem-sucedida no branch
padrão. Um [workflow complementar do Syft com pin](https://github.com/rezmoss/sbomlyze/blob/main/examples/workflows/syft-companion.yml)
mostra a geração e a publicação da baseline, enquanto o SBOMlyze permanece responsável
pela revisão e pela política.

## Por que sbomlyze?

Muitas ferramentas geram SBOMs. Poucas os comparam, e menos ainda dizem se uma mudança é rotineira ou um sinal de alerta na cadeia de suprimentos. O sbomlyze preenche essa lacuna.

| Capacidade | **sbomlyze** | cyclonedx-cli | sbomqs | syft / trivy |
|---|:---:|:---:|:---:|:---:|
| **Diff** de SBOM para SBOM | ✅ | básico | ❌ | ❌ |
| Desvio de **integridade / adulteração** (hash alterado sem mudança de versão) | ✅ | ❌ | ❌ | ❌ |
| Diff de grafo de dependências + risco de profundidade transitiva | ✅ | ❌ | ❌ | ❌ |
| Pontuação de conformidade **NTIA / CISA / BSI** | ✅ | ❌ | ✅ | ❌ |
| Conversão de formatos (Syft / CycloneDX / SPDX) | ✅ | ✅ | ❌ | parcial |
| Exploradores de **TUI + Web UI** | ✅ | ❌ | ❌ | ❌ |
| Portão de política + SARIF / JUnit / Markdown / HTML / Patch | ✅ | parcial | parcial | parcial |

## Recursos

- **Diff de SBOM**: Compare dois SBOMs e veja componentes adicionados, removidos e alterados de uma só vez
- **Classificação de desvios**: Distinga desvios de versão de **desvios de integridade** (um hash alterado sem mudança de versão, sinalizando adulteração) e desvios de metadados
- **Pontuação de conformidade**: Pontue qualquer SBOM em relação aos elementos mínimos da **NTIA**, **CISA 2025** e **BSI TR-03183**
- **Diff de grafo de dependências**: Rastreie dependências transitivas e a profundidade da cadeia de suprimentos
- **Suporte a múltiplos formatos**: Syft, CycloneDX, SPDX (JSON)
- **Conversão de formatos**: Converta entre formatos CycloneDX, SPDX e Syft
- **Correspondência robusta de identidade**: Precedência PURL → CPE → BOM-ref → namespace/nome
- **Modo estatísticas**: Analise SBOMs individuais para métricas de licença, dependência e integridade
- **Modo TUI interativo**: Explore SBOMs com navegação por teclado e busca
- **Modo Web UI**: Explorador de SBOM baseado em navegador com upload por arrastar e soltar
- **Mecanismo de políticas**: Aplique regras de desvio, licença e pontuação de conformidade em pipelines de CI
- **Action do GitHub Marketplace**: Bloqueie pull-requests com base em desvios de SBOM com Resumo de Job, SARIF e saída opcional de comentário
- **Detecção de duplicatas e colisões**: Encontre múltiplas versões do mesmo pacote e correspondências de identidade ambíguas
- **Múltiplos formatos de saída**: Texto, JSON, SARIF, JUnit XML, Markdown, HTML, JSON Patch
- **Parsing tolerante**: Continue com erros e avisos estruturados

## Instalação

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

Script de instalação

O script de instalação baixa o binário correto para o seu SO/arquitetura:```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

**Opções do instalador:**

| Opção | Descrição |
|--------|-------------|
| `-b <dir>` | Diretório de instalação (padrão: `./bin`) |
| `-d` | Ativar saída de depuração |
| `-v <ver>` | Instalar versão específica (padrão: mais recente) |

O instalador sempre verifica o checksum do release. Quando uma CLI do GitHub compatível
está instalada, ele também verifica a procedência do build do release e falha de forma segura se
essa verificação não for bem-sucedida.

### Instalação via Go```bash
go install github.com/rezmoss/sbomlyze/cmd/sbomlyze@latest

A partir do lançamento binário

Baixe o binário mais recente em GitHub Releases.

A partir da v0.3.7, os arquivos de lançamento são publicados com atestações de artefatos do GitHub. Verifique um download de forma independente com:```bash gh attestation verify ./sbomlyze_0.4.0_Linux_x86_64.tar.gz
--repo rezmoss/sbomlyze
--signer-workflow rezmoss/sbomlyze/.github/workflows/release.yml

Instruções de repositórios apt, rpm e apk não assinados foram removidas até que os repositórios suportem verificação de assinatura nativa do gerenciador de pacotes.

Categorias