# Syft vs cdxgen: SBOM ジェネレータの比較

> Syft vs cdxgen を、フォーマット、言語/エコシステムのカバレッジ、コンテナサポート、統合の観点で比較。CI におけるサプライチェーンセキュリティ向けの 2 つの SBOM ジェネレータ。

Source: https://latchkey.dev/ja/learn/tool-comparisons/syft-vs-cdxgen  
Updated: 2026-06-30

どちらも software bill of materials を生成します。Syft (Anchore) はコンテナと OS パッケージのカタログ化に優れ、SPDX と CycloneDX を出力し、cdxgen (OWASP) は CycloneDX に集中し、非常に広範な言語とエコシステムをカバーします。

Syft と cdxgen はどちらも SBOM を生成し、build に何が入っているかを把握して脆弱性スキャナに渡せるようにします。Syft はコンテナイメージと OS パッケージに強く、cdxgen は多くの言語にまたがるアプリケーションの依存関係に強いです。ここでは率直な比較を示します。

## Comparison

|  | Syft | cdxgen |
| --- | --- | --- |
| フォーマット | SPDX + CycloneDX + Syft JSON | CycloneDX (主要) |
| 強み | コンテナ + OS パッケージのカタログ化 | 広範なアプリ言語/エコシステムのカバレッジ |
| エコシステム | Anchore (Grype と組み合わせ) | OWASP (Dep-Track と組み合わせ) |
| コンテナイメージ | 第一級 | サポート |
| 言語の深さ | 多数のエコシステム | 非常に広範、多数の言語 |
| 統合 | Grype、Attestations | OWASP Dependency-Track |

## コンテナ vs アプリケーションの焦点

Syft はコンテナイメージと OS レベルのパッケージ (apk、deb、rpm) はもちろん言語の依存関係のスキャンにも優れ、脆弱性スキャンのために Grype と自然に組み合わさります。cdxgen はアプリケーションのエコシステムと言語をまたいで非常に広い網を張るため、多言語のコードベースに便利で、継続的な監視のために OWASP Dependency-Track と緊密に統合します。

## フォーマットと下流のツール

Syft は SPDX と CycloneDX の両方を出力し、どのコンシューマを使うにも柔軟性を与えます。cdxgen は CycloneDX を中心とし、パイプラインがそこに標準化しているなら強く適合します。すでに使っている SBOM フォーマットと下流のツール (Grype、Dependency-Track、attestation フロー) によっても選びましょう。

## CI では

すべての build で SBOM を生成し、artifact として保存し、スキャナに渡しましょう。Syft と Grype はコンテナイメージ向けの一般的なパイプラインであり、cdxgen と Dependency-Track は継続的なアプリ依存関係の監視に向いています。

## Decide with your own repository

- Both tools in a mature category can do the job. What differs is behaviour on your codebase, which takes an afternoon to measure and beats any feature table.
- Benchmark the cold path with no cache. Warm local runs favour whatever you already have cached, which is the one condition CI never has.
- Price the switching cost honestly: lockfile or config format, stricter resolution surfacing latent bugs, and every developer plus every runner having to move together.

## 結論

SPDX/CycloneDX 出力と Grype へのクリーンな経路を備えたコンテナと OS パッケージの SBOM には Syft を、広範なアプリケーション言語のカバレッジと OWASP Dependency-Track には cdxgen を選びましょう。どちらも堅実なので、フォーマットと下流のツールで選びましょう。

## FAQ

### Syft vs cdxgen: SBOM Generators Compared?

Syft and cdxgen both produce SBOMs so you know what is in your builds and can feed vulnerability scanners. Syft is strong on container images and OS packages; cdxgen is strong on application dependencies across many languages. Here is the honest comparison.

### Container vs application focus?

Syft is excellent at scanning container images and OS-level packages (apk, deb, rpm) as well as language dependencies, and it pairs naturally with Grype for vulnerability scanning. cdxgen casts a very wide net across application ecosystems and languages, which is handy for polyglot codebases, and integrates tightly with OWASP

### Formats and downstream tools?

Syft emits both SPDX and CycloneDX, giving flexibility for whatever consumer you use. cdxgen centers on CycloneDX, which is a strong fit if your pipeline standardizes there. Choose partly by which SBOM format and downstream tools (Grype, Dependency-Track, attestation flows) you already use.

### In CI?

Generate an SBOM on every build, store it as an artifact, and feed it to a scanner. Syft plus Grype is a common pipeline for container images; cdxgen plus Dependency-Track suits ongoing app dependency monitoring.

### Which should I choose?

Choose Syft for container and OS package SBOMs with SPDX/CycloneDX output and a clean path to Grype; choose cdxgen for broad application-language coverage and OWASP Dependency-Track. Both are solid, so pick by format and downstream tooling.

---

Latchkey runs CI/CD that repairs its own failures. Agent entry points: https://latchkey.dev/agent.txt, https://latchkey.dev/openapi.json, https://latchkey.dev/llms.txt
