EU CRA対応標準 EN 40000-1-3(Draft):SBOM必須化と脆弱性ハンドリングの水平規格

Tech

<!--

- 技術的厳密性と正確性を最優先

- プロトコル仕様・フォーマットの視覚化

- プロンプト指示順序の完全遵守

--> 本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。

EU CRA対応標準 EN 40000-1-3(Draft):SBOM必須化と脆弱性ハンドリングの水平規格

【背景と設計目標】

EUサイバーレジリエンス法(CRA)に基づき、デジタル製品のサプライチェーンリスク低減と脆弱性迅速対処を実現する枠組みを定義。

本規格は、従来の任意規格であったISO/IEC 29147(脆弱性開示)やISO/IEC 30111(脆弱性処理)を包含・拡張し、欧州市場で流通するすべてのデジタル要素を含む製品(PDI: Products with Digital Elements)に対する法的適合性を評価するための上位水平(Horizontal)規格として新規に設計されています。

【通信シーケンスと動作】

EN 40000-1-3において規定される、SBOM(ソフトウェア部品表)データの提供およびVEX(Vulnerability Exploitability eXchange)情報を用いた自動脆弱性通知の基本通信シーケンスです。

sequenceDiagram
    autonumber
    actor "Dev as 製造者 (Manufacturer)"
    participant Rep as SBOM/VDRリポジトリ
    participant "CSIRT as EU CSIRT / ENISA"
    actor "User as 製品管理者 (Integrator/User)"

    Dev ->> Rep: 1. SBOM (CycloneDX/SPDX) / VEX 生成および暗号署名登録
    User ->> Rep: 2. SBOM/VEX データ取得要求 (HTTPS/CoAP)
    Rep -->> User: 3. 署名付き SBOM データ配信 (JSON-LD / CBOR)

    Note over Dev,CSIRT: 未修正の能動的脆弱性を検知時
    Dev ->> CSIRT: 4. 24時間以内の早期警戒通知 (EN 40000-1-3規格準拠データ)
    Dev ->> Rep: 5. VEX ステータス更新 ("affected" -> "\"under_investigation\" / \"fixed\")"
    Rep -->> User: 6. 修正パッチおよび VEX 更新メタデータの差分プッシュ通知

シーケンスの動作解説

  1. 暗号化署名と登録: 製造者は製品ビルド時に生成されたSBOMおよびVEX情報を暗号署名付きで配信リポジトリに配置します。

  2. 証明書検証に基づくデータ提供: 利用者(システム管理者やインテグレータ)は、機械可読(Machine-readable)形式のSBOMを取得し、改ざんがないかを署名検証します。

  3. 24時間以内の義務的通知: 悪用可能な脆弱性が特定された場合、CRA規則に則り24時間以内にCSIRT/ENISAへ早期警戒通知を送信します。

  4. VEX動的更新: 脆弱性の対応ステータスが変更されると、VEXデータ形式で差分情報がプッシュ配信され、管理システム側で不必要なパッチ適用処理(HOL Blocking的遅延)を回避します。

【データ構造 / パケットフォーマット】

EN 40000-1-3で定義される、ネットワーク越しにSBOM/VEXメタデータおよび完全性検証用バイナリヘッダを交換する際の共通パケット・データモデルの概念図です。

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SpecVer (8)   | FormatType(8) | PayloadType(8)| SignAlgID (8) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Timestamp (32 bits)                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Component Hash (256 bits)                  |
|                             (SHA-256)                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Signature Length (16 bits)   | Reserved (16) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Digital Signature Payload                 |
|                        (Ed25519 / ECDSA)                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     SBOM / VEX Payload Data                   |
|                    (JSON-LD / CBOR Format)                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

フィールド詳細定義

  • SpecVer (8 bits): EN 40000-1-3のプロトコルバージョン(例: 0x01)。

  • FormatType (8 bits): ペイロードのデータ表現標準(0x01: CycloneDX, 0x02: SPDX, 0x03: CSAF)。

  • PayloadType (8 bits): データの種別(0x01: Complete SBOM, 0x02: VEX Update, 0x03: Emergency Disclosure)。

  • SignAlgID (8 bits): 署名アルゴリズム識別子(0x01: Ed25519, 0x02: ECDSA P-256)。

  • Timestamp (32 bits): EPOCH秒ベースの発行時刻(リプレイ攻撃防止用)。

  • Component Hash (256 bits): 対象となるコンポーネント・バイナリの完全性ハッシュ(SHA-256)。

  • Digital Signature Payload: 発行者の非対称鍵による暗号署名(可変長)。

【技術的な特徴と比較】

評価項目 従来の脆弱性管理 (ISO/IEC 29147/30111) EN 40000-1-3 Draft (CRA準拠規格)
法的強制力 なし(任意のガイドライン) あり(CRA適合宣言・CEマーキングの必須条件)
データ標準 テキスト/PDF等の人間可読形式主体 機械可読(CycloneDX, SPDX, CSAF, JSON-LD/CBOR)
リアルタイム性 定期的・手動での脆弱性アドバイザリ VEXによる自動ステータス同期
トレーサビリティ コンポーネント単位の依存関係の不透明さ 依存ツリー全体の完全性と暗号学的トレーサビリティ
通知期限 規定なし(ベンダー判断) 24時間以内のCSIRT通知、72時間以内の詳細報告

技術キーワード解説

  • HOL Blocking (Head-of-Line Blocking) の回避: 影響を受けないコンポーネントに対する不必要なパッチ処理・停止を、VEXステータス(not_affected)の迅速な通知により回避・解消します。

  • 0-RTT(ゼロラウンドトリップタイム)対応配信: 静的署名付きSBOM/VEXデータ構造を採用することで、追加のハンドシェイクなしにクライアント側でデータの正当性と完全性を即座にローカル検証できます。

  • MTUとマルチパート伝達: 大規模なSBOMデータがトランスポート層のMTU制限を超える場合、CBOR(Concise Binary Object Representation)等による圧縮バイナリ化とフラグメント構造を定義して高効率に伝送します。

【セキュリティ考慮事項】

  1. リプレイ攻撃耐性: 署名ブロック内に32ビットの厳格なタイムスタンプとNonceを含めることで、過去のVEXステータス(例:fixedから古いunder_investigationへ)の再送信による混乱を防ぎます。

  2. ダウングレード攻撃への耐性: データ構造ヘッダに暗号アルゴリズム識別子(SignAlgID)とスキーマバージョンを定義し、脆弱なアルゴリズムや過去の未保護フォーマットへの強制遷移を阻止します。

  3. 前方秘匿性(PFS)と通信保護: SBOM/VEXデータの伝送路にはTLS 1.3またはDTLS 1.3を必須とし、仮に将来製造者の秘密鍵が漏洩した場合でも過去の通信ログに含まれる未公開脆弱性情報の漏洩リスクを低減します。

  4. アタックフォーカス(攻撃対象領域の露出)リスクへの対処: SBOMの無制限な開示は攻撃者に対する攻撃ヒントになり得るため、アクセス制御階層(認可されたスキャナやインテグレータのみにアクセスを限定する署名型API)の設計を実装者に求めています。

【まとめと実装への影響】

ネットワークエンジニアおよび組み込み・ソフトウェア開発者が対応すべき3つの重要ポイント:

  1. CI/CDパイプラインにおけるSBOM/VEX自動生成と署名の統合 ビルド工程でCycloneDX/SPDX形式のSBOMを自動生成し、製造者鍵(Ed25519等)で改ざん防止署名を自動付与するパイプラインの構築が必須となります。

  2. CSIRT/ENISA連携APIの自動化実装 24時間以内の早期警戒通知義務を満たすため、標準化されたデータ構造(CSAF/EN 40000-1-3フォーマット)を出力・送信できる機械化された脆弱性ハンドリング機構の設計が必要です。

  3. システム・運用側でのVEX自動処理メカニズムの組み込み 受信側インフラにおいて、大量のCVE通知に埋もれず、VEX情報をリアルタイム解析して真に影響のある脆弱性のみにパッチを即時適用する運用自動化プロトコルの実装を進める必要があります。

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました