SBOM and VEX(SBOM と VEX)

article technology medium #cybersecurity#sbom#vex#supply-chain#compliance#spdx#cyclonedx
Created: 2026-05-31 Updated:

SPDX 3.0・CycloneDX 1.7・VEX・US EO 14028・EU CRA 2027 を軸に、 ソフトウェア部品表(SBOM)の生成・運用・規制対応を俯瞰する地図記事。

SBOM と VEX

SBOM(Software Bill of Materials / ソフトウェア部品表)は、あるソフトウェア製品に含まれる全コンポーネント・依存ライブラリ・バージョン・ライセンスを機械可読な形式で記述した一覧である。サプライチェーン攻撃や脆弱性対応の迅速化のために、米国大統領令 14028(2021 年)・ EU サイバーレジリエンス法( CRA、2024 年発効)などの規制が SBOM 提供を要求し始めており、開発・調達双方での整備が急務となっている。

SBOM の役割

SBOM の主要な用途:

  1. 脆弱性影響範囲の迅速特定: 新 CVE が公開された際、SBOM と CVE データベースを突合することで「自社製品が影響を受けるか」を即座に判定できる。Log4Shell( CVE-2021-44228)の際、SBOM がない組織は手作業で数日〜数週間かけて影響調査を行った。
  2. 依存関係の可視化: 直接依存だけでなく推移的依存(依存の依存)まで記録することで、通常のパッケージ管理ツールでは見えない依存グラフを可視化する。
  3. ライセンスコンプライアンス: GPL / MIT / Apache などのライセンス情報を一覧化し、商用製品への混入チェックやライセンス競合の検出を支援する。
  4. インシデント対応支援: セキュリティインシデント発生時に影響コンポーネントを素早く特定し、パッチ適用やロールバックの優先順位付けができる。

SBOM フォーマット:SPDX 3.0 と CycloneDX 1.7

主要な 2 フォーマットは相互補完的に存在し、どちらも JSON / XML などの機械可読形式を持つ。

SPDX 3.0

SPDX(Software Package Data Exchange)は Linux Foundation が主導する ISO/IEC 提出段階の国際標準(情報カットオフ ~2025-08 時点での状況)。v3.0 では以下のプロファイルに分離:

  • Core: パッケージ・ファイル・ スニペットの基本モデル
  • Software / Licensing: ソフトウェアとライセンスの詳細
  • Security: 脆弱性・ VEX 情報の内包
  • AI: AI モデルの部品情報( EU AI Act への対応を想定)
  • Data: データセットの部品情報

CycloneDX 1.7

CycloneDX は OWASP が策定する SBOM 標準で、2025-10 に v1.7 がリリース。特徴的な拡張:

  • HBOM(Hardware Bill of Materials): ハードウェアコンポーネントの記述
  • ML-BOM(Machine Learning BOM): AI モデル・データセットの部品情報
  • CBOM(Cryptography BOM): 使用している暗号アルゴリズム・鍵の一覧(ポスト量子移行対応に重要)
  • VEX 連携: CycloneDX 形式内で VEX 情報をネイティブに記述可能

フォーマット変換

OpenSSF の Protobom / BomCTL ツールが SPDX ↔ CycloneDX の変換を提供しており、異なる形式を要求するサプライチェーンパートナーへの対応が容易になっている。

SBOM の生成タイミング

タイミング方法メリット
ビルド時( CI/CD)Syft・Trivy・cdxgen などのツールで自動生成コンポーネント最終確定後の正確な一覧
コンテナイメージ作成時Trivy sbom / Docker Scout で OCI アーティファクトに付随コンテナスキャンと一体化できる
リリース時SBOM をリリースアーティファクトとして署名・同梱配布物と SBOM のバインドを保証

SBOM の鮮度管理が重要で、依存関係更新・ベースイメージ更新のたびに再生成・再署名する必要がある。CI/CD パイプラインへの統合が鮮度維持の基本戦略。

VEX(Vulnerability Exploitability eXchange)

VEX は、SBOM で列挙されたコンポーネントの既知脆弱性が「当該製品において実際に悪用可能か」を示す補足文書である。CVE データベースとの突合で大量の偽陽性(コンポーネントに CVE はあるが製品では影響しない)が発生する問題を解決する。

VEX のステータス定義( CISA VEX ガイドライン準拠):

ステータス意味
Not Affected該当 CVE は当製品のコンポーネントに存在するが、製品の使用方法では悪用不可能
Affected該当 CVE は当製品において実際に影響がある(パッチ・回避策を提供)
Fixed該当 CVE は指定バージョンで修正済み
Under Investigation影響調査中

VEX は SPDX 3.0 Security プロファイル・CycloneDX 形式・CSAF( Common Security Advisory Framework)で記述できる。VEX の自動生成ツールとして vexctl( OpenSSF sigstore プロジェクト由来)が存在する。

規制動向

規制要求内容発効・期限
US EO 14028連邦政府調達ソフトウェアへの SBOM 提供義務2021 年大統領令
NTIA Minimum Elements7 必須要素(サプライヤ名・コンポーネント名・バージョン・一意 ID・依存関係・作成者・タイムスタンプ)。CISA 2025 ドラフトでは hash / license / tool / context も追加(ドラフト段階)NTIA 2021 年ガイダンス
EU CRA(Cyber Resilience Act)デジタル製品の製造業者にトップレベル SBOM 提供義務( CycloneDX 1.6+/SPDX 3.0.1+)。重要製品カテゴリは独立機関による適合評価2024-12-10 発効 / 主要義務 2027-12-11 適用

EU CRA の「主要義務 2027-12-11」は、欧州市場で販売するデジタル製品のほぼ全分野に適用されるため、2025〜2026 年中の SBOM 整備着手が現実的なタイムラインとなる。

運用上の課題

  • 署名と Provenance の紐付け: SBOM 自体を cosign / Sigstore で署名し、ビルド Provenance( SLSA)と紐付けることで改ざん検出が可能になる( tech-138 参照)。
  • レジストリ保存と自動更新: SBOM を OCI アーティファクトとしてコンテナレジストリに保存し、イメージ更新に連動して自動再生成する仕組みが望ましい。
  • SBOM 突合(マッチング)の精度: SBOM の PURL(Package URL)形式が標準化されていないと、CVE データベースとの突合精度が落ちる。PURL 標準の採用が重要。

アンチパターン

アンチパターン問題
SBOM を生成するだけで脆弱性データベースとの突合をしない一覧があっても突合なしでは脆弱性を発見できない
リリース時にのみ SBOM を更新し、定期更新しないベースイメージや依存関係の更新で SBOM が陳腐化し、重大な CVE を見落とす
VEX なしで大量の「潜在的脆弱性」アラートを放置する偽陽性が多すぎて真の危険を見落とす「アラート疲労」が起きる
SPDX か CycloneDX のどちらか一方のみを選択して硬直する異なるパートナーが異なる形式を要求する場合に対応できない

Local graph