Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
sbomlyze — Git diff para SBOMs—compare documentos CycloneDX, SPDX e Syft, detecte adulterações e sirva como gate de CI. | Kitploit
Ferramentas/GitHubGitHub/rezmoss/sbomlyze
Análise EstáticaAnálise de VulnerabilidadesAuditoria de ConfiguraçãoDevSecOpsUtilitários e FrameworksDetecção de SegredosInteligência de AmeaçasSegurança da Cadeia de Suprimentos
GitHubrezmoss/sbomlyze

sbomlyze

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

Ver Repositório
242há 12 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

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

root@kitploit:~
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/HEAD/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/HEAD/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/HEAD/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

root@kitploit:~
**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

root@kitploit:~
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.

**Usuários de macOS:** Remova o sinalizador de quarentena após o download:```bash
xattr -d com.apple.quarantine ./sbomlyze
chmod +x ./sbomlyze

Compilar a partir do código-fonte```bash

git clone https://github.com/rezmoss/sbomlyze.git cd sbomlyze go build -o sbomlyze ./cmd/sbomlyze

root@kitploit:~
## Início Rápido```bash
# Compare two SBOMs (the headline use case)
sbomlyze before.json after.json

# Analyze a single SBOM
sbomlyze image.json

# Read an SBOM from standard input
syft image:tag -o cyclonedx-json | sbomlyze -

# Use standard input on either side of a diff
syft image:tag -o cyclonedx-json | sbomlyze baseline.json -

# Score an SBOM against NTIA / CISA / BSI minimum elements
sbomlyze image.json --compliance

# Interactive TUI explorer
sbomlyze image.json -i

# Web UI (opens browser)
sbomlyze -web

# Convert between SBOM formats
sbomlyze convert syft.json --to spdx
sbomlyze convert cdx.json --to syft -o output.json

# JSON output for CI integration
sbomlyze before.json after.json --json

# SARIF output for GitHub Code Scanning
sbomlyze before.json after.json --format sarif

# Markdown report for PR comments
sbomlyze before.json after.json --format markdown

# Apply policy checks
sbomlyze before.json after.json --policy policy.json

Uso```

sbomlyze <sbom1|-> [sbom2|-] [options] sbomlyze convert <sbom|-> --to [-o output]

Modes: Single file: sbomlyze [--json] Show statistics Interactive: sbomlyze -i Interactive explorer Convert: sbomlyze convert --to Convert SBOM format Web server: sbomlyze -web [--port 8080] Web UI explorer Two files: sbomlyze [...] Show diff

Use - in place of one SBOM path to read it from standard input.

Options: -i, --interactive Interactive TUI explorer -web, --web Start web UI server --port Web server port (default 8080) --json Output in JSON format (shortcut for --format json) --format Output format: text, json, sarif, junit, markdown, html, patch --compliance Show NTIA/CISA/BSI compliance scoring --policy Policy file for CI checks --strict Fail on parse warnings --tolerant Continue on parse warnings (default) --no-pager Disable automatic paging of output --to Target format for convert: cyclonedx (cdx), spdx, syft -o, --output Output file for convert (default: stdout) --version, -v Show version information --help, -h Show this help message

root@kitploit:~
## Comandos

### Modo Estatísticas (Arquivo Único)

Analise um SBOM para obter insights sobre componentes, licenças e dependências.```bash
sbomlyze image.json

A saída inclui o contexto da varredura, principais descobertas auto-detectadas e estatísticas:``` Scan Context: Tool: syft 1.40.1 Schema: 16.0.18 Scan Scope: all-layers Source Type: image Source: alpine:latest

Key Findings: 💻 OS/Distro: Alpine Linux v3.21 📦 Dominated by apk: 71 of 71 packages (100.0%) 📂 8,542 files tracked on filesystem 🔗 Relationships: 71 containment + 64 dependency 📜 License profile: 72% permissive, 20% copyleft ⚠️ Low hash coverage: 0.0% (71 of 71 missing) 🔍 Top catalogers: apkdb-cataloger (71)

📦 SBOM Statistics

Total Components: 71

By Package Type: apk 71

Licenses: With license: 71 Without license: 0

Top Licenses: MIT 17 BSD-3-Clause 8 GPL-2.0-only 8

Integrity: With hashes: 0 Without hashes: 71

Dependencies: Components with deps: 65 Total dep relations: 176

root@kitploit:~
#### Principais Descobertas

O sbomlyze gera automaticamente insights sobre o seu SBOM. Para análise de arquivo único, estes incluem:

| Descoberta | Descrição |
|---------|-------------|
| **Detecção de SO/distro** | Identifica o sistema operacional ou distro a partir dos metadados do SBOM |
| **Ecossistema dominante** | Relata quando um tipo de pacote domina (>60% de todos os pacotes) |
| **Pegada do sistema de arquivos** | Número de arquivos rastreados no sistema de arquivos |
| **Densidade de relacionamentos** | Contagens de relacionamentos de contenção e dependência |
| **Locais de maior concentração** | Principais diretórios onde os componentes são encontrados |
| **Perfil de risco de licença** | Detalhamento das porcentagens de licenças permissivas/copyleft/desconhecidas |
| **Avisos de qualidade de dados** | Alertas quando a cobertura de licença (<50%), hash (<50%) ou PURL (<80%) é baixa |
| **Avisos de duplicidade** | Sinaliza grupos de componentes duplicados |
| **Detalhamento do catalogador** | Principais scanners/catalogadores que detectaram componentes (SBOMs Syft) |

#### Métricas de Cobertura

O modo de estatísticas calcula porcentagens de cobertura para avaliação da qualidade dos dados:

| Métrica | Descrição |
|--------|-------------|
| **Cobertura de PURL** | Percentual de componentes com Package URLs |
| **Cobertura de CPE** | Percentual de componentes com CPEs (prontidão para varredura de vulnerabilidades) |
| **Cobertura de licença** | Percentual de componentes com pelo menos uma licença |
| **Cobertura de hash** | Percentual de componentes com hashes de integridade |

#### Categorização de Licenças

As licenças são automaticamente categorizadas em:

| Categoria | Exemplos |
|----------|----------|
| **Copyleft** | GPL, LGPL, AGPL, MPL, EPL, CDDL |
| **Permissiva** | MIT, BSD, Apache, ISC, Zlib, Unlicense |
| **Domínio Público** | Dedicações de domínio público |
| **Desconhecida** | Licenças não reconhecidas ou ausentes |

### Modo de Conversão

Converta SBOMs entre os formatos JSON CycloneDX, SPDX e Syft. O formato de entrada é detectado automaticamente.```bash
# CycloneDX to SPDX
sbomlyze convert image.cdx.json --to spdx

