この記事の要点SUMMARY
- SBOMはソフトウェアに含まれる部品(OSS・ライブラリ)の一覧。脆弱性が出たときの影響調査を可能にする
- EUのサイバーレジリエンス法や医療機器の分野で要求が具体化しており、製品にソフトが入る製造業にも関わってくる
- 発想は製造業の部品表とまったく同じ。「何が入っているか分からないものは、問題が起きたとき範囲を絞れない」
ある広く使われているソフトウェア部品に重大な脆弱性が見つかった——というニュースが流れたとき、製造業の現場では同じ問いが発生します。「うちの製品に、それは入っているのか」。この問いに数時間で答えられる企業と、数週間かかる企業がいます。差を生むのが SBOM(Software Bill of Materials:ソフトウェア部品表)です。この記事では、製造業の視点からSBOMを整理します。
SBOMとは何か ― 部品表のソフト版
発想は単純で、製造業のBOM(部品表)とまったく同じです。製品にどの部品が、どのメーカーの、どのバージョンで入っているかを一覧にする。それをソフトウェアに対して行うのがSBOMです。
| 製造業のBOM | SBOM | |
|---|---|---|
| 部品にあたるもの | ネジ、基板、樹脂部品 | OSS、ライブラリ、フレームワーク |
| メーカーにあたるもの | 部品の供給元 | 供給者・開発元 |
| 型番にあたるもの | 部品番号 | コンポーネント名とバージョン |
| ロットにあたるもの | 製造ロット | ハッシュ値(同一性の確認に使う) |
| 入れ子構造 | 部品の中にさらに部品 | 依存関係(あるライブラリが別のライブラリを使う) |
| 付随情報 | 材質、CoA | ライセンス、生成日 |
とくに入れ子構造の行が重要です。製造業でも「買った部品の中身までは把握していない」という問題がありますが、ソフトウェアではこれが顕著です。1つのライブラリを使うと、そのライブラリが依存する別のライブラリが自動的に付いてきます。それがさらに別のものを呼び——という連鎖が、数十から数百の階層になることも珍しくありません。
SBOMに書かれている内容
実物のイメージを持っておくと理解が早くなります。形式によって項目名は異なりますが、おおよそ次のような情報が並びます。
| 項目 | 内容の例 | 何のために要るか |
|---|---|---|
| コンポーネント名 | ライブラリやモジュールの名前 | 何が入っているかの特定 |
| バージョン | 2.14.1 | 脆弱性は特定の版に紐づく。ここが最重要 |
| 供給者 | 開発元、配布元 | 問い合わせ先、信頼性の判断 |
| ライセンス | MIT、Apache-2.0、GPL など | 利用条件の確認。商用製品で使えるかに関わる |
| 依存関係 | AがBを使い、BがCを使う | 間接的に入っているものの把握 |
| ハッシュ値 | ファイルの指紋 | 同一性の確認。すり替えの検出 |
| 生成日時 | いつ時点の構成か | どのビルドに対応するSBOMかの特定 |
ライセンスの行は、セキュリティとは別の理由で重要です。OSSには利用条件があり、条件によっては自社のソースコードの公開を求められる場合もあります。「知らずに使っていた」が後で問題になるのは、脆弱性だけではありません。
「直接使っているもの」は氷山の一角
直接依存(開発者が選んだもの)
数個〜数十個。「このライブラリを使おう」と決めたもの
間接依存(付いてくるもの)
そのライブラリが内部で使っているもの。**数百〜数千に及ぶことがある**
脆弱性はどこにでも出る
**深い階層のものほど、入っていること自体が認識されていない**
製造業に置き換えるなら、「購入した完成ユニットの中に、どのメーカーのどのグレードの部品が入っているか」を全階層にわたって把握している状態にあたります。モノの世界では現実的に難しいことが多いのですが、ソフトウェアはツールで機械的に抽出できるため、実現が求められる水準が高くなっています。
なぜ必要になったのか
直接のきっかけは、広く使われているOSSに深刻な脆弱性が見つかる事案が繰り返されたことです。世界中の製品に組み込まれていたため、影響範囲の特定に膨大な時間がかかりました。
脆弱性が公表される
「ライブラリXのバージョン1.2以前に問題がある」
SBOMがある場合
一覧を検索すれば、影響する製品と版がすぐ分かる → 対応に着手できる
SBOMがない場合
製品ごとにソースを調べる、開発担当に聞く、外注先へ問い合わせる → **数週間かかることも**
「調べれば分かる」と「一覧を見れば分かる」の差です。これは製造業で、リコール時に「材料ロットがどの製品に入ったか」を追えるかどうかの差と、構造的にまったく同じです(「トレーサビリティとは」)。
形式 ― SPDXとCycloneDX
SBOMは自由な様式では意味が薄れます。受け取る側が機械的に処理できる必要があるため、標準の形式が使われます。代表的なものが2つあります。
| SPDX | CycloneDX | |
|---|---|---|
| 成り立ち | Linux Foundation由来。ライセンス管理の文脈から発展 | OWASP由来。セキュリティの文脈から発展 |
| 得意な用途 | ライセンスの適合確認、法務的な整理 | 脆弱性管理、サプライチェーンのリスク把握 |
| 国際規格 | ISO/IEC 5962として標準化されている | ECMA標準として整備 |
| 実務での扱い | どちらも広く使われており、取引先の指定に従うのが基本 | 同左 |
経済産業省も「ソフトウェア管理に向けたSBOMの導入に関する手引」を公開しており、この2つの形式の採用を前提とした整理をしています。国内で検討を始めるなら、まずこの手引が実務的な出発点になります。
どこで求められるのか
| 領域 | 状況 |
|---|---|
| EU サイバーレジリエンス法(CRA) | デジタル要素を持つ製品が対象。SBOMが要求の中心的な要素として位置づけられている |
| 医療機器 | 米国FDAは、市販前申請にSBOMが含まれない場合に受理しない扱いができるとしている |
| 政府調達 | 米国では大統領令を契機に、政府に納入するソフトへの要求が進んだ |
| 自動車 | 車載ソフトのセキュリティ要求の中で、部品の把握が求められる |
| 産業機器全般 | 取引先からの要求として降りてくるケースが増えている |
「うちはソフト会社ではない」は理由になりません
対象になるのは、ソフトウェアを製品として売る企業だけではありません。制御基板が入った産業機器、通信機能を持つ計測器、アプリと連携する家電——ソフトウェアが組み込まれた製品を作っているなら、その製品にSBOMが求められる可能性があります。「ソフトは外注しているから」という場合は、外注先から受け取る必要が出てきます。
実務上の難所
- 外注ソフトの中身が分からない:委託先が何を使っているか、契約に含めていないと開示されません。新規の委託契約から順に条項を入れるのが現実的な進め方です
- 組み込み機器の古いソフト:10年前に作られたファームウェアの構成が、資料としても人の記憶としても残っていない
- バージョンの粒度:「Xを使っている」では足りず、どの版かまで必要
- 更新の追随:SBOMは一度作って終わりではなく、ソフトを更新するたびに作り直すもの
- 受け取ったSBOMの検証:内容が正しいかを確認する手段が限られる
2番目は、製造業の現場感覚に近い問題です。長く売り続けている製品ほど、中身の記録が残っていない。設備の図面が行方不明になるのと同じ現象が、ソフトウェアでも起きています。
製造業のBOM管理との共通点
ここまで読んで、既視感を覚えた方も多いはずです。SBOMが解こうとしている問題は、製造業がずっと向き合ってきた問題と同じ形をしています。
| 問題の型 | 製造業(モノ) | ソフトウェア |
|---|---|---|
| 中身が分からない | 購入部品の下位構成が不明 | 依存ライブラリが把握できていない |
| 問題発生時の範囲特定 | どの製品にどの材料ロットが入ったか | どの製品にどの版のライブラリが入ったか |
| 供給元への遡及 | 二次・三次サプライヤーへの調査 | 外注先・OSSコミュニティへの確認 |
| 更新の追随 | 材料の切替、仕様変更 | ライブラリのバージョンアップ |
| 長寿命製品 | 10年前の部品の記録がない | 10年前のファームの構成が不明 |
共通するのは、「入っているものを一覧にしておかないと、問題が起きたときに範囲を絞れない」という一点です。含有化学物質調査(「chemSHERPAとは」)も、デジタル製品パスポート(「DPPとは」)も、根っこは同じ発想です。
よくある誤解
- 「SBOMを作れば安全になる」:SBOMは一覧であって対策ではありません。脆弱性が見つかったときに素早く動けるようになる、という道具です
- 「一度作れば終わり」:ソフトを更新するたびに作り直すものです
- 「ソフト会社の話」:製品にソフトが組み込まれていれば、製造業でも対象になりえます
- 「外注しているから自社には関係ない」:外注先から受け取る責任が生じます。契約に含める必要があります
- 「形式はどれでもよい」:受け取る側が処理できる形式である必要があります。取引先の指定に従うのが基本です
まとめ
- SBOMはソフトウェアに含まれる部品の一覧。製造業のBOMとまったく同じ発想
- 脆弱性公表時に「自社製品に影響があるか」を即座に判断するために使われる
- 形式はSPDXとCycloneDXが主流。経済産業省も導入の手引を公開している
- EUのCRAや医療機器の分野で要求が具体化しており、ソフトが組み込まれた製品を作る製造業にも及ぶ
- 難所は外注ソフトの中身の把握と、古い製品の構成記録。長寿命製品ほど厳しい
この記事とQUALIKEEPの関係について
率直にお伝えします。このテーマに関して、QUALIKEEP にできることはありません。SBOMの生成、ソフトウェア構成の解析、脆弱性の照合——いずれも対象外で、QUALIKEEP は原材料や副資材といった物理的なモノの受入・期限・ロットを記録するサービスです。ソフトウェア資産の管理機能は持っていません。
この記事を書いたのは、発想が共通しているからです。「入っているものを一覧にし、問題が起きたときに範囲を絞れるようにする」という考え方は、モノでもソフトでも変わりません。もし読者の会社で、モノの側でも同じ問題——「どの製品にどの材料ロットが入ったか、すぐには分からない」——が起きているのであれば、そちらは QUALIKEEP が扱える領域です。
| 領域 | 扱えるか | 補足 |
|---|---|---|
| SBOMの生成・管理 | できません | ソフトウェア構成の解析、SPDX/CycloneDXの出力、脆弱性データベースとの照合はいずれも対象外です |
| 統合BOM/PLM | できません | 機械部品・電気部品・ソフトを横断して構成を管理するシステムではありません。製品構成表の管理はPLM/基幹システムの領域です |
| CRA・FDA等への適合 | 保証しません | サイバーセキュリティ関連法規への適合を判断・保証するものではありません。本記事での言及は、考え方の共通性を示すための例示です |
| 原材料・副資材のロット記録 | 扱えます | 受入・開封・使用・廃棄をQRスキャンで記録し、日付やロットから検索できます |
モノの側の「部品表」は、いま辿れる状態になっていますか。
QUALIKEEP の機能や料金を詳しく見る →ご注意
本記事は公開情報をもとにした一般的な解説です。SBOMに関する各国の要求内容・適用時期・対象範囲は変更されます。実際の対応にあたっては、経済産業省の手引、IPAの情報、および各国当局・取引先の最新要求をご確認ください。
参考・出典
※ 外部サイトの内容・URL は変更される場合があります。最新の情報は各機関の公式ページをご確認ください。