SPDX と CycloneDX: SBOM フォーマットの比較

全ての記事

脆弱性管理およびサイバーセキュリティ ツールとしてソフトウェア部品表 (SBOM) の採用が増えているにもかかわらず、多くの組織は、現在使用されている 2 つの最も一般的な SBOM 形式である SPDX と CycloneDX を理解するのに依然として苦労しています。この記事では、ニーズに合ったものを選択できるように、これら 2 つの形式を比較します。

SBOMフォーマットとは

ソフトウェア開発および脆弱性管理用のソフトウェア部品表を作成する場合、特定の形式または標準に準拠する必要があります。標準の SBOM 形式は、SBOM 生成のための具体的で統一された構造を定義し、それがソフトウェア サプライ チェーン全体で顧客およびユーザーとどのように共有されるかも決定します。 SBOM 形式は、他のサイバーセキュリティ ツールが理解しやすい形式でソフトウェアの構成も定義します。一般に、SBOM 形式には 3 つあります。それらには次のものが含まれます。

ソフトウェア パッケージ データ交換 (SPDX): これは、Linux Foundation によるオープンソースの機械可読 SBOM プロジェクトです。これは主に、開発チームや企業によるオープンソースおよび独自コードの管理におけるコンプライアンスと透明性を確保することを目的として設計されました。

サイクロンDX (CDX): これは、Open Web Application Security Project (OWASP) コミュニティによって開発された、オープンソースで機械可読な SBOM 形式でもあります。これは、ソフトウェア開発パイプライン全体での SBOM 生成の導入と自動化の容易さに重点を置いた軽量の SBOM 形式です。 

ソフトウェア識別タグ (SWID):  SWID タグは、SBOM 形式というよりはソフトウェア識別子とみなされます。ソフトウェア リリースに関する特定の情報を保存することで、ソフトウェア インベントリを追跡するためのシンプルかつ透過的な方法を提供します。

一般に、SPDX および CycloneDX SBOM 形式のみが正式に認識されています。 SWID 形式は、他の 2 つの形式ほど多くの情報を提供しないため、主にソフトウェアの識別に使用されます。

SPDX と CycloneDX には重複する情報が含まれており、単一の「標準」SBOM 形式がないため、これらを交換して使用できると多くの人が主張しています。ただし、この 2 つの形式は、ソフトウェア開発ライフサイクル内で従来から異なる使用例を持っています。したがって、さまざまな組織は、独自のサイバーセキュリティとコンプライアンスのニーズに基づいて、どれが自社にとって最適であるかを判断する必要があります。

ここをクリックして SBOM 標準形式の詳細については、こちらをご覧ください。.

SPDX と CycloneDx の比較

SPDX と CyclonDX は SBOM 生成の 2 つの標準フォーマットであり、今後も長い間この状態が続くと思われます。ほとんどの SBOM 生成プラットフォームは両方の形式をサポートしています。ただし、これらは使用例が異なる別個のツールです。主要な相違点のいくつかを以下に示します。

CycloneDX の概要

CycloneDX は、主要なソフトウェア セキュリティ組織の 2017 つである Open Web Application Security Project (OWASP) によるオープンソース SBOM プロジェクトです。このプロジェクトは、ユーザーがソフトウェア サプライ チェーンのリスクを特定できるようにするコンポーネント分析プラットフォームとして XNUMX 年に開始されました。脆弱性の特定は依然として CycloneDX の主な使用例です。この SBOM 形式は、ライセンスへの準拠や古いソフトウェア コンポーネントの特定にも役立ちます。

CycloneDX は、ソフトウェアのビルド サイクル全体を通じて自動化と SBOM 要件の導入を容易にすることに重点を置いています。この形式は、オープンソースと独自のソフトウェア組織の両方でセキュリティのユースケースに使用されています。

CycloneDX は BOM フォーマットとして、ソフトウェア部品表の作成以外にも応用できます。また、ハードウェアやクラウド システムのコンポーネント、脆弱性、サービスをコンパイルするためにも使用できます。 Cyclone DX 形式で作成された SBOM には、3 つの主要な分野の脆弱性がリストされています。これらは:

  • Common Platform Enumeration (CPE): アプリケーション、ハードウェア デバイス、またはオペレーティング システム内の脆弱性。
  • SWID: ソフトウェア識別タグは、インストールされたソフトウェアのコンポーネントを分析するために使用されます。
  • パッケージ URL (PURL)。 CycloneDX には、ソフトウェア パッケージのメタデータもリストされます。

これに加えて、CycloneDX フォーマットはソフトウェア製品とそのコンポーネントの出所追跡もサポートしています。これにより、ソフトウェアとそのすべてのコンポーネントの作成者と供給者を特定しやすくなります。

SPDX の概要

SPDX は Software Package Data Exchange の略です。これは、ソフトウェア データ (特にライセンス情報) の収集と共有のための共通形式として機能することを目的として、Linux Foundation によって作成されたオープンソース プロジェクトです。

SPDX 標準は、もともと 2011 年にオープンソースのライセンス管理ツールとして開発されました。この形式は長年にわたって改良され、重要なセキュリティ関連情報を取得する形式の能力を向上させ、他の標準 SBOM 形式との相互運用性を高める新しいフィールドが追加されました。

2021 年 XNUMX 月、国際標準化機構は SPDX 形式を SBOM 出版の国際的に認められた標準として認めました。 SPDX は、この偉業を達成した唯一の SBOM フォーマットです。