# Syft to CycloneDX (cdx is an alias for cyclonedx)
sbomlyze convert syft-output.json --to cdx

# SPDX to Syft, writing to a file
sbomlyze convert spdx-output.json --to syft -o converted.json

Formatos de Destino Suportados

O Que É Preservado

A conversão preserva nomes de componentes, versões, PURLs, CPEs, licenças, hashes, informações do fornecedor e relacionamentos de dependência. Campos específicos de formato (ex.: linguagem do Syft, foundBy, locations) são transportados por meio das propriedades do CycloneDX ao converter para CDX.

Modo Diff (Dois Arquivos)

Compare dois SBOMs para ver o que mudou entre as versões.```bash sbomlyze v1.0.json v2.0.json

root@kitploit:~
#### Visão Geral do Diff

O diff começa com uma comparação lado a lado de metadados (nomes de arquivos, tamanhos, informações do SO, informações da ferramenta, contagens de componentes), seguida por detalhes do contexto da varredura quando disponíveis.

#### Saída```
📊 Drift Summary:
  📦 Version drift:   58 components
  ⚠️  Integrity drift: 1 component (hash changed without version change!)
  📝 Metadata drift:  2 components

🔑 Key Findings:
  📈 Attack surface: +5 packages (7.0%), +120 files (3.2%)
  🚨 2 version downgrades detected: openssl 3.1.4→3.0.2, curl 8.5.0→8.4.0
  🔄 56 version upgrades (2 major, 12 minor, 42 patch) among 65 shared packages
  ⚠️  Integrity drift (1 total): 1 npm (review recommended)
  ❌ python ecosystem entirely removed (15 → 0 packages)
  ➕ New ecosystem: golang (8 packages)
  ✅ Core system packages stable: apk (71) unchanged

+ Added (2):
  + libgcrypt 1.10.3-r0
  + libgpg-error 1.49-r0

- Removed (3):
  - libapk 3.0.3-r1
  - libgcc 15.2.0-r2
  - nghttp3 1.13.1-r0

~ Changed (58):
  ~ nginx
      version: 1.29.4-r1 -> 1.27.3-r1
  ~ suspicious-pkg ⚠️  [INTEGRITY]
      hash[SHA256]: abc123 -> def456

>> Added dependencies:
  pkg:apk/alpine/libxslt: +[so:libgcrypt.so.20]

<< Removed dependencies:
  pkg:apk/alpine/libcurl: -[so:libnghttp3.so.9]

🔗 New transitive dependencies (3):
  + pkg:npm/lodash (depth 2)
    via: [pkg:npm/my-app pkg:npm/express pkg:npm/lodash]
  + pkg:npm/underscore (depth 3)
    via: [pkg:npm/my-app pkg:npm/express pkg:npm/lodash pkg:npm/underscore]

📊 New deps by depth:
  Depth 2:              1
  Depth 3+ (risky):     2 ⚠️

Principais Descobertas do Diff

No modo diff, o sbomlyze gera automaticamente insights mais detalhados comparando ambos os SBOMs:

Amostras de Pacotes por Tipo

Componentes adicionados e removidos são agrupados por tipo de pacote com listagens de exemplo, facilitando a visualização do que mudou em cada ecossistema.

Pontuação de Conformidade

