VEXとは何か:
「対応不要」を言語化するための考え方
VEXとは Vulnerability Exploitability eXchange のことで、脆弱性が「その製品の、その文脈で、本当に悪用可能か」を伝えるための考え方です。
CycloneDXはVEXを、製品の文脈における脆弱性の exploitability を伝える仕組みとして説明しており、一般的な脆弱性公開と違って「その製品で実際に問題になるのか」に焦点を当てる点が重要だとしています。さらにCycloneDXは、VEXによって不要な緩和やパッチ適用を減らし、現実のリスクに応じた優先順位付けがしやすくなると説明しています。
自動車サプライヤーの実務で言い換えると、VEXは 「このCVE、うちの製品には関係あるのか、ないのか、まだ調査中なのか」を根拠付きで表明するための型 です。
OEMが求めているのは、CVEの要約文やCVSSの点数ではなく、対象製品・対象版数・理由・次回更新日 が入った判断です。そのためVEXは、単なる用語ではなく、PSIRTの回答品質をそろえるための“言語”だと考えると分かりやすくなります。
VEXが必要になる理由
「CVEが存在する」ことと、「その脆弱性が自社製品で成立する」ことは同じではありません。
CycloneDXも、VEXは特定の文脈で exploitability を伝えるものだと明記しており、これによって組織は remediation の優先順位を付けやすくなり、不要な対応を減らせるとしています。
つまり、VEXが無いと、現場は「全部危険そう」に見える通知に引っ張られ、逆に本当に優先すべき案件を見失いやすくなります。
サプライヤー実務でVEXが特に効くのは、「対応不要(not affected)」を言語化したい時 です。
CISAのVEX minimum requirements では、VEXのステータスとして not_affected / affected / fixed / under_investigation の4つが示されており、特に not_affected では、justification が無い場合は impact statement が必要、justifcation がある場合はそれに基づいて説明すべきと整理されています。
つまり「影響なしです」とだけ返すのではなく、なぜ影響しないのか を構造化して示す必要があります。
VEXの4つの基本ステータス
VEXでまず押さえるべき状態は4つです。CISAの minimum requirements に沿うと、意味は次のように理解できます。
この4つのうち、実務で特に重要なのは not_affected と under_investigation です。
なぜなら、サプライヤーは「すぐには断定できないが、期限は守らなければならない」ケースが多いからです。CISAの “When to Issue VEX Information” でも、最初に under_investigation を出し、調査が終わった時点で affected か not_affected に更新するやり方が一般的だと説明されています。
またVEXは、状況が変わればステータスを更新し、タイムスタンプで現在の状態を再確認できる点も重要です。
「対応不要」をどう言語化するか
CISAの minimum requirements では、not_affected の justification(正当化の理由)として代表的に次のような考え方が示されています。
- Component_not_present そもそもその部品が製品に入っていない
- Vulnerable_code_not_present 同名部品はあるが、脆弱なコード部分が含まれていない
- Vulnerable_code_not_in_execute_path 脆弱コードはあるが、この製品の実行経路(呼び出し)に乗らない
- Vulnerable_code_cannot_be_controlled_by_adversary 攻撃者がそのコードの実行を外部から制御・到達できない
- Inline_mitigations_already_exist 既に緩和策(設定無効化など)が製品に組み込まれている
実務上は、これをそのまま英語で出す必要はありません。むしろ日本語で、「対象版数/前提条件/根拠」をセットにして書く方が通りやすいです。
たとえば、
「対象製品 v2.3.1 は当該ライブラリを搭載していない」
「対象ECUは外部IFを持たず、当該機能は出荷設定で無効」
「成立条件として必要な入力経路が通常運用では存在しない」
といった表現に落とすと、OEM照会でも監査でも説明しやすくなります。
VEXは“文書フォーマット”より“運用の型”
VEXという言葉を聞くと、ファイル形式(JSON等)や標準仕様を先に連想しがちですが、立ち上げ段階で重要なのは フォーマットより運用の型 です。
CISAも、VEXをいつ出すかは多くのサプライヤーにとって business decision だとしており、重要なのは「いつ、誰が、どのステータスで、どの理由を付けるか」を決めておくことだと読めます。
そのため、最初に必要なのは次の3点です。
これだけで、VEXは“運用できる考え方”になります。
よくある誤解
違います。VEXは、影響の有無を文脈付きで整理する仕組みです。affected や under_investigation も同じくらい重要です。
違います。CycloneDXもVEXは contextual analysis のための仕組みだとしていますが、前提になるのは対象製品・対象版数・構成の把握です。つまりSBOMや構成表が無いと、VEXだけでは成立しません。
違います。CISAのガイダンスでも、最初に under_investigation を出し、後から更新するのは自然な運用です。問題は“調査中のまま放置すること”であって、next update date(次回更新日)が無いことです。
FAQ:VEXとは
VEXは、脆弱性がその製品の文脈で本当に悪用可能かを示すための考え方です。単なるCVE情報ではなく、製品ごとの影響有無を表明するために使います。
not_affected、affected、fixed、under_investigation の4つです。CISAの minimum requirements で整理されています。
対象版数、理由(非搭載や実行経路外など)、前提条件、証跡をセットで書くのが基本です。justification(根拠)が無い場合は impact statement(影響声明)が必要という考え方が参考になります。
CISAのガイダンスでは、いつ出すかは多くのサプライヤーにとってビジネス判断とされています。実務では、OEM照会があった際などに、まず under_investigation を出し、調査結果に応じて更新する運用が現実的です。
自社製品のVEX判断基準、整理しませんか?
「この構成なら影響なしと言い切っていいのか」「OEMにどう説明すれば納得してもらえるか」など、脆弱性トリアージとVEXの判断基準を自社向けに整理したい方はご相談ください。