本ブログは、What is an SBOM? (By Shane Coughlan) の参考訳です。

National Telecommunications and Information Administration (NTIA) は最近、最小限のソフトウェア部品表 (SBOM: Software Bill of Materials) を定義するために、幅広いレベルでのフィードバックを求めました。それは、単純な1つの質問(「SBOMとは何ですか?」)で構成されており、ソフトウェアのセキュリティに関する非常に重要なステップで、かつオープン スタンダードにとって重要な契機になるものです。

NTIAのSBOM FAQには、「ソフトウェア部品表 (SBOM) は、特定のソフトウェア、およびそれらの間のサプライチェーンの関係を構築(たとえば、コンパイルやリンク)するために必要なコンポーネント、ライブラリ、モジュールの完全で、かつ正確に構成されたリストです。これらのコンポーネントは、オープンソースでもプロプライエタリなものでよく、また無償のもでも有償ものでも構いません。SBOMデータは広く利用可能であったり、制限されたアクセスのみ許されたりするものです。」 SBOMはチームや企業の間で自由に共有できるもので、今後、数十年に渡って、クリティカルな産業とデジタルインフラストラクチャがソフトウェアを管理する上で、中核部分を構成します。

オープンソース ライセンス コンプライアンスに関するISO国際規格 (ISO/IEC 5230:2020 – Information technology – OpenChain Specification) では、提供されたソフトウェアの部品表を管理するプロセスを求めています。 これは、ソフトウェアの透明性をより高めるというNTIAの目標とも一致しており、グローバルな業界がこの分野の課題にどのように取り組んでいるかを示す良い例にもなっています。 たとえば、これらの資料をオープンソースと分離して提供するのではなく、提供されるソフトウェアのすべてのコンポーネントに対するSBOMをソフトウェアに含めて提供することがベストプラクティスになっています。

オープンソース コミュニティは、10年以上前に、SBOM、すなわち「成分リスト」の必要性を認識し、その課題に取り組み始めました。 事実上の業界標準となり、今日もっとも広く使用されているアプローチが、Software Package Data Exchange (SPDX) と呼ばれるものです。 今日のSPDXはNTIAが提案した最小限のSBOMの定義のすべての要素を満たしており、広範なユースケースも持っています。

SPDXは、過去10年間、ソフトウェア業界に適合させながら有機的に進化し、ライセンス コンプライアンスやセキュリティなどの問題を取り扱うために使用されてきました。 コミュニティは数百の企業に所属する数百人の参加により構成されており、SPDX標準は、今日、市場で最も堅牢で成熟した、最も多く採用されているSBOMとなっています。

SPDXのスペシフィケーション自体は、全体像の一部にすぎません。 Pioneer、Sony、Hitachi、Renesas、Fujitsuなどによって開発されたSPDX Liteなどのオプション コンポーネントは、小規模なサプライヤーが使用することを狙ったSBOMのサブセットを提供します。 SPDXスペシフィケーションの背景に存在するコミュニティ主体のアプローチ方法により、実用的なユースケースが出てきた場合は、それに合わせて柔軟に対応することができます。

2020年に、SPDXは、Joint Development Foundationと協力して、Joint Technical Committee 1 (JTC1) のPAS Transposition Processを介してISOに提出されました。 現在、Transposition Processの承認フェーズにあり、ISO Webサイト上で、ISO/IEC PRF5962としてその状況をレビューすることができます。

Linux Foundationは、SPDXおよびOpenChainコミュニティでのSBOMの使用とディプロイメントの実績から得られた知識と経験を元にNTIAに提案することを計画しています。これには、タイムスタンプのトラッキングやメタデータ内のライセンスの組み込みなど、特定のアクションを分離することが含まれています。 世界中のテクノロジー業界の多くの関係者の支援を受けて、SPDX、およびOpenChainの仕様は、すべてのステークホルダーをサポートするために絶えず進化しています。

業界からのコメント