Pontue qualquer SBOM em relação aos três principais frameworks de elementos mínimos para responder à pergunta que auditores e equipes de aquisição não param de fazer: "Este SBOM está completo o suficiente?"```bash

Score a single SBOM

sbomlyze image.json --compliance

Score alongside a diff

sbomlyze before.json after.json --compliance

As JSON for CI

sbomlyze image.json --compliance --json

root@kitploit:~
### Frameworks Avaliados

| Framework | Verificações | Requisitos notáveis |
|-----------|--------------|---------------------|
| **NTIA Minimum Elements** (2021) | 7 | nome, versão, fornecedor, IDs exclusivos (PURL/CPE), relações de dependência, autor do SBOM, carimbo de data/hora |
| **CISA 2025 Minimum Elements** (rascunho de agosto de 2025) | 10 | adiciona produtor de software, informações de licença, **hash do componente** e nome da ferramenta além dos requisitos da NTIA |
| **BSI TR-03183-2** (v2.1.0, 2025) | 9 | exige contato do criador do componente, **hash SHA-512**, licenças em formato SPDX e contato do criador do SBOM |

### Apresentação da Pontuação

Cada framework apresenta uma porcentagem (verificações aprovadas / total de verificações) além de uma pontuação geral (média entre os frameworks), com indicadores de status:

| Indicador | Pontuação |
|-----------|-----------|
| 🟢 | ≥ 90% |
| 🟡 | 70–89% |
| 🟠 | 50–69% |
| 🔴 | < 50% |

A saída JSON (`--compliance --json`) inclui o relatório completo com detalhes de aprovação/reprovação por verificação; o formato HTML incorpora o relatório de conformidade na página do relatório.

### Gate de Conformidade na CI

Aplique limites de conformidade por meio do [mecanismo de políticas](#policy-engine). Definir qualquer limite aciona a avaliação de conformidade sem a opção `--compliance`:```json
{
  "min_ntia_score": 85,
  "min_cisa_score": 70,
  "min_bsi_score": 80,
  "min_overall_compliance": 75
}

O cenário acima é o primeiro da lista:```bash sbomlyze image.json --policy compliance-policy.json

root@kitploit:~
## Diff do Grafo de Dependências

O sbomlyze vai além de simples diffs de lista de componentes para analisar o grafo de dependências completo, detectando riscos na cadeia de suprimentos introduzidos por dependências transitivas.

### Recursos

| Feature | Descrição |
|---------|-------------|
| **Edge diff** | Dependências diretas adicionadas/removidas (A depende de B) |
| **Transitive reachability** | Novas dependências indiretas que aparecem através do grafo |
| **Transitive loss tracking** | Dependências transitivas que foram removidas |
| **Path tracking** | Mostra exatamente como cada nova dependência transitiva é alcançada |
| **Depth tracking** | A quantos saltos cada nova dependência está do seu código |
| **Risk summary** | Dependências com profundidade 3+ sinalizadas como de maior risco |

### Por que a Profundidade Importa

Dependências introduzidas mais profundamente no grafo são:
- Mais difíceis de auditar e revisar
- Frequentemente incluídas sem aprovação explícita
- Vetores comuns para ataques à cadeia de suprimentos (por exemplo, incidente do event-stream)

O resumo de profundidade ajuda a priorizar a revisão:

| Profundidade | Nível de Risco | Descrição |
|-------|------------|-------------|
| **1** | Baixo | Dependências diretas (você escolheu estas) |
| **2** | Médio | Dependências das suas dependências |
| **3+** | Alto ⚠️ | Dependências transitivas profundas - revise com cuidado |

### Exemplo: Detectando Dependências Transitivas Profundas```bash
# Before: app -> express (simple, 1 dep)
# After:  app -> express -> lodash -> underscore -> deep-lib (chain of 4)

sbomlyze before.json after.json

I'm ready to translate, but I notice the input chunk appears to be empty — there is no source text after "INPUT:" to translate. Please provide the actual Markdown content for chunk 37, and I'll translate it into Portuguese following all the specified rules.``` 🔗 New transitive dependencies (3):

  • lodash (depth 2) via: [app express lodash]
  • underscore (depth 3) via: [app express lodash underscore]
  • deep-lib (depth 4) via: [app express lodash underscore deep-lib]

📊 New deps by depth: Depth 2: 1 Depth 3+ (risky): 2 ⚠️

root@kitploit:~
### Saída JSON para o Grafo de Dependências```json
{
  "dependencies": {
    "added_deps": {
      "pkg:npm/express": ["pkg:npm/lodash", "pkg:npm/body-parser"]
    },
    "removed_deps": {},
    "transitive_new": [
      {
        "target": "pkg:npm/underscore",
        "via": ["pkg:npm/my-app", "pkg:npm/express", "pkg:npm/lodash", "pkg:npm/underscore"],
        "depth": 3
      }
    ],
    "transitive_lost": [],
    "depth_summary": {
      "depth_1": 0,
      "depth_2": 2,
      "depth_3_plus": 2
    }
  }
}

Detecção de Drift

O sbomlyze classifica mudanças de componentes em três tipos de drift, ajudando você a distinguir atualizações normais de alterações potencialmente suspeitas.

Tipos de Drift

Drift de Integridade (Sinal de Segurança)

O drift de integridade ocorre quando o hash de um componente muda, mas sua versão permanece a mesma. Isso pode indicar:

  • Ataque à cadeia de suprimentos: O pacote foi substituído por uma versão maliciosa
  • Reconstrução sem incremento de versão: Legítimo, porém má prática
  • Ambiente de build diferente: Problemas de reprodutibilidade```bash

Example output with integrity drift

~ suspicious-pkg ⚠️ [INTEGRITY] hash[SHA256]: abc123 -> def456

root@kitploit:~
**Recomendação**: Sempre investigue o desvio de integridade. Pode ser benigno, mas é um sinal-chave para a segurança da cadeia de suprimentos.

### Saída JSON para o Desvio

O resumo do desvio está dentro do objeto `diff`:```json
{
  "diff": {
    "changed": [
      {
        "id": "pkg:npm/suspicious-pkg",
        "name": "suspicious-pkg",
        "changes": ["hash[SHA-256]: abc123 -> def456"],
        "drift": {
          "type": "integrity",
          "hash_changes": {
            "changed": {
              "SHA-256": {"before": "abc123", "after": "def456"}
            }
          }
        }
      }
    ],
    "drift_summary": {
      "version_drift": 55,
      "integrity_drift": 1,
      "metadata_drift": 2
    }
  }
}

