ソフトウェア部品表

SBOM(Software Bill Of Materials)とは、ソフトウェアアプリケーションのすべてのコンポーネント、依存関係、およびライセンスの構造化されたインベントリである。 コンポーネント名、バージョン、ライセンス、脆弱性、依存関係などの詳細なメタデータを提供し、企業がセキュリティ、コンプライアンス、リスク管理のためにオープンソースやサードパーティのソフトウェアを追跡できるよう支援する。

標準化されたフォーマット(SPDX、 CycloneDX )でSBOMを簡単にエクスポートしたり、VEXデータを使用しながらサードパーティのSBOMをインポートして、政府や顧客の要件を満たすことができます。

パイプラインの実行中、SBOMを生成するために使用されるツールがある。 SBOMを生成するために現在利用可能なツールは以下の通りである:

パッケージSBOMとは?

パッケージSBOMは、ソフトウェアプロジェクトで使用されるすべてのパッケージに関するすべての情報を詳述する。 使用する各パッケージのバージョン、ライセンス、脆弱性に関する情報を提供する。 パッケージSBOMはマイクロサービスレベルで生成され、SBOMはアーキテクチャ内の各マイクロサービスに対して生成される。

SBOMライフサイクル

SBOMライフサイクルは、マイクロサービスのデプロイのすべてのステップ(CI,CD,CCパイプラインの実行)にまたがる。

  • 継続的インテグレーション(CI)パイプライン - CIパイプラインの実行中に、ビルドされたマイクロサービスごとにSBOMが生成される。
  • 継続的デプロイメント(CD)パイプライン - CDパイプラインの実行中に、すべてのデプロイされたマイクロサービスに対してリリースSBOMが生成されます。
  • 継続的コンプライアンス(CC)パイプライン - CDパイプラインの実行が完了した後、CCパイプラインはデプロイされたアプリケーションを継続的に監視します。 CCパイプラインの実行中に、CIパイプラインの各マイクロサービスに対して生成されたSBOMが取得され、スキャンされる。

SBOMのライフサイクル
SBOMのライフサイクル

継続的インテグレーション・パイプラインにおけるSBOMライフサイクル

継続的インテグレーション・パイプラインは、アプリケーション・リポジトリからデプロイ可能な成果物を構築する。

CI パイプラインが code-compliance-checks ステップで実行されると、CRA が実行され、デプロイされた成果物が作成されるリポジトリのパッケージ SBOM が作成される。 このパッケージSBOMには、CIパイプラインでビルドされる各マイクロサービスで使用されるパッケージに関する情報が含まれている。 各パッケージのライセンス、バージョン、脆弱性に関する情報を提供する。

このパッケージSBOMは、本番へのデプロイ時にさらに使用できるように、パイプラインのエビデンスロッカーに格納される。

継続的デプロイメント・パイプラインにおけるSBOMライフサイクル

継続的デプロイメントパイプラインは、すべての証拠を収集し、変更要求の要約コンテンツを生成する。

本番環境へのデプロイがCDパイプラインを通じて行われるとき、エビデンスロッカーに格納されているパッケージSBOMがフェッチされる。 これらのSBOMは、リリースSBOMを形成するために集約される。 リリースSBOMは、変更要求の添付ファイルとして追加される。

継続的コンプライアンス・パイプラインにおけるSBOMライフサイクル

継続的コンプライアンスパイプラインは、本番環境へのデプロイ後に、デプロイされた成果物とそのソースリポジトリの脆弱性を定期的にスキャンする。

CCパイプラインが実行されると、CIパイプラインの実行中に生成された、以前に保存されたパッケージSBOMをエビデンスロッカーから取得する。 CCパイプラインはパッケージSBOMを再作成しない。

SBOM検証用ユーティリティ

パイプラインが実行されると、 SBOM が、 standardcyclonedx の両方のフォーマットで、 com.ibm.code_bom_check エビデンスの添付ファイルとして追加される。

sbom-utility ツールは、メタデータに含まれているかどうかを確認するために、一連のデフォルトおよびカスタムチェックを完了することによってSBOMを検証する:

  • データを含むSBOMのルートレベルのコンポーネント
  • タイムスタンプ
  • 各コンポーネント・フィールドの namebom-ref

SBOM 検証のために証拠を収集するには、 sbom-validation-collect-evidence1 に設定する。 証拠は、証拠タイプとツールタイプを sbom-utility として、 com.ibm.code_bom_check の添付ファイルとして収集される。

詳細については、 sbom-utility ツールのドキュメントを 参照してください。