コンテンツにスキップ

CPE/PURLの割当#

このページでは、FutureVuls が脆弱性や EOL を検知するために必要な識別子(CPE/PURL)の適切な割り当て方法と管理について説明します。

多くの場合、FutureVuls はスキャン時にソフトウェアのバージョン情報をもとに自動で脆弱性を検知しますが、CPE スキャンやサプライチェーンリスクスキャンでは、ソフトウェアに識別子(CPE/PURL)を明示的に割り当てる必要があります。

CPE や PURL は、サーバ登録時に含まれる場合には自動付与されますが、含まれない場合はユーザが手動で割り当てるか、Windows アプリケーションに対しては自動割当設定を有効にしてスキャン時に割り当てることもできます。

状況に合わせて適切な方法を選択できるよう、本ページでは以下の順で解説します。

  1. CPEとPURLの使い分け - まず、どの識別子を割り当てるべきかを確認してください
  2. CPE/PURLの手動割当 - 個別のソフトウェアに手動で識別子を割り当てる方法です
  3. CPEの自動割当 - Windows アプリケーションに対して自動で CPE を割り当てる機能を有効化・管理する方法です

CPEとPURLの使い分け#

項目 CPE (Common Platform Enumeration) PURL (Package URL)
主な目的 脆弱性検知・一部EOL検知 EOL検知・ライセンス検知・脆弱性検知
主な対象 ミドルウェア、商用製品など 主にOSSライブラリ、フレームワークなど
識別子の例 cpe:/a:apache:http_server:2.4.54 pkg:maven/org.apache.logging.log4j/log4j-core@2.17.1
自動割当 グループ設定で CPE 自動割当を有効にした場合、Windows ソフトウェアに対してスキャン時に自動で CPE を割当(デフォルト無効)。詳細は CPEの自動割当 を参照 アプリケーションスキャン / SBOMスキャンで検知したライブラリ
・Amazon Inspector で検知された AWS 環境の依存ライブラリ(※ Amazon Inspector SBOMのインポートの設定が必要)
手動割当が
必要なケース
・ソースからビルドしたミドルウェア
・インストーラで導入したソフトウェア(※ 一部の Windows アプリケーションは CPE 自動割当 で対応可能)
・ネットワーク機器、IoT機器
・スキャンで自動検知されないライブラリ
GitHub Security Alerts連携
検知できる
情報
脆弱性: NVDなどの脆弱性データベースと紐づく
EOL: vuls-saas/endoflife.date に掲載されている製品
EOL: vuls-saas/endoflife.date やFutureVuls独自ロジックで検知
脆弱性: GHSAなどPURLに紐づく脆弱性情報

推奨される使い分け#

  • 脆弱性検知を主目的とする場合は CPE を割り当ててください(手動割当 または 自動割当)。
  • ほとんどの OSS ライブラリには自動で PURL が割り当てられますが、万が一割り当てられない場合に手動で登録することで、サプライチェーンリスクの検知が可能になります。

OS パッケージ(ソフトウェア種別: os)への CPE/PURL 割り当てについて

OS パッケージ(rpm, deb, apk 等のパッケージマネージャで管理されるソフトウェア)に対して CPE や PURL を割り当てても、脆弱性検知には使用されません

OS パッケージの脆弱性検知は、Linux ディストリビューターが提供する OVAL や Security Tracker、OS 固有のアドバイザリ(Red Hat VEX 等)を用いて行われます。これらの脆弱性 DB にはバックポートに対応した正確なバージョン情報が含まれており、CPE ベースの NVD 検知よりも正確です。

CPE を割り当てた場合、NVD のバージョンレンジはバックポートに対応していないため 誤検知が多発 します。詳細は「OS パッケージの CPE 登録」を参照してください。

そのため、OS パッケージへの CPE/PURL の割り当ては実質的にメリットがなく、推奨されません。OS パッケージの脆弱性管理には、スキャナ経由のスキャン(ローカルスキャン、リモートスキャン、ペーストスキャン等)をご利用ください。

CPEとPURLを両方割り当てた場合の動作#

1つのソフトウェアに CPE と PURL の両方を割り当てることができます。 割り当ての順序による動作の違いはありません。

両方割り当てた場合の脆弱性検知の挙動は、ソフトウェア種別によって異なります。