Extraindo resumo de drift:```bash

Get drift summary

sbomlyze before.json after.json --json | jq '.diff.drift_summary'

Check for integrity drift in CI

sbomlyze before.json after.json --json | jq -e '.diff.drift_summary.integrity_drift > 0'

root@kitploit:~
## Detecção de Duplicatas e Colisões

### Detecção de Duplicatas

sbomlyze identifica componentes com a mesma identidade, mas versões diferentes dentro de um SBOM:```
⚠️  Duplicates Found: 2
  lodash: [4.17.20, 4.17.21]
  express: [4.18.0, 4.19.2]

No modo diff, o rastreamento de diff de versões duplicadas:

  • Novas duplicatas: Componentes que se tornaram duplicados no novo SBOM
  • Duplicatas resolvidas: Grupos de duplicatas que foram consolidados
  • Adições/remoções de versão: Mudanças de versão dentro de grupos de duplicatas existentes

Detecção de Colisões

Colisões são correspondências de identidade ambíguas em que componentes compartilham o mesmo ID, mas têm características conflitantes:

TipoDescrição
Incompatibilidade de nomeNomes de componentes diferentes mapeados para o mesmo ID de identidade
Incompatibilidade de hashA mesma versão de um componente tem hashes diferentes (possível adulteração)

SBOMlyze SBOM Explorer (TUI)```bash

sbomlyze sbom.json -i

root@kitploit:~
![interactive-sbom](https://assets.kitploit.com/production/public/readmes/12637/d28ec876b78778fce19967cad0a41a5ebd0acb43ad4dd0aeb7837ff5204b9903.gif)

### Atalhos de Teclado da TUI

#### Navegação

| Tecla | Ação |
|-----|--------|
| `↑` / `k` | Mover para cima |
| `↓` / `j` | Mover para baixo |
| `PgUp` / `Ctrl+u` | Meia página acima |
| `PgDn` / `Ctrl+d` | Meia página abaixo |
| `Home` / `g` | Ir para o topo |
| `End` / `G` | Ir para o final |
| `Enter` | Ver detalhes do componente |
| `Esc` / `Backspace` | Voltar |
| `q` / `Ctrl+c` | Sair |

#### Pesquisa e Filtro

| Tecla | Ação |
|-----|--------|
| `/` | Pesquisa profunda em todos os campos (nome, PURL, licenças, JSON bruto) |
| `t` | Filtrar por tipo de pacote (npm, apk, golang, pypi, etc.) |
| `c` | Limpar todos os filtros ativos |

#### Visualizações

| Tecla | Contexto | Ação |
|-----|---------|--------|
| `j` | Visualização de detalhes | Ver JSON bruto do componente com realce de sintaxe |
| `d` | Visualização JSON | Voltar para a visualização de detalhes |
| `Enter` | Visualização JSON | Exportar JSON do componente para arquivo |
| `?` | Qualquer visualização | Mostrar ajuda com todos os atalhos de teclado |

### Visualização de Detalhes do Componente

A visualização de detalhes mostra informações abrangentes do componente:
- Informações do pacote (nome, versão, PURL, namespace, fornecedor)
- Licenças com indicadores visuais
- Hashes de integridade
- CPEs (Common Platform Enumeration)
- Lista de dependências
- Identificadores (ID, BOM-ref, SPDX-ID)

## Modo Web UI

Inicie um explorador de SBOM baseado em navegador com upload de arquivo por arrastar e soltar:```bash
# Start web server on default port 8080
sbomlyze -web

# Start on custom port
sbomlyze -web --port 3000

Em seguida, abra http://localhost:8080 no seu navegador.

Captura de tela 2026-02-06 às 17 08 13

Funcionalidades da Interface Web

Estatísticas Exibidas

A interface web exibe estatísticas abrangentes, incluindo:

  • Contagens de componentes por tipo de pacote (npm, apk, pypi, etc.)
  • Distribuição de licenças com detalhamento por categoria (copyleft, permissiva, domínio público)
  • Métricas de cobertura com barras de progresso visuais:
    • Cobertura de PURL (presença do URL do pacote)
    • Cobertura de CPE (prontidão para escaneamento de vulnerabilidades)
    • Cobertura de licenças
    • Cobertura de hash/integridade
  • Divisão por linguagem (para SBOMs gerados por Syft)
  • Estatísticas de relacionamento (contains, dependency-of, evident-by)
  • Detecção de duplicatas (avisos)

Casos de Uso

Revisão de Segurança

  • Carregue um SBOM e explore a árvore de dependências completa
  • Verifique a cobertura de CPE para garantir que o escaneamento de vulnerabilidades funciona
  • Revise componentes sem licenças ou hashes

Auditoria de Conformidade

  • Pesquise licenças específicas em todos os componentes
  • Visualize a distribuição de categorias de licença (copyleft vs permissiva)
  • Exporte JSON bruto para documentação

Depuração de Desenvolvimento

  • Explore quais pacotes estão incluídos na sua imagem
  • Verifique dependências transitivas
  • Verifique se os metadados do pacote estão corretos

Navegador do Sistema de Arquivos

