ソフトウェア部品表(SBOM)は、ソフトウェア プロジェクトで使用されるコンポーネントと依存関係の詳細なインベントリを提供する文書です。ソフトウェア内で利用されているすべてのライブラリ、フレームワーク、およびそれぞれのバージョンも記載されています。オープン ソース ソフトウェア(OSS)に関して、SBOMは透明性、セキュリティ、コンプライアンスを保証する上で重要な役割を果たします。
特にOSSでは、SBOMを使用することにより、組織はコンポーネントと依存関係の可視化や、リスク管理の改善などが可能になります。これらの利点について説明していきます。
多くの場合、OSSには、さまざまなサードパーティのコンポーネントや依存関係が組み込まれています。SBOMによって、開発者とユーザーは、ソフトウェアで使用されているすべてのコンポーネントを明確に可視化することができます。これには、オープン ソースのライブラリやフレームワーク、およびそれらのバージョンが含まれます。この可視性は、ソフトウェアの構成を理解し、潜在的な脆弱性を特定し、オープン ソース コンポーネントに関連するライセンス義務を追跡するのに役立ちます。
OSSは、他のソフトウェアと同様に、セキュリティ脆弱性の影響を受けやすい可能性があります。SBOMを使用することで、組織はオープン ソース コンポーネントのバージョンを追跡し、それらのバージョンに関連する既知の脆弱性について常に情報を得ることができます。これにより、セキュリティ上の懸念を緩和して報告するためのパッチやアップデートを迅速に適用して、脆弱性をプロアクティブに管理することが可能になります(RFC8615を参照)。組織は、最新のSBOMを所持することで、脆弱性の影響を評価し、ソフトウェアの安全性を確保するための適切な対策を講じることができます。
近年では、ソフトウェアのサプライ チェーン セキュリティが重要な問題となっています。SBOMは、ソフトウェアに使用されているコンポーネントとその提供元に関する透明性を提供することで、サプライ チェーン セキュリティを強化するのに役立ちます。また、組織が利用するコンポーネントの信頼性とセキュリティ体制を評価することもできます。SBOMを使用することで、組織は侵害されたコンポーネントや悪質なコンポーネントに関連するリスクを特定して軽減し、ソフトウェア サプライ チェーン攻撃の可能性を減らすことができます。
OSSでは、コラボレーションとコミュニティへの参加が奨励されています。SBOMは、他の貢献者や利害関係者間でソフトウェアのコンポーネントに関する理解を統一することにより、効果的なコラボレーションを促進します。更新や修正が必要なコンポーネントを明確に特定することで、パッチ管理作業の調整を支援します。すべての参加者が共通のSBOMを参照してセキュリティ脆弱性や他の問題に対処できると、オープン ソース コミュニティ内でのコラボレーションがより効率的になります。
一部の業界では、規制の枠組みにより、アプリケーションまたはシステムで使用されるソフトウェア コンポーネントの透明性と制御を実証することを組織に義務付けています。SBOMは、これらのコンプライアンス要件を満たすために必要な文書を提供します。これにより、組織は、特にOSSのセキュリティとライセンスの側面に関して、デュー デリジェンス、トレーサビリティ、および関連する規制へのコンプライアンスを証明することができます。
OSSは通常、ソフトウェアの使用、変更、および配布方法を規定する特定のライセンスによって統制されています。SBOMは、すべてのオープン ソース コンポーネントとそれぞれに対応するライセンスの包括的な概要を提供します。これは、組織が使用しているOSSのライセンス条項への遵守を保証する上で役立ちます。組織は、ライセンス契約の義務を理解することで、法的またはコンプライアンス上の問題を回避しながら、ソフトウェアの配布と使用について情報に基づいた決定を下すことができます。
一部の国の政府、および銀行取引や医療などの規制の厳しい業界の組織は、SBOMの使用を提唱したり、社内またはサプライヤに対してSBOMの使用を義務付けることを検討しています。
SBOMを構築するには、ソフトウェア サプライ チェーン全体にわたる、さまざまな利害関係者の連携と関与が必要です。これらの利害関係者を関与させ、利害関係者間の連携を促進することで、組織は、ソフトウェア コンポーネントに関する必要な情報を取得し、サプライ チェーン セキュリティを強化し、リスク管理とコンプライアンスの取り組みを促進し、堅牢で信頼性の高いSBOMを構築できます。
以下に、このプロセスに関与すべき主要な個人または役割を示します。
組織は、ソフトウェア コンポーネント、その提供元、依存関係、および関連するセキュリティ情報の包括的な見解を示すSBOMを作成することを目指す必要があります。これにより、ソフトウェア サプライ チェーン リスクの管理を向上させ、全体的なソフトウェア セキュリティを強化することができます。
SBOMを作成する際の主な手順を以下に示します。
SBOMが失敗したり、意図した目的を果たせなかったりすることもあります。これらの課題に対処し、SBOMの正確性、完全性、および最新性を確保することが、失敗のリスクを軽減する上で役立ちます。
SBOMの作成時によくある失敗の原因をいくつかご紹介します。これらは、ベスト プラクティスに反映されています。
全体として、SBOMはOSSの複雑さを管理するための重要なツールです。これによって、オープン ソース エコシステム内の透明性、セキュリティ、コンプライアンス、および連携が促進されます。SBOMにより、ソフトウェア コンポーネント、そのバージョン、および関連するライセンス情報の詳細なインベントリが提供されるため、組織は、情報に基づいて決定を下し、リスクを管理し、ソフトウェア プロジェクトの完全性とセキュリティを確保することが可能になります。