「Sonyのチームは、オープンソースのコンプライアンスとガバナンスを推進してくために、さまざまなアプローチを採用しています。たとえば、SPDX標準のコンパクトなサブセットであるSPDX Liteに基づいた、OSSマネージメント テンプレート シートを使用しています。 チームは、ソフトウェアのタイプ、バージョン、および使用条件を迅速に確認する必要があり、明確な標準を使用することがこのプロセスのキーになっています。」
– Hisashi Tamai, SVP, Sony Group Corporation, Representative of the Software Strategy Committee

「IntelはSPDX仕様の開発に早い段階から参加しており、SPDXや他のアプローチを社内外の多くのオープンソース ソフトウェアのユースケースで活用しています。」
– Melissa Evers, Vice President – Intel Architecture, Graphics, Software / General Manager – Software Business Strategy

「Scaniaの企業標準4589(STD 4589)は、当社のサプライヤーが利用できるようになったばかりですが、オープンソースがScaniaにデリバリーされるものの一部を構成している場合、Scaniaがサプライヤーに期待するものを定義しています。 では、オープンソースに関して、サプライヤーとの関係で私たちが求めているものは何でしょうか?

1)サプライヤーがISO / IEC 5230:2020(OpenChain)に準拠していること。 サプライヤーがこの仕様に準拠している場合、彼らがオープンソースに対する専門的なマネージメント プログラムを持っていると確信できます。

2)Scania向けのソリューションを開発する過程で、サプライヤーがオープンソース コンポーネントに変更を加えた場合、それらの変更がオープンソース プロジェクトにコントリビューションされることを望んでいます。

3)部品表をISO / IEC DIS 5962(SPDX)形式で提供することを求め、それに加えて、サプライヤーにソースコードを直接提供する義務がある場合は、同時に、ソースコード提供も求めています。従って、別にそれを要求する必要がないようにしています。」
– Jonas Öberg, Open Source Officer – Scania (Volkswagen Group)

「SPDX形式は、サプライチェーン全体でのソフトウェア コンポーネント データの共有を大幅に促進します。 Wind Riverは、過去8年間、SPDX形式を使用してソフトウェア部品表(SBOM)を顧客に提供してきました。 しばしば、顧客は固有形式のSBOMデータを要求することがありますが、標準化されたSPDXで、より高品質のSBOMを、より低コストで提供できるようになりました。」
– Mark Gisi, Wind River Open Source Program Office Director and OpenChain Specification Chair

「SynopsysのBlack Duckチームは、SPDXに最初から関わってきました。私は、10年以上にわたってプロジェクトのリーダーとして活動をまとめてきたことを光栄に思っています。 さらに、多数の企業の方々が、ソフトウェア パッケージのコンテンツの記述、および情報交換のための標準的な方法を開発するという重要な作業にコントリビュートしてきました。」
– Phil Odence, General Manager, Black Duck Audits, Synopsys

「ソフトウェア部品表が対応に役立つことができるサプライチェーンのさまざまなリスクに対して、関心が急速に高まってきているのにともない、SPDXはより幅広い注目を集め、緊急性の高い重要なものになっています。 FossID(現在はSnykの一部)は、ソフトウェア コンポーネント分析とオープンソース ライセンス監査の一部に、最初からSPDXを使用してきました。 SnykもSPDXに対する関与を強化しており、SPDX v3.0の脆弱性プロファイルに関して試行ツールを構築し、SPDXのユースケース拡大に取り組むことにより、コントリビュートしています。」
– Gareth Rushgrove, Vice President of Products, Snyk

OpenChainの詳細については、https://www.openchainproject.org/ を参照してください。

SPDXの詳細については、https://spdx.dev/ を参照してください。

参考:

  1. https://www.ntia.gov/files/ntia/publications/frn-sbom-rfc-06022021.pdf
  2. https://www.ntia.doc.gov/files/ntia/publications/ntia_sbom_faq_-_april_15_draft.pdf
  3. Section 3.1.1 “Bill of Materials” https://github.com/OpenChain-Project/Specification/raw/master/Official/en/2.1/openchainspec-2.1.pdf
  4. https://www.openchainproject.org/news/2020/02/24/openchain-spdx-lite-credit-where-credit-is-due