A interface web inclui um navegador completo do sistema de arquivos para explorar arquivos dentro de SBOMs (particularmente útil para SBOMs gerados por Syft com metadados de arquivo):

  • Navegação em árvore de diretórios com trilha de breadcrumbs
  • Pesquisa de arquivos com suporte a padrões de substring e glob (por exemplo, *.so, /usr/lib/**/*.conf)
  • Filtragem por camadas para SBOMs de imagens de contêiner (navegue pelos arquivos por camada da imagem)
  • Relacionamentos componente-arquivo (qual componente possui quais arquivos)
  • Estatísticas de arquivos por tipo, tipo MIME, extensão e camada
  • Detecção de arquivos sem dono (arquivos não associados a nenhum componente)

Opções

-i (Modo Interativo)

Inicie o explorador TUI baseado em terminal para navegar por SBOMs com controles de teclado.```bash sbomlyze image.json -i

root@kitploit:~
Features: tree navigation, component details, search, license/hash inspection.

### `-web` (Modo Servidor Web)

Inicie um servidor web para exploração de SBOM baseada em navegador.```bash
# Default port 8080
sbomlyze -web

# Custom port
sbomlyze -web --port 3000

A interface web oferece upload por arrastar e soltar, visualização em árvore interativa, busca avançada e painel de estatísticas.

--compliance

Pontue o SBOM de acordo com as estruturas de elementos mínimos da NTIA, CISA 2025 e BSI TR-03183. Consulte Pontuação de conformidade.```bash sbomlyze image.json --compliance sbomlyze image.json --compliance --json

root@kitploit:~
### `--format` / `-f`

Selecione o formato de saída. Sete formatos estão disponíveis:

| Formato | Flag | Descrição | Melhor Para |
|--------|------|-------------|----------|
| **text** | `--format text` (padrão) | Saída de terminal legível por humanos | Inspeção local |
| **json** | `--json` ou `--format json` | JSON estruturado | Pipelines de CI, scripting |
| **sarif** | `--format sarif` | SARIF 2.1.0 para GitHub Code Scanning | Integração com GitHub |
| **junit** | `--format junit` | Resultados de teste em XML JUnit | Dashboards de teste de CI |
| **markdown** | `--format markdown` | Relatório Markdown pronto para comentários em PR | Comentários em pull requests |
| **html** | `--format html` | Relatório HTML autocontido (CSS/JS inline) | Auditores, relatórios compartilháveis |
| **patch** | `--format patch` | Operações JSON Patch (RFC 6902) | Aplicação de patches programática |```bash
# SARIF output for GitHub Code Scanning
sbomlyze before.json after.json --format sarif > results.sarif

# JUnit output for CI test dashboards
sbomlyze before.json after.json --format junit > results.xml

# Markdown report for PR comments
sbomlyze before.json after.json --format markdown > report.md

# Self-contained HTML report
sbomlyze before.json after.json --format html > report.html

# JSON Patch operations
sbomlyze before.json after.json --format patch > changes.json

Formato SARIF

Gera um relatório SARIF 2.1.0 adequado para o GitHub Code Scanning. As regras detectadas incluem:

  • integrity-drift (erro): hash alterado sem mudança de versão
  • deep-dependency (aviso): nova dependência na profundidade 3+
  • new-component / removed-component (nota): adições/remoções de componentes
  • version-change (nota): atualizações de versão de componentes
  • policy-violation (erro/aviso): violações de regras de política

Formato JUnit

Gera XML JUnit com casos de teste para:

  • Sem desvio de integridade
  • Sem dependências transitivas profundas (profundidade 3+)
  • Conformidade com políticas (um caso de teste por violação)
  • Resumo do diff do SBOM

Formato Markdown

Gera um relatório Markdown com:

  • Tabela de comparação lado a lado do SBOM (arquivo, tamanho, SO, métricas de cobertura)
  • Detalhes do contexto da varredura
  • Principais descobertas
  • Pacotes adicionados/removidos agrupados por tipo (em seções recolhíveis)
  • Resumo de desvios, profundidade de dependências e violações de políticas

Formato HTML

Gera um único arquivo HTML autônomo (CSS e JavaScript embutidos, sem recursos externos), adequado para envio por e-mail a auditores ou anexação a um release. Inclui o painel de estatísticas, a árvore de dependências, o resumo de desvios e o relatório de conformidade embutido quando --compliance está definido.

Formato Patch

Gera um array de operações JSON Patch RFC 6902 (add, remove, replace) representando o diff.

--json

Atalho para --format json. Produz resultados em formato JSON para consumo programático.```bash

Stats as JSON

sbomlyze image.json --json

Diff as JSON

sbomlyze before.json after.json --json

root@kitploit:~
**Estrutura do JSON de estatísticas:**```json
{
  "stats": {
    "total_components": 71,
    "by_type": {"apk": 71},
    "by_license": {"MIT": 17, "BSD-3-Clause": 8},
    "without_license": 0,
    "with_hashes": 0,
    "without_hashes": 71,
    "total_dependencies": 176,
    "with_dependencies": 65,
    "duplicate_count": 0,
    "by_language": {"go": 45, "python": 12},
    "by_found_by": {"apk-db-cataloger": 71},
    "license_categories": {
      "copyleft": 8,
      "permissive": 55,
      "public_domain": 0,
      "unknown": 8
    },
    "with_cpes": 71,
    "without_cpes": 0,
    "with_purl": 71,
    "without_purl": 0
  },
  "warnings": []
}

--policy <file>

Aplicar as regras de política e falhar a CI se forem violadas.```bash sbomlyze before.json after.json --policy policy.json

root@kitploit:~
Consulte [Mecanismo de Política](#policy-engine) para obter detalhes.

### `--strict`

Falha imediatamente em qualquer erro de análise.```bash
sbomlyze broken.json --strict
# Error parsing broken.json: unknown SBOM format
# exit status 1

