はじめに
こんにちは。OpenChain Japan Advent Calender 2024の11日目を担当する忍頂寺です。Automation Sub-WGのリードをしています。Automation Sub-WGは、オープンソース活用のプロセスマネジメントにおけるオートメーションに関心を持つ人たちの集まりです。このSub-WGは、10日目を担当された @nori0428 さんがリードする SBOM sbu-WG と合同で活動しています。2024年はSPDX3.0仕様策定に向けた Lite Profile の提案が合同での主要な活動テーマの一つでした。ISO化のベースとなる予定のSPDX 3.0.1にLite Profileを提案し採択されるなど一定の目標を達成しています。
この記事では、SBOMに関する議論のために共有している資料等を紹介します。
SBOM Element Comparison
法令、標準、ガイドラインなどが要求するSBOMの情報要素を比較検討し、それらをSBOMデータフォーマットにマッピングしています。
この検討は個人的な動機で始めたもので、多様な要求に対応出来るような統一的なデータ項目のセットを明らかにしつつ、データフォーマットに依らないSBOMの相互運用のためにはデータ項目毎の相互変換を可能とする対応付をしたい、というものです。
CISA Baseline Attributes をデータ項目の基礎として、それに対応するSPDXのいわばサブセットとして OpenChain Telco SBOM Guide (ISO/IEC 5962:2021 (SPDX 2.2.1), SPDX 2.3) や SPDX Lite (SPDX 3.0 Lite Profile) の有効性を確認しています。現行の SPDX 2系でOpenChain Telco SBOM Guide を考慮しておくと、将来SPDX 3系への円滑な移行が期待されます。
CycloneDXについて、OpenChain Telco SBOM Guide や SPDX Lite に相応するサブセットの提案はまだ見当たらないと思われますが、この比較検討ではデータ項目毎の対応付を行っています。
2025年以降は、それぞれのデータ項目についてその具体的な表現などのベストプラクティスを整理していく可能性があります。
検討対象としている法令等 (2024年12月現在)
- NTIA. Minimum Elements for Software Bill of Materials
- CISA. Framing Software Component Transparency (Third ed. 2024)
- BSI. Technical Guideline TR-03183-2 (2.0.0. 2024)
- IMDRF. Principles and Practices for Software Bill of Materials for Medical Device Cybersecurity
- FDA. Cybersecurity in Medical Devices: Quality System Considerations and Content of Premarket Submissions
- PCI. PCI-DSS v4.0, PCI-SSF v1.2.1
- OpenChain Telco SBOM Guide v1.0
SBOMデータフォーマット
- SPDX 2.2.1 (ISO/IEC 5962:2021)
- SPDX 2.3
- SPDX 3.0.1 (Lite Profile)
- CycloneDX 1.6
現状、Google Spreadsheet で整理し、コミュニティで随時更新しています。活用の際は最新版を確認するようにしてください。READMEの編集履歴が変更履歴を必ずしも反映できていない場合があります。ある程度の安定版の見込みが立てば、GitHubなどでの管理に移行すると思われます。追記や不明点などの指摘があれば、リンク先のスプレッドシートにてコメントを頂けると幸いです。
Open Source Summit、OpenChain Project、SPDX Project などでの発表など
2024年は次のように5回ほどコミュニティで話す機会がありました。ただ、回を追う毎に、すなわち、発表時期によって内容に更新があります。そこで、一連の資料を活用頂く際の留意事項を紹介します。
- SBOM Implementation Reality - from Crawl to Walk, the SPDX Lite Profile for the First Step - Norio Kobota, Sony Group Corporation & Takashi Ninjouji, Toshiba Corporation (OSSEU2024, September 16, 2024)
- OpenChain Japan Community Day #32, Part2 "SBOM動向" (October 17, 2024. PDF)
- Overview of varous regulations and guidelines, and What is needed for future discussion (OpenChain SBOM Study Group, October 23, 2024. PDF)
- SBOM Implementation Reality: From Crawl to Walk - SPDX Lite Profile for the First Step - Norio Kobota, Sony Group Corporation & Takashi Ninjouji, Toshiba Corporation (OSSJ2024, October 28, 2024)
- Considerations about SBOM & VEX Practical Guide (November 14, 2024. PPTX. OpenChain SBOM-SG での検討用に共有)
- Comparing SBOM Requirements and Mapping to SPDX (SDPX Project, General Meeting, December 6, 2024. PDF)
項番1は項番4と同じタイトルで同じアブストラクトです。どちらも @nori0428 さんと共同発表したものです。更新を含む項番4の方をご覧頂ければと。
項番2は、上記の中で唯一の日本語の資料で、2024年9-10月頃のSBOM動向を俯瞰するトピックを扱っています。AppendixにあるVEXのフォーマットトレンドでCSAFに言及していますが、2024年12月現在は CSAF の VEX Profile の運用事例も見られるようになっています。
項番3は、後半で、CISA. Framing Software Component Transparency (Third ed. 2024) とBSI. TR-03183-2 (2.0.0) について、次を比較しその差分と検討事項を挙げています。
- CISA Maturity Levels と BSI Level of Details
- CISA Baseline Attributes と BSI data fileds
項番4は、項番1と比較して、BSI. TR-03183-2 (2.0.0)と、Framing Software Component Transparency (Third ed. 2024) の公開を踏まえて更新しています。そのため、項番4をご覧頂いていれば、項番1までを見る必要はありません。
項番5は、SBOM Study Group でのディスカッション用に共有した資料です。特定の会議で発表したというものではありません。ただ、SBOM や VEX について、企業実務に即した検討とそれに基づくベストプラクティスの共有やガイドラインの整備を図ること、そのときの考慮事項などを挙げています。
項番6は、BSI TR-03183-2 が要求する事項に掛かるSPDXへのマッピングに関する検討を更に更新しています。
この発表はSPDXコミュニティ向けのもので、次のトピックを扱いました:
- CISA Baseline Attributes はライセンスコンプライアンス実務の観点でも有用な要素を提示している
- 産業や企業は独自のSBOM要件を検討する前に、この Baseline Attirbutes で十分にカバーできているかどうかを検討すべき (独自のSBOM要件の拡張には慎重になってほしい)
- OpenChain Telco SBOM Guide (ISO/IEC5962:2021(SPDX 2. profile2.1), SPDX 2.3)、SPDX Lite (SPDX 3.0 Lite) は CISA Basseline Attributes をカバーしているSPDXのデータセットになっており有用
今後、取り組むべき課題:
- SPDX 2系と3系との共存に考慮しつつ3系への移行できるようにツールを含むエコシステムの整備と発展
- SBOMで扱うべき情報について、より具体的な表現内容の整理検討、及び具体的な作成手順の明確化
- 前記SBOMで扱うべき情報では、さらに、SBOM Type、また、コンテナやSaaSなどのソフトウェアシステムの態様なども考慮すべき
また、資料では明確にしていませんが、SBOMとVEXの運用類型についてSBOMとVEXの更新頻度やそれらが扱う情報の特性を考慮すれば、次のような運用も候補かとの私見を述べました:
- SBOMとVEXをそれぞれ個別のデータファイルとして運用する (下図の File: Separate, Link: None)
- SBOMとVEXの共有用のシステムを用意して、検索性の確保や関連付けを行う (SBOMやVEXについて内部に明確な関連付け情報を持たせない)
参考までにですが、上記の考え方に沿うならば、EOL (End of Life) や EOS (End of Service) といった EOX (End of X) のようなデータについても、VEXと同様にSBOMとは別個に管理運用して、SBOMと関連付けて共有する仕組みを検討することがあっても良さそうに思われる次第です。
おわりに:2025年に向けて
複雑化するソフトウェアサプライチェーンでは、SBOMについて何らかの統一的な手段で対応できればと思うところです。その一方で、対象となるソフトウェアシステムによっては特有の作法を必要とすることになるかも知れません。オープンソースコミュニティでその動向に関与できる場合は、当事者からの参加が有効なのは言うまでもありません。
より実務的な観点でSBOMそのものの情報内容や表現、サプライチェーンで共有して活用するための手段などについて議論し、現時点のものの更新も含めてベストプラクティスの共有やコンセンサス形成が重要になりそうです。自動化や省力化に向けたツールやワークフロー構築に関連する話題も多くなるでしょう。また、OpenSSFやCNCFといったLinux Foundation関連の取組だけではなく、OWASP、OASIS、FIRSTや産業別ISACなどセキュリティ関連の取組とも交流することが重要になりそうです。
明日(2024年12月12日)は、Education SW リーダの小泉さんの記事になります。お楽しみに。