脆弱性管理

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つあります。

項目SPDXCycloneDX
管理団体Linux FoundationOWASP
主な用途ライセンス管理・コンプライアンスセキュリティ・脆弱性管理
ファイル形式JSON / YAML / RDF / TVJSON / XML / Protocol Buffers
ISO標準ISO/IEC 5962:2021
特徴歴史が長く政府調達に採用例多セキュリティツールとの連携が強い
SBOMを活用した脆弱性対応フロー ソフトウェア 開発・納品 SBOM 生成・保管 脆弱性情報 公開(CVE等) SBOMと 脆弱性DBを照合 影響範囲を特定 対応優先度を決定 パッチ適用 バージョンアップ SBOMなしの場合 影響調査に数日〜数週間かかることも…

関連する規格・RFC

規格・番号内容
ISO/IEC 5962:2021SPDX(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の自動生成も含まれる