検知対象 CPE のみ PURL のみ CPE + PURL 両方
脆弱性(NVD 等) ✓(※1)
脆弱性(GHSA 等) ✓(※2) ✓(※2)
EOL ✓(endoflife.date 掲載製品) ✓(endoflife.date + FutureVuls 独自ロジック) ✓(両方の検知方法が有効)
OSS ライセンス
マリシャスパッケージ

ソフトウェア種別が library の場合の脆弱性検知(※1・※2)

ソフトウェア種別が library の場合、脆弱性検知は以下のように動作します。

  • GHSA 等(PURL ベース)の検知が有効になります(※2)
  • NVD 等(CPE ベース)の検知は無効になります(※1)

これは、library に対しては GHSA の脆弱性情報のほうが正確であり、NVD のバージョンレンジ情報の整備不良による誤検知を防ぐためです。 CPE と PURL を両方割り当てた場合でも、library では NVD による脆弱性検知は行われません。

ソフトウェア種別が library 以外の場合の脆弱性検知

ソフトウェア種別が library 以外の場合:

  • NVD 等(CPE ベース)の検知が有効になります
  • GHSA 等(PURL ベース)の検知は行われません

ミドルウェアや商用製品など library 以外のソフトウェアでは、CPE による NVD 検知が脆弱性検知の主な手段です。

EOL 検知の優先度

EOL の検知方法には優先度があり、endoflife.date で検知された場合 > FutureVuls 独自ロジックで検知された場合 の順で適用されます。

  • 例: endoflife.date で「2025-06-30 EOL」、FutureVuls 独自ロジックで「2025-05-30 EOL」と検知された場合、FutureVuls 独自ロジックのほうが日付は近いですが、endoflife.date の 2025-06-30 が優先されます。

CPE と PURL の両方を割り当てた場合に、どちらも endoflife.date 経由で異なる EOL が検知されたときは、EOL日が近いほうが優先されます。

  • 例: CPE 経由の endoflife.date で「2025-06-30 EOL」、PURL 経由の endoflife.date で「2025-12-31 EOL」と検知された場合、より近い 2025-06-30 が採用されます。

どのような場合に両方割り当てるべきか

  • CPE で脆弱性を検知しているソフトウェア(library 以外)に、EOL・ライセンス・マリシャスパッケージの検知も追加したい場合: PURL を追加で割り当てます。NVD の脆弱性検知はそのまま有効です。
  • PURL で管理している library に CPE も割り当てた場合: NVD の脆弱性検知は行われず、EOL 検知(endoflife.date 経由)が CPE 側でも有効になります。NVD ベースの脆弱性検知を目的とした CPE 割り当ては不要です。

CPE/PURLの手動割当#

ソフトウェアへのCPE/PURLの割り当て#

ソフトウェアタブから対象のソフトウェアをクリックし、詳細画面内の「CPE/PURL 割当」から CPE や PURL の割り当てが行えます。

CPE/PURLの割り当て

CPE の登録方法は以下の3つから選べます。

  1. CPE の自動割当

    ソフトウェアに対して、検証済み辞書に基づき CPE を自動で割り当てます

  2. ベンダ名/プロダクト名割当

    ベンダ名/プロダクト名を指定し、バージョンは自動的に補完されます。以下の方法から指定方法を選択できます。

    1. リコメンドCPE: ソフトウェア名と関連度の高いCPEを選択します
    2. CPE検索: CPE候補を検索しversionやeditionを選択します
    3. 直接入力: cpeを直接入力します
    

また、和製ソフトウェアの場合は、脆弱性 DB として JVN を使用できます(詳細)。

リコメンド機能の学習機能について

ソフトウェアに対して割り当てた CPE 情報は、リコメンド精度向上のため学習に使用されます。 ただし、ユーザを特定できないよう処理を講じておりますので、ご安心ください。 約款

PURL の登録は、PURL 文字列(例: pkg:maven/org.apache.logging.log4j/log4j-core@2.17.1)をテキストボックスに入力して行います。CPE のようなリコメンドや検索機能はありません。 PURL の書式については PURL spec を参照してください。

ソフトウェアへの一括割り当て#

ソフトウェアタブで CPE を割り当てたいソフトウェアを複数選択し、「CPE 割当」ボタンから一括で割り当てられます。

CPE一括割り当てボタン

一括割り当ての場合は、リコメンドされた候補からベンダ名とプロダクト名のみを登録可能です。 プルダウンから、割り当てるベンダとプロダクトを選択してください。

