SBOM(Software Bill of Materials) えすびーおーえむ
ソフトウェア部品表脆弱性管理オープンソースサプライチェーンセキュリティCycloneDXSPDX
SBOMについて教えて
簡単に言うとこんな感じ!
ソフトウェアに入っている部品の「成分表示」だよ!食品の原材料ラベルみたいに「このアプリにはどんなライブラリが入ってるか」を一覧にしたもので、セキュリティの問題が見つかったとき「うちのシステムは大丈夫?」をすぐ確認できるんだ!
SBOMとは
SBOM(Software Bill of Materials/ソフトウェア部品表) とは、あるソフトウェアが内部で使用しているすべてのコンポーネント(部品)を記録した一覧表のことです。使用しているオープンソースライブラリやサードパーティ製ソフトウェア、そのバージョンやライセンス情報などを網羅的にリスト化します。
「Bill of Materials」はもともと製造業で使われる用語で、製品を構成するすべての部品・材料を管理するリストのことです。ソフトウェアも複数の部品(ライブラリ・フレームワーク・パッケージ)を組み合わせて作られているため、この概念をIT領域に応用したのがSBOMです。
近年、Log4Shell(2021年) のような重大な脆弱性が発覚した際に「自社のシステムに脆弱なコンポーネントが含まれているかどうかを即座に把握できない」という問題が顕在化しました。SBOMがあれば、新たな脆弱性情報が出たときに影響範囲を素早く特定でき、対応の優先順位付けが格段にスムーズになります。
SBOMに含まれる情報
SBOMには以下のような情報が記録されます。
| 項目 | 内容 | 例 |
|---|---|---|
| コンポーネント名 | 使用しているライブラリ・パッケージの名前 | log4j-core |
| バージョン | 使用中の具体的なバージョン番号 | 2.14.1 |
| ライセンス | そのコンポーネントの利用条件 | Apache-2.0 / MIT |
| サプライヤー | 開発元・提供元の情報 | Apache Software Foundation |
| ハッシュ値 | コンポーネントの改ざん検知用チェックサム | SHA-256: a1b2c3… |
| 依存関係 | そのコンポーネントがさらに依存しているもの | log4j-api 2.14.1 |
| PURL / CPE | 脆弱性DBと照合するための識別子 | pkg:maven/org.apache.logging.log4j/log4j-core@2.14.1 |
SBOMのイメージ:食品の原材料ラベル
【原材料名】
log4j-core 2.14.1(Apache-2.0)
spring-boot 3.1.0(Apache-2.0)
jackson-databind 2.15.2(Apache-2.0)
commons-lang3 3.12.0(Apache-2.0)
...(以下200件)
→ 脆弱性発覚 → "log4j-core 2.14.1" が含まれているかをSBOMで即チェック!
SBOMが特に重要な場面
- 新規システム導入・受け入れ検査 :ベンダーからSBOMを納品物として受け取る
- 脆弱性情報が公開されたとき :自社システムへの影響を即座に確認する
- ライセンス監査 :商用利用が制限されるライセンス(GPL等)の混入チェック
- M&A・デューデリジェンス :買収先システムのリスク評価
歴史と背景
- 2000年代〜 :オープンソースソフトウェア(OSS)の利用が急速に拡大。ソフトウェアの大部分がOSSコンポーネントで構成されるように
- 2014年 :Linux Foundationが SPDX(Software Package Data Exchange) 仕様をリリース。SBOMフォーマットの標準化が始まる
- 2018年 :NTIA(米国国家電気通信情報局)がSBOMの概念整理と普及推進を開始
- 2021年5月 :米国バイデン大統領の大統領令14028号 で「連邦政府に納品するソフトウェアにはSBOMを提供すること」を義務化。世界的に注目が急拡大
- 2021年12月 :Log4Shell脆弱性(CVE-2021-44228) が発覚。「どのシステムに入っているか分からない」という現場の混乱がSBOM必要性を強く印象づける
- 2023年〜 :EU(欧州サイバーレジリエンス法)・日本でもSBOM対応の検討・義務化の動きが加速
主なSBOMフォーマットと比較
現在広く使われているSBOMフォーマットは主に2つあります。
| 項目 | SPDX | CycloneDX |
|---|---|---|
| 管理団体 | Linux Foundation | OWASP |
| 主な用途 | ライセンス管理・コンプライアンス | セキュリティ・脆弱性管理 |
| ファイル形式 | JSON / YAML / RDF / TV | JSON / XML / Protocol Buffers |
| ISO標準 | ISO/IEC 5962:2021 | — |
| 特徴 | 歴史が長く政府調達に採用例多 | セキュリティツールとの連携が強い |
関連する規格・RFC
| 規格・番号 | 内容 |
|---|---|
| ISO/IEC 5962:2021 | SPDX(Software Package Data Exchange)の国際標準。SBOMフォーマットとして初めてISO標準化された |
| NIST SP 800-161r1 | サイバーサプライチェーンリスク管理のガイドライン。SBOMの活用が推奨されている |
関連用語
- 脆弱性(CVE) — Common Vulnerabilities and Exposuresの略。公開された脆弱性に付与される識別番号
- オープンソースソフトウェア(OSS) — SBOMの管理対象となるコンポーネントの大部分を占める
- サプライチェーン攻撃 — 開発ツールや依存ライブラリを経由したサイバー攻撃。SBOMで対策する
- CVSS — 脆弱性の深刻度を数値化するスコアリング方式。SBOMと組み合わせて対応優先度を決める
- 脆弱性スキャナー — SBOMを読み込んで既知の脆弱性を自動検出するツール
- ゼロデイ攻撃 — パッチが存在しない脆弱性への攻撃。SBOMがあれば影響範囲の把握が早まる
- DevSecOps — 開発プロセスにセキュリティを組み込む考え方。SBOMの自動生成も含まれる