--tolerant (padrão)

Continuar o processamento em caso de erros, coletar avisos.```bash sbomlyze broken.json --tolerant

📦 SBOM Statistics

==================

Total Components: 0

...

⚠️ Parse Warnings (1):

[broken.json] unknown SBOM format

root@kitploit:~
Os avisos de parse incluem informações estruturadas: o arquivo de origem, uma mensagem legível por humanos e, opcionalmente, o campo que causou o problema.

### `--no-pager`

Desativa a paginação automática da saída. Útil ao canalizar a saída para outro comando ou ao executar em ambientes não interativos.```bash
sbomlyze image.json --no-pager
sbomlyze before.json after.json --no-pager | head -20

Mecanismo de Políticas

Crie políticas para aplicar regras em pipelines de CI/CD. O sbomlyze é encerrado com o código 1 quando ocorrem violações.

Formato do Arquivo de Políticas```json

{ "max_added": 10, "max_removed": 5, "max_changed": 100, "deny_licenses": ["GPL-3.0", "AGPL-3.0"], "require_licenses": true, "deny_duplicates": true, "deny_integrity_drift": true, "max_depth": 3, "warn_supplier_change": true, "warn_new_transitive": true, "min_ntia_score": 85, "min_cisa_score": 70, "min_bsi_score": 80, "min_overall_compliance": 75 }

root@kitploit:~
### Regras de Política

| Regra | Tipo | Descrição |
|------|------|-------------|
| `max_added` | int | Máximo de novos componentes permitidos (0 = ilimitado) |
| `max_removed` | int | Máximo de componentes removidos permitidos (0 = ilimitado) |
| `max_changed` | int | Máximo de componentes alterados permitidos (0 = ilimitado) |
| `deny_licenses` | []string | Lista de identificadores de licença proibidos |
| `require_licenses` | bool | Exigir que todos os componentes *adicionados* tenham licenças (verifica apenas componentes recém-adicionados no modo diff) |
| `deny_duplicates` | bool | Falhar se existirem pacotes duplicados no resultado |
| `deny_integrity_drift` | bool | Falhar se o hash do componente mudou sem alteração de versão (risco de cadeia de suprimentos) |
| `max_depth` | int | Falhar se houver novas dependências transitivas em profundidade >= N (0 = ilimitado) |
| `warn_supplier_change` | bool | Avisar (não falhar) se o fornecedor/autor do componente mudou |
| `warn_new_transitive` | bool | Avisar (não falhar) sobre quaisquer novas dependências transitivas |
| `min_ntia_score` | int | Falhar se a pontuação de conformidade NTIA estiver abaixo disso (0-100, 0 = desativado) |
| `min_cisa_score` | int | Falhar se a pontuação de conformidade CISA estiver abaixo disso (0-100, 0 = desativado) |
| `min_bsi_score` | int | Falhar se a pontuação de conformidade BSI estiver abaixo disso (0-100, 0 = desativado) |
| `min_overall_compliance` | int | Falhar se a pontuação geral de conformidade estiver abaixo disso (0-100, 0 = desativado) |

> Definir qualquer limite `min_*_score` aciona automaticamente a avaliação de conformidade, mesmo sem a flag `--compliance`.

### Exemplo: Política Estrita```json
{
  "max_added": 5,
  "max_removed": 3,
  "max_changed": 20,
  "deny_licenses": ["GPL-3.0", "AGPL-3.0", "SSPL-1.0"],
  "require_licenses": true,
  "deny_duplicates": true,
  "deny_integrity_drift": true,
  "max_depth": 3,
  "warn_supplier_change": true,
  "warn_new_transitive": true,
  "min_overall_compliance": 80
}

Saída de Violações de Política```

!! Policy Violations (3): [max_added] too many components added: 10 > 5 [max_removed] too many components removed: 7 > 3 [deny_licenses] component foo has denied license: GPL-3.0

root@kitploit:~
## Formatos de SBOM Suportados

| Formato | Detecção de Arquivo | Identificadores Extraídos |
|--------|----------------|----------------------|
| Syft (nativo) | chave JSON `"artifacts"` + uma entre `"source"`, `"distro"`, `"descriptor"` | PURL, CPE, name |
| CycloneDX | chave JSON `"bomFormat"` = `"CycloneDX"`, ou `"$schema"` contendo `cyclonedx` | PURL, CPE, BOM-ref, group (namespace) |
| SPDX | chave JSON `"spdxVersion"` começando com `"SPDX-"` | PURL, CPE, SPDXID |

Todos os formatos devem ser JSON. O suporte a XML não está disponível atualmente.

### Conversão de Formatos

sbomlyze pode converter entre qualquer um dos três formatos suportados:```bash
sbomlyze convert input.json --to spdx          # any format → SPDX 2.3
sbomlyze convert input.json --to cyclonedx     # any format → CycloneDX 1.5
sbomlyze convert input.json --to syft          # any format → Syft JSON

Consulte Modo de Conversão para detalhes.

Comparação entre Formatos

