目次
1.CRAが求めるSBOMとは?
EUサイバーレジリエンス法(CRA)では、ソフトウェア部品表(SBOM)の作成が義務付けられています。しかし、具体的にどのような情報を、どのような形式で準備すればよいのか、不明瞭な点も少なくありません。
CRAのANNEXⅠ PartⅡ(1)には、次のように記載されています。
identify and document vulnerabilities and components contained in products with digital elements, including by drawing up a software bill of materials in a commonly used and machine-readable format covering at the very least the top-level dependencies of the products;
(日本語訳)デジタル要素を含む製品に含まれる脆弱性やコンポーネントを特定し、文書化すること。これには、少なくとも製品の最上位レベルの依存関係をカバーする、一般的に使用され、機械可読な形式でのソフトウェア部品表の作成も含まれます。
この記述は抽象的ですが、「ソフトウェア部品表(Software Bill of Materials)」がSBOMを指すことは明白です。CRAの詳細な要求事項は2025年3月時点では未公開ですが、EU域外の文書も含め、SBOMに関する情報を参照することで、CRAが求めるSBOMの姿を推測できます。
2.EUのCRA以外も含めたSBOMに関して記載された文書
SBOMに関してCRA以外で言及している文書にはどのようなものがあるでしょうか?
昨今では様々な組織からSBOMに関わる文書が公開されていますが、その参照元をたどるといくつかの文書がもとになっていることがわかります。また、EUに属する国の政府機関が発行している文書が参考にできると考えられます。
今回はこれらのうち下記の文書を確認しています。
- NTIA(米国商務省電気通信情報局): “The Minimum Elements For a Software Bill of Materials (SBOM)” https://www.ntia.gov/report/2021/minimum-elements-software-bill-materials-sbom
- ドイツ連邦情報セキュリティ庁(BSI): “BSI TR-03183: Cyber Resilience Requirements for Manufacturers and Products” https://www.bsi.bund.de/EN/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/Technische-Richtlinien/TR-nach-Thema-sortiert/tr03183/TR-03183_node.html
CRAの要件における表現として、SBOMについては「一般的に使用され、機械可読な形式で」とあることから、世の中的にある程度標準化されたフォーマットであることが要求されていることがわかります。
NTIAの文書ではSBOMの最小要素が定義されており、これらの要素をサポートしていることが望ましいと考えられます。
3.NTIA文書が示すSBOMの最小要素
データ項目
- サプライヤー名
- コンポーネント名
- コンポーネントのバージョン
- その他の一意の識別子
- 依存関係
- SBOMデータの作成者
- タイムスタンプ
データ形式
- 自動化サポートという表現で書かれていますが、自動生成や機械可読性などの自動化をサポートできるようにするため、SBOMの生成と使用に使用されるデータ形式として、SPDX,CycloneDX,SWIDタグなどが挙げられています。
運用や操作に関わる要素
- SBOMを生成・維持する上での考慮事項として、「既知の未知」(Known Unknowns)の概念があります。これは、SBOMにリストアップされたコンポーネントが全てであるか、他に存在する可能性があるかといった情報を含めることを意味します。
- 「誤りの許容」(Accommodation of Mistakes)も重要な考慮事項です。これは、現時点では完全なSBOMを作成することが困難であることを規格作成側が認識しており、利用者に対し、SBOMに誤りが含まれる可能性を許容することを求めています。
4.ドイツBSI文書から読み解く「最上位レベルの依存関係」
CRAのSBOMに関する要件の一部として、「少なくとも製品の最上位レベルの依存関係をカバーする」といった表現が含まれています。
上記を踏まえて具体的なCRAの対象製品においてはどういったSBOMを作成していくことになるのかを整理してみます。
一般的にCRAの対象となっている製品においては、複数のユニットで構成されており、それらには複数のマイコンやファームウェアが搭載されていることが多いと思います。
例えば製品Aが下記のような構造になっていたとします。この場合、CRAではどういったSBOMを作成する必要があるのでしょうか。

CRAでは「少なくとも製品の最上位レベルの依存関係をカバーする」必要があるため、製品AのSBOMとしては、3つのファームウェアそれぞれについて、ルートとなるメインコンポーネントと最上位レベルのコンポーネントを記載する必要があると考えられます。
ただし、脆弱性管理を目的とする場合、他社製ソフトウェアを使用しているレベルまで含めることが現実的です。
例えば、ファームウェアAは、内部で自社製ソフトウェアであるソフトウェアAを使用し、さらにその下位で他社製ソフトウェアである「ソフトウェアA-1」を使用しています。この場合、「ソフトウェアA-1」までをSBOMに含めることが妥当と考えられます。
したがって、製品AのSBOMとしては、下図の点線で囲った部分を作成することが、CRA準拠として妥当と考えられます。

これらのソフトウェアを対象として、NTIAで示されているデータ項目を整理し、SPDX,CycloneDX,SWIDタグといった形式で作成することが要求されていると考えられます。
将来的には、ソフトウェア開発時にSBOMを準備することが一般的になり、標準形式で作成された他社のSBOMを組み合わせることで、正確なSBOMを作成できるようになることが期待されています。
5.まとめ
SBOMの整備には時間を要するため、ある程度の見切り発車も必要となる可能性があります。本稿が、その際の参考となれば幸いです。
SBOMを作成すべきソフトウェアは多様な状態にあり、単一のツールで全てをカバーすることは現時点では困難です。しかし、弊社のSBOMツールも活用いただくことで、生成が難しいソフトウェアにも対応できる可能性が広がります。
SBOMスキャナについてのお問い合わせ
SBOMスキャナについて詳しく知りたい方は、以下のリンクをご覧ください。
弊社では、自社開発のSBOMスキャナを提供しています。このツールを使うことで、SBOM作成が簡単になり、法律対応も効率的に行えます。お気軽にお問い合わせください。
関連リンク
弊社、サイエンスパーク株式会社は1994年の創業より、ソフトウェア・ハードウェアのセキュリティ対策をおよそ30年に渡り続けてまいりました。
各種製造・開発におけるセキュリティリスクの診断から対策導入・運用までのお手伝いが可能ですので、ご相談だけでもお気軽にお問い合わせくださいませ。