昨今のソフトウェアサプライチェーンリスクの高まりから、ソフトウェアの構成管理と脆弱性管理が求められてきている中、その手段としてSBOM(Software Bill of Materials)に注目が集まっています。
では、SBOMとはどのようなものなのか、そのフォーマットについて解説していきます。
目次
SBOMはソフトウェアに含まれるOSSなどのコンポーネントを適切に管理するためのものです。その役割から、基本情報として以下のような情報を含みます。
ソフトウェア名 | ソフトウェアの名称 |
---|---|
バージョン情報 | ソフトウェアの特定のリリースやビルドを識別するためのバージョン番号 |
ライセンス情報 | ソフトウェアコンポーネントが使用するライセンスの種類 |
ベンダー名 | ソフトウェアの開発ベンダー |
サプライヤー情報 | ソフトウェアコンポーネントの提供元 |
依存関係 | ソフトウェアが依存する他のコンポーネントやライブラリ |
ハッシュ値 | ソフトウェアの完全性を保証するための数値 |
ビルドツールと環境 | ソフトウェアをビルドするために使用されたツールや環境に関する情報 |
脆弱性情報 | ソフトウェアコンポーネントに関連付けられる既知の脆弱性情報 |
現在広く知られているSBOMのフォーマットとして、SPDX、CycloneDX、およびSWIDタグがあります。これらは米国大統領令に基づきNTIAが公開したSBOMの最小要素を示す資料の中で例示されていることも大きく影響しています。それぞれのフォーマットは独自の特徴と適用分野を持ち、利用者が目的に合わせて選択することができます。
SPDXはソフトウェアパッケージのコンポーネント、ライセンス、著作権などの情報を標準化するフォーマットです。
CycloneDXは軽量なSBOMフォーマットで、セキュリティ脆弱性管理やコンポーネントのリスク評価に適しています。
SWIDタグはソフトウェア製品の一意性とそのライフサイクルに関する情報を記述するためのフォーマットです。
ここでは、SBOMの各フォーマットがどういった産業やコミュニティ内で利用されているかを見ていきます。
組織は、自身の特定のニーズ、産業界の慣習、および利用可能なリソースを考慮して、最適なSBOMフォーマットを選択する必要があります。たとえば、オープンソースソフトウェアの広範な利用がある場合、SPDXが適しているかもしれません。セキュリティ脆弱性とその対策が主要な関心事であれば、CycloneDXが有効な選択肢になります。一方、ソフトウェア資産管理とライセンスコンプライアンスが最優先事項であれば、SWIDタグの採用が推奨されます。
ここではSPDX、CycloneDX、およびSWIDタグといった主要なフォーマットの各々の利点と欠点を掘り下げて見ていきます。
強み | 弱み | |
---|---|---|
SPDX | 詳細なライセンス情報の管理Linux Foundationの支援による広範なサポートと採用実績 | セキュリティ関連の情報が限定的大規模プロジェクトでの管理の複雑さ |
CycloneDX | 詳細なセキュリティ情報の管理軽量さ他ツールやシステムとの連携しやすさ | ライセンス情報が少ない採用実績 |
SWID | ソフトウェアの資産管理国際標準規格準拠(ISO/IEC) | セキュリティ関連の情報が限定的要件が複雑で導入障壁が高い |
SPDX、CycloneDX、およびSWIDタグなどの既存フォーマットは、業界のフィードバックと新たなセキュリティ要件に基づいて継続的に更新されています。SPDXの最新バージョンは2.3ですが、現在3.0のRC版仕様が公開されています。CycloneDXの最新バージョンは1.5となっており、1.6へ向けた検討が進んでいます。
一方で、業界主導でフォーマットの活用も進んでいます。トヨタ自動車はOpenChain Project Japan Work Groupの中でSPDX Liteと呼ばれるフォーマットを活用しており、サプライチェーンの各社にSPDX LiteでのSBOM提出を求めています。このように、運用や要件に合わせて新たなSBOMフォーマットが今後も登場してくる可能性があります。
このように、どのフォーマットがデファクトになるのか、現時点では不透明な状況です。グローバルの動向や国内の規制等で事態が急変する可能性もありますが、今は自分達に合ったフォーマットを利用しつつ、他のフォーマットも押さえておくというスタンスが良いのではないかと思います。ツールを利用すれば、作成コストも抑えられますので、ツール選定においてどのフォーマットに対応しているかは重要なポイントとなってきます。
弊社サービスSBOMスキャナなら、自動でSBOM生成・脆弱性診断が可能です