規則が求めること
規則(EU)2024/2847 附属書 I 第 II 部第(1)項:製造者は「デジタル要素を持つ製品に含まれる脆弱性とコンポーネントを特定し文書化する。これには、少なくとも製品の最上位の依存関係を対象とするソフトウェア部品表を、一般的に使われる機械可読の形式で作成することを含む」。2027年12月11日から適用されます(第71条)。
- SBOM は脆弱性対応のプロセスとともに技術文書の一部です(附属書 VII 第2項(b))。
- 理由を付した要請があれば市場監視当局に提出します(附属書 VII 第8項)。公開する必要はありません(前文77)。
- 利用者に提供することにした場合は、利用者向け情報にその場所を記載します(附属書 II 第9項)。
- 欧州委員会は実施法令でその形式と要素を定めることができます(第13条(24))。CycloneDX と SPDX は一般的に使われる形式です。
このページが作成するもの
製品をメインコンポーネントとし、各パッケージの正確なバージョンとパッケージ URL(purl)、ロックファイルに示されている場合は製品の最上位の依存関係を含む CycloneDX 1.6 の JSON ファイル。読み込めるもの:
- npm の package-lock.json(lockfileVersion 2 または 3)、Yarn の yarn.lock(Yarn 1、2 以降)、pnpm-lock.yaml(lockfileVersion 9.0)。ファイルに示されている場合、開発専用のパッケージは除かれます
- pip freeze や pip-compile が書き出すような、すべてのパッケージが固定された(name==version)Python の requirements.txt
- Rust の Cargo.lock(バージョン 3 または 4)と、間接モジュールを含む Go の go.mod
- mvn dependency:tree -DoutputFile が書き出す Maven の依存関係ツリーと、Gradle の gradle.lockfile。テストスコープのパッケージは除かれます
- packages-dev を除いた PHP Composer の composer.lock と、NuGet の packages.lock.json
形式に従っていないファイルは、推測せずに行番号と理由を示して読み込みません。公開レジストリ以外から取得したパッケージはパッケージ URL なしで記載されるため、ファイルが使っていないパッケージを指すことはありません。
他のツールで作成した SBOM がすでにありますか?CycloneDX の JSON ファイル、または GitHub の依存関係グラフが書き出すもの(Export SBOM)のような SPDX の JSON ファイルとして開くと、コンポーネントを OSV.dev と KEV カタログで確認できます。確認のためだけに読み込まれます:新しい SBOM を作成するには、ロックファイルを開いてください。ロックファイルでバージョンが固定されていない場合、GitHub のファイルは ^4.17.0 のような範囲を示します:それらのコンポーネントは未確認として記載されるため、ロックファイルを開いて確認してください。
悪用が確認された脆弱性
チェックでは、OSV.dev で見つかった脆弱性のうち、CVE 番号が米国サイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)の Known Exploited Vulnerabilities カタログ(KEV)にあるものに、CISA が追加した日付とともに印を付けます。CISA は、悪用されたという信頼できる証拠がある脆弱性を掲載します。2026年9月11日から、CRA 第14条は、製品に含まれる実際に悪用されている脆弱性(第3条(42))を、認識してから24時間以内に通知するよう求めています。KEV に掲載されていても、あなたの製品について判断が決まるわけではありませんが、最初に確認すべき場所です。報告の期限のページで時間を数えられます。
扱わないもの
SBOM はロックファイルに記載されたものを記載します。製品にコピーしたコード、オペレーティングシステムのパッケージ、ファームウェア、他の言語のライブラリは含まれないため、ご自身でファイルに追加してください。脆弱性のチェックは公表された脆弱性だけを掲載する OSV.dev を用いており、附属書 I 第 II 部が求める脆弱性の評価の代わりにはなりません。