現在バージョン 2.2.2 となっている SPDX 仕様のオリジナル バージョンは、ソフトウェア ライセンス ポリシーへの準拠を容易にするために開発されました。後続のバージョンでは、ソフトウェアの脆弱性の特定など、幅広い使用例に役立つ機能がいくつか追加されています。

SPDX の最新バージョンは、NTIA の「ソフトウェア部品表の最小要素」標準に沿って設計されました。ソフトウェアのコンポーネント、著作権、ライセンス、セキュリティ参照がリストされています。

SPDX 形式の SBOM ドキュメントには、以下で強調表示されている特定のフィールドとセクションが含まれることが期待されます。

  • ドキュメント作成情報: この情報は、標準処理ツールとの互換性を判断するために使用されます。
  • パッケージ情報: パッケージ情報は、コンテナ、コンポーネント、製品など、ソフトウェア パッケージ内で同じコンテキストを共有する重要なエンティティを定義します。
  • ファイル情報: 各ファイルの名前、ライセンス、著作権情報など、ソフトウェア ファイルの識別情報。
  • スニペット情報: これは常に適用できるわけではありません。スニペット情報は、ソフトウェア データが別のソースからのものである場合にのみ必要です。

●  関係と注釈: SPDX 形式の SBOM は、ソフトウェア内で使用されるさまざまなドキュメント、ファイル、パッケージ間の関係も明確な注釈で示し、誰でもソフトウェア コンポーネントの関係を簡単に確認できるようにします。

SPDXサイクロンDX
情報: SPDX SBOM 形式は、ソフトウェア BOM の作成者、その作成方法、および SPDX ファイルの各バージョンの作成時期に関する情報を取得します。BOM メタデータ: CycloneDX 形式は、ソフトウェアの製造元/サプライヤーおよびターゲット コンポーネントに関する重要な情報をキャプチャします。これには、ライセンス情報や、部品表の作成に使用されるツールのメタデータも含まれます。
パッケージ情報: ソフトウェア パッケージ全体の共通プロパティに関連するデータが含まれます。コンポーネント: サプライ チェーン全体にわたるソフトウェアのすべてのコンポーネントの概要を示します。
ファイル情報: ソフトウェア パッケージに含まれるすべてのファイルに関するデータ。サービス: 外部 API、エンドポイント URL、認証要件の概要を説明します。信頼境界のトラバーサルおよびソフトウェアのその他の外部要件。
スニペット情報: ファイルの特定の部分に関連するデータ。依存関係: このフィールドは、ソフトウェアのさまざまなコンポーネント間の直接的および推移的な関係を概説します。
ライセンス情報: SPDX ライセンス リストに取得されていないライセンスに関するデータを取得するフィールド。拡張機能: 将来のユースケースや機能に役立つ拡張ポイントに関するデータを提供します。
SPDX 要素間の相関: このフィールドは、SPDX ドキュメントで詳述されているさまざまなファイル、ドキュメント、およびパッケージが相互にどのようにリンクされているかを示します。
注釈: SPDX 文書がどのようにレビューされたか、誰がいつレビューされたかを説明する追加情報。

SPDX と CycloneDX の違いは何ですか?

上で強調した 2 つの標準 SBOM 形式は、SBOM データの生成、共有、管理に使用できます。これにより、ユーザーはソフトウェア製品のコンポーネントに関する正確な情報を生成できます。 SPDX (Software Package Data Exchange) 形式は、主にオープンソース ソフトウェア ライセンスを管理し、パッケージに関する情報を共有する方法として設計されました。一方、CycloneDX を使用すると、ユーザーはソフトウェア コンポーネントに関する詳細情報を提供する SBOM (ソフトウェア部品表) を作成できます。

どの規格を使用するのが良いでしょうか?

選択した形式によって、SBOM ドキュメントの構造、そのコンポーネント、生成方法、およびユーザーとの共有方法が決定されるため、適切な SBOM 形式を選択することが重要です。 SBOM の生成 組織固有のニーズに基づいて。

SPDX と CycloneDX は非常に似たアプリケーションを持っていますが、本来の使用例の点では異なります。 SPDX 形式は、2011 年にライセンス管理ツールとして作成されました。現在でも、ソフトウェア システムのコンポーネントに関する詳細情報をサプライ チェーンに沿って人間と共有するのに役立ちます。これにより、この形式はソフトウェア開発の目的でより便利になります。

一方、CycloneDX (CDX) は、SBOM ドキュメントを生成することを主な目的として最近開発されました。これにより、ソフトウェア製品のすべての標準コンポーネントの詳細が記載されているため、より効率的な脆弱性管理ツールになります。 CycloneDX は軽量であるため、共有して迅速に処理できる機械可読なソフトウェア部品表を生成するための効率的なツールにもなります。

結局のところ、この 2 つのフォーマットの間に「より良い」フォーマットはありません。どちらを選択するかは、組織の特定のニーズと、生成する SBOM ドキュメントの使用目的によって大きく異なります。 

このコンテンツは、エンドツーエンドのソフトウェア サプライ チェーン セキュリティ ソリューションの大手プロバイダーである Scribe Security によって提供されており、ソフトウェア サプライ チェーン全体のコード成果物とコード開発および配信プロセスに最先端のセキュリティを提供しています。 詳しくはこちら。