概要
CycloneDX オブジェクトモデル
- JSON Schema、XML Schema、および Protocol Buffers で定義されています
- 指定的で簡単に使用できます
- SBOM、SaaSBOM、AI/ML-BOM、CBOM、VEX などの xBOM ユースケース向けに設計されています
- 複雑な関係を簡単に記述できます
- 特殊なユースケースや将来的なユースケースをサポートするために拡張可能です
BOM メタデータ
BOM メタデータには、サプライヤー、製造者、および BOM が記述する対象コンポーネントが含まれます。また、BOM を作成するために使用されたツールや、BOM ドキュメント自体のライセンス情報も含まれます。
コンポーネント (Components)
コンポーネントは、ファーストパーティおよびサードパーティのすべてのコンポーネントの完全なリストを記述します。この仕様では、ソフトウェア、ハードウェアデバイス、機械学習モデル、ソースコード、設定情報を表現できます。さらに、製造者情報、ライセンスや著作権の詳細、各コンポーネントの系譜や出所情報を記述できます。
サービス (Services)
サービスは、ソフトウェアが呼び出す可能性のある外部 API を表します。エンドポイント URI、認証要件、信頼境界の移動を記述します。また、ソフトウェアとサービス間のデータフローを説明し、データ分類やフローの方向を特定できます。
依存関係 (Dependencies)
CycloneDX は、コンポーネントとその他のコンポーネントへの依存関係を記述する機能を提供します。依存関係グラフは、直接的および間接的な関係を表すことができます。また、サービスに依存するコンポーネントや、他のサービスに依存するサービスもグラフで表現できます。
構成 (Compositions)
構成は、構成要素(コンポーネント、サービス、依存関係)とその完全性を記述します。各構成の集合体は、完全、部分的、ファーストパーティのみの部分的、サードパーティのみの部分的、不明として記述できます。
#脆弱性 (Vulnerabilities)
サードパーティやオープンソースソフトウェアの使用により継承される既知の脆弱性や、それらの脆弱性の利用可能性を CycloneDX で伝達できます。さらに、コンポーネントやサービスに影響を与える未知の脆弱性も CycloneDX を使用して公開可能で、脆弱性開示や VEX ユースケースに最適です。
製造プロセス (Formulation)
製造または展開された方法を記述します。CycloneDX は複数のフォーミュラ、ワークフロー、タスク、ステップをサポートし、再現性のための宣言された製造プロセスや、実際の製造過程で行われた行動を表現します。
注釈 (Annotations)
注釈は、コメント、メモ、説明など、注釈対象に追加のコンテキストを提供するテキスト内容を含みます。これらは、ツールによる自動生成や、人や組織による手動レビューの結果として BOM に追加されることがよくあります。注釈は、デジタル署名を使用して独立して署名および検証することが可能です。
定義 (Definitions)
標準、要件、レベル、およびすべてのサポート文書がここで定義されます。CycloneDX は、ほぼすべての種類の標準を機械判読可能な形で定義する一般的な方法を提供します。OWASP ASVS、MASVS、SCVS、SAMM などのセキュリティ標準が CycloneDX 形式で利用可能です。他の団体による標準も利用可能で、組織は内部標準を作成し、それを CycloneDX で表現できます。
宣言 (Declarations)
宣言は標準への適合性を記述します。各宣言には、証明書、主張、反主張、証拠、反証、適合性および信頼性が含まれる場合があります。署名者を宣言し、デジタル署名やアナログ署名の両方をサポートします。宣言は「コードとしてのコンプライアンス」の基盤を提供します。
拡張機能 (Extensions)
CycloneDX オブジェクトモデルには複数の拡張ポイントが存在し、新しい機能の迅速なプロトタイプ化や、特殊なユースケースや将来のユースケースをサポートします。CycloneDX プロジェクトは、コミュニティ全体に利益をもたらす拡張機能を維持しており、専門的または業界特化のユースケースをターゲットにした拡張機能の開発をコミュニティに奨励しています。
高レベルオブジェクトモデル
CycloneDX オブジェクトモデルのスイムレーン(概要図)。
登録済みメディアタイプ
以下のメディアタイプは IANA に正式登録されています:
メディアタイプ フォーマット 割り当て元
application/vnd.cyclonedx+xml XML IANA
application/vnd.cyclonedx+json JSON IANA
特定の CycloneDX バージョンは、バージョンパラメータを使用して指定できます。例:application/vnd.cyclonedx+xml; version=1.6
Protocol Buffer フォーマット用に公式にサポートされているメディアタイプは application/x.vnd.cyclonedx+protobuf です。
認識されるファイルパターン
CycloneDX BOM ファイルを保存するために慣例的に使用されるファイル名:
JSON エンコードの場合: bom.json
XML エンコードの場合: bom.xml
また、以下のグロブパターンに一致するファイルも認識されます:
*.cdx.json(JSON エンコード)
*.cdx.xml(XML エンコード)
認識される述語タイプ
ソフトウェアサプライチェーンの多くのツールは、実行時に証明をキャプチャします。述語は証明に関するメタデータを含みます。in-toto などのツールは、述語タイプを使用して述語の主題に関するコンテキストを提供します。OWASP は、CycloneDX の BOM バリエーション(SBOM、SaaSBOM、HBOM を含む)の公式述語タイプとして https://cyclonedx.org/bom を認識しています。