sbomlyze pode comparar SBOMs em diferentes formatos:```bash

Compare Syft output with CycloneDX

sbomlyze syft-output.json cyclonedx-output.json

Compare SPDX with Syft

sbomlyze spdx-output.json syft-output.json

root@kitploit:~
**Nota:** Diferentes formatos de SBOM extraem diferentes níveis de detalhe. Uma comparação entre formatos pode mostrar alterações que refletem diferenças de formato (por exemplo, disponibilidade de campo) em vez de alterações reais no sistema. O sistema de principais descobertas avisará sobre incompatibilidades de contexto de varredura quando detectadas.

## Correspondência de Identidade de Componentes

Os componentes são correspondidos usando um sistema de identidade baseado em precedência:

| Prioridade | Identificador | Exemplo | Descrição |
|----------|------------|---------|-------------|
| 1 | PURL | `pkg:npm/lodash` | URL do pacote (versão removida) |
| 2 | CPE | `cpe:vendor:product` | CPE vendor:product (versão removida) |
| 3 | BOM-ref / SPDXID | `ref:component-123` | bom-ref do CycloneDX ou identificador SPDX |
| 4 | Namespace + Name | `com.example/mypackage` | Grupo/namespace com nome |
| 5 | Name | `simple-package` | Fallback para apenas o nome |

## Integração CI/CD

### GitHub Actions

O SBOMlyze é fornecido como uma Action JavaScript sem dependências. Ele compara um SBOM head
verificado no repositório ou gerado separadamente com o arquivo na base git do pull request,
publica um Job Summary e, opcionalmente, produz SARIF ou atualiza um comentário do PR.```yaml
name: SBOM Check
on:
  pull_request:

permissions:
  contents: read

jobs:
  sbom-diff:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
        with:
          fetch-depth: 0

      - id: sbomlyze
        uses: rezmoss/sbomlyze@31503690611fda8ebba4ed2bd186eda000442594 # v0.5.1
        with:
          sbom-path: build/sbom.cdx.json
          policy: .github/sbom-policy.json
          fail-on: policy

A Action nunca executa comandos de gerador. Gere o SBOM do head em uma etapa separada e revisada ou faça commit dele no repositório. comment e sarif por padrão são false; PRs de fork ainda recebem o Resumo do Job completo quando a permissão de comentário não está disponível. Consulte a referência da Action para todos os inputs/outputs, fixação por SHA, upload de SARIF, permissões e comportamento de segurança.```yaml sbom-diff: stage: test script: - syft . -o json > current.json - sbomlyze baseline.json current.json --policy policy.json --json > sbom-report.json - sbomlyze baseline.json current.json --format junit > sbom-junit.xml artifacts: paths: - sbom-report.json reports: junit: sbom-junit.xml when: always

root@kitploit:~
### Alerta de Deriva de Integridade```bash
# Alert on any integrity drift (CI example)
if sbomlyze baseline.json current.json --json | jq -e '.diff.drift_summary.integrity_drift > 0' > /dev/null; then
  echo "⚠️  INTEGRITY DRIFT DETECTED - Investigate immediately!"
  exit 1
fi

Alerta de Dependência Profunda```bash

Alert on new deep transitive dependencies

if sbomlyze baseline.json current.json --json | jq -e '.diff.dependencies.depth_summary.depth_3_plus > 0' > /dev/null; then echo "⚠️ New deep transitive dependencies detected - Review required!" fi

root@kitploit:~
### Gate de Conformidade```bash
# Fail the build if the SBOM doesn't meet minimum-element requirements
sbomlyze current.json --policy compliance-policy.json
# where compliance-policy.json sets min_overall_compliance / min_ntia_score / etc.

Códigos de Saída

CodeMeaning
0Sucesso, sem diferenças ou violações
1Diferenças encontradas (quaisquer componentes adicionados/removidos/alterados), violações de política ou erros

Nota: No modo diff, o código de saída 1 é retornado sempre que qualquer alteração de componente for detectada, mesmo sem um arquivo de política. Isso torna possível usá-lo como uma simples verificação de "mudou alguma coisa?" em CI.

Exemplos

Comparar Imagens Docker```bash

Generate SBOMs

syft nginx:1.25-alpine -o json > nginx-125.json syft nginx:1.26-alpine -o json > nginx-126.json

Compare

sbomlyze nginx-125.json nginx-126.json

root@kitploit:~
### Auditoria de Licenças```bash
# Check for GPL licenses in new dependencies
cat > audit-policy.json << EOF
{
  "deny_licenses": ["GPL-2.0", "GPL-3.0", "LGPL-2.1", "LGPL-3.0"],
  "require_licenses": true
}
EOF

sbomlyze old.json new.json --policy audit-policy.json

Detecção de Deriva de Dependências```bash

Detect any changes (strict mode for no drift)

cat > no-drift.json << EOF { "max_added": 0, "max_removed": 0, "max_changed": 0 } EOF

sbomlyze baseline.json current.json --policy no-drift.json

root@kitploit:~
### Verificação de Conformidade```bash
# Score an SBOM and enforce a minimum
sbomlyze image.json --compliance

cat > compliance-policy.json << EOF
{
  "min_ntia_score": 90,
  "min_overall_compliance": 80
}
EOF

sbomlyze image.json --policy compliance-policy.json

Converter Formatos de SBOM```bash

Convert a Syft SBOM to CycloneDX for tools that require it

syft alpine:latest -o json > alpine-syft.json sbomlyze convert alpine-syft.json --to cyclonedx -o alpine-cdx.json

Convert CycloneDX to SPDX for compliance workflows

sbomlyze convert vendor-sbom.cdx.json --to spdx > vendor-sbom.spdx.json

Pipe conversion output directly

sbomlyze convert input.json --to spdx | jq '.packages | length'

root@kitploit:~
### Explorar SBOM no Navegador```bash
# Generate SBOM and explore in web UI
syft alpine:latest -o json > alpine.json

