Skip to content
Latchkey

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

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

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

Syftcdxgen
フォーマットSPDX + CycloneDX + Syft JSONCycloneDX (主要)
強みコンテナ + OS パッケージのカタログ化広範なアプリ言語/エコシステムのカバレッジ
エコシステムAnchore (Grype と組み合わせ)OWASP (Dep-Track と組み合わせ)
コンテナイメージ第一級サポート
言語の深さ多数のエコシステム非常に広範、多数の言語
統合Grype、AttestationsOWASP 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 は継続的なアプリ依存関係の監視に向いています。

結論

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

関連ガイド