また、各ベンダ/プロダクトの下に、NVD 検索ページへのリンクも一緒に表示されます。 リンクをクリックすると、NVD に該当の CPE が存在するかを確認できます。 JVN の脆弱性情報を収集するかどうかを判断する際の材料の1つとしてご活用ください。

CPE一括割り当てダイアログ

割り当てCPE/PURLの削除#

割り当てた CPE/PURL を削除したい場合は、ソフトウェアタブで対象のソフトウェアをクリックし、削除アイコンを押してください。 割り当てを削除した場合、その識別子を用いて検知されていた脆弱性情報およびタスク情報はすべて削除されます。 ただし、その脆弱性やタスクが同一サーバの他のソフトウェアにも紐づいている場合は削除されません。


CPEの自動割当#

Windows 環境では、OS 自体の更新プログラム管理だけでなく、インストールされているサードパーティ製品(Google Chrome、Adobe Acrobat Reader など)の脆弱性対策も重要です。 しかし、これらすべてのアプリケーションに対して手動で CPE を調べ、1つずつ割り当てる作業は非常に多くの手間と時間を要します。

「CPE 自動割当」機能では、FutureVuls が独自に構築した検証済み CPE 辞書を用いて、スキャン時に検出された Windows ソフトウェアとマッチングを行い、自動的に適切な CPE を割り当てます。 これにより、煩雑な手動登録作業をすることなく、Windows サードパーティ製品の脆弱性を検知できるようになります。

以下、利用の流れに沿って各機能を紹介します。無効化の方法についてもあわせて説明します。

1. CPE 自動割当機能の有効化(グループ設定)#

本機能を利用するには、グループ設定で「CPE 自動割当」を有効にします。

  • 新規作成グループのデフォルト設定は 有効
  • 2026年2月リリース時点で作成済みのグループのデフォルト設定は 無効

2. スキャン実行による CPE 自動割当#

有効化後、スキャン時にて、検証済み CPE 辞書に基づき、自動で CPE が割り当てられます。

  • 対象は Windows ソフトウェアのみです
  • 手動で CPE を割り当て済みのソフトウェアは自動割当の対象外です(手動割当が常に優先されます)

3. CPE 割当状態の確認(ソフトウェア一覧)#

ソフトウェア一覧画面の「CPE 割当種別」列で、CPE の割当状態を以下の 5 種別で確認できます。

CPE 割当種別 説明
自動 検証済み CPE 辞書に基づき自動割当された CPE
手動(検証済) 手動割当された CPE が検証済み CPE 辞書の推奨 CPE と一致
手動(矛盾) 手動割当された CPE が検証済み CPE 辞書の推奨 CPE と異なる。ソフトウェア詳細画面に警告アイコンが表示され、推奨 CPE をツールチップで確認可能
手動(未検証) 手動割当された CPE に対し、検証済み CPE 辞書に該当するエントリがない
未割当 CPE が割り当てられていない

CPE 割当種別でのフィルタにも対応しています。画面上の表示やフィルタ操作についてはソフトウェア一覧を参照してください。

4. 特定ソフトウェアの CPE 自動割当の無効化#

特定のソフトウェアのみ CPE 自動割当の対象から外したい場合は、個別に無効化できます。 例えば、自動割当された CPE のバージョン情報が ANY となり大量のタスクが起票されるケースなどに有効です。

  • ソフトウェア詳細画面、またはソフトウェア一覧から複数選択して一括で無効化できます
  • 無効化すると、自動割当された CPE が解除され、以降のスキャンでは自動割当の対象外となります
  • CPE 解除に伴い、関連する脆弱性情報およびタスクも削除されます(割り当てCPE/PURLの削除と同様の挙動です)。ただし、その脆弱性やタスクが同一サーバの他のソフトウェアにも紐づいている場合は削除されません

5. CPE 自動割当機能の無効化(グループ設定)#

CPE 自動割当を無効にしたい場合は、グループ設定から無効に切り替えます。

  • 無効にすると、以降のスキャンでは新規の自動割当が行われなくなります
  • 無効にしても、過去に自動割当された CPE はデフォルトではそのまま維持されます
  • 「自動割当済み CPE を一括削除」オプションを選択すると、自動割当された CPE を一括で削除できます
  • 一括削除を行うと、削除された CPE に関連する脆弱性情報およびタスクも削除されます。ただし、その脆弱性やタスクが同一サーバの他のソフトウェアにも紐づいている場合は削除されません