# Start web server
sbomlyze -web

# Then open http://localhost:8080 and drag-drop alpine.json

Exploração Interativa do Terminal```bash

Explore with keyboard navigation

sbomlyze alpine.json -i

Navigate with arrow keys, search with '/', view details with Enter

root@kitploit:~
## Desenvolvimento

### Executar Testes```bash
make test
# or
go test -v ./...

Lint```bash

make lint # runs go vet + golangci-lint + staticcheck make vulncheck # runs govulncheck for known CVEs

root@kitploit:~
### Compilação```bash
make build-quick
# or
go build -o sbomlyze ./cmd/sbomlyze

Comandos Make```bash

make all # Run test, lint, and build make test # Run all tests with race detector make lint # Run go vet, golangci-lint, and staticcheck make vulncheck # Run govulncheck for known vulnerabilities make build # Build with goreleaser (snapshot) make build-quick # Quick build for development make snapshot-test # Run snapshot tests only make update-snapshot # Update snapshot golden files make clean # Remove build artifacts

root@kitploit:~
## Contribuição

Contribuições são bem-vindas! Boas primeiras issues estão marcadas com o rótulo [`good first issue`](https://github.com/rezmoss/sbomlyze/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). Consulte [CONTRIBUTING.md](https://github.com/rezmoss/sbomlyze/blob/HEAD/CONTRIBUTING.md), se existir, e fique à vontade para abrir uma issue ou discussão para propor mudanças.



[ci]: https://github.com/rezmoss/sbomlyze/actions/workflows/ci.yml
[ci-img]: https://github.com/rezmoss/sbomlyze/actions/workflows/ci.yml/badge.svg
[marketplace]: https://github.com/marketplace/actions/sbomlyze-diff
[marketplace-img]: https://img.shields.io/badge/Marketplace-SBOMlyze%20Diff-blue?logo=github
[release]: https://github.com/rezmoss/sbomlyze/releases
[release-img]: https://img.shields.io/github/v/release/rezmoss/sbomlyze
[go-report]: https://goreportcard.com/report/github.com/rezmoss/sbomlyze
[go-report-img]: https://goreportcard.com/badge/github.com/rezmoss/sbomlyze
[license]: https://raw.githubusercontent.com/rezmoss/sbomlyze/main/LICENSE
[license-img]: https://img.shields.io/badge/License-Apache%202.0-blue.svg
[download]: https://github.com/rezmoss/sbomlyze/releases
[download-img]: https://img.shields.io/github/downloads/rezmoss/sbomlyze/total
[scorecard]: https://scorecard.dev/viewer/?uri=github.com/rezmoss/sbomlyze
[scorecard-img]: https://api.scorecard.dev/projects/github.com/rezmoss/sbomlyze/badge
Baixar ferramenta
FormatoValor de --toSaída
CycloneDX 1.5cyclonedx ou cdxCycloneDX JSON com metadados, dependências e propriedades
SPDX 2.3spdxSPDX JSON com pacotes, relacionamentos e referências externas
SyftsyftSyft JSON com artefatos, relacionamentos, origem e informações da distribuição
DescobertaDescrição
Divergência de contexto da varreduraAlerta se a versão do esquema ou o escopo da varredura mudou entre os SBOMs
Delta de superfície de ataqueAlterações nas contagens de pacotes, arquivos e relacionamentos com porcentagens
Ecossistemas desaparecidos/novosTipos de pacotes que apareceram ou desapareceram completamente
Migração de SO/distribuiçãoDetecta mudanças no sistema operacional entre varreduras
Análise de mudanças de versãoConta atualizações vs rebaixamentos, classifica alterações como major/minor/patch
Rebaixamentos de versãoSinaliza rebaixamentos como um sinal de segurança com detalhes dos componentes
Contexto de desvio de integridadeDetalha o desvio de integridade por tipo de pacote com orientação de risco
Padrões dominantes de caminhoAlterações concentradas por tipo e caminho do sistema de arquivos
Pontos críticos de remoção/adiçãoPrincipais diretórios afetados pelas alterações
Tipos estáveisTipos de pacotes com contagens idênticas (núcleo inalterado)
Mudanças nas categorias de licençaAlterações no equilíbrio copyleft/permissiva
Lacunas do catalogadorScanners que encontraram pacotes no Before, mas nenhum no After
TipoIndicadorDescriçãoSeveridade
Versão📦Número da versão alteradoNormal
Integridade⚠️Hash alterado SEM mudança de versãoAlta - investigue!
Metadados📝Somente metadados (licenças, etc.) alteradosBaixa
FuncionalidadeDescrição
Envio por Arrastar e SoltarSolte qualquer arquivo SBOM (Syft, CycloneDX, SPDX) na página (até 500MB)
Árvore de DependênciasVisualização em árvore interativa com navegação expandir/contrair (paginada para >5000 componentes)
Detalhes do ComponenteVisualize licenças, hashes, dependências, informações do fornecedor, contagem de arquivos
Visualização de JSON BrutoJSON com realce de sintaxe para cada componente
Pesquisa ProfundaPesquise em todos os campos, incluindo dados JSON brutos
Painel de EstatísticasMétricas de cobertura, categorias de licença, distribuição de linguagens
Navegador do Sistema de ArquivosNavegue pelos arquivos dentro do SBOM com navegação de diretórios, pesquisa e filtragem por camadas