CPE/PURLの割当#
このページでは、FutureVuls が脆弱性や EOL を検知するために必要な識別子(CPE/PURL)の適切な割り当て方法と管理について説明します。
多くの場合、FutureVuls はスキャン時にソフトウェアのバージョン情報をもとに自動で脆弱性を検知しますが、CPE スキャンやサプライチェーンリスクスキャンでは、ソフトウェアに識別子(CPE/PURL)を明示的に割り当てる必要があります。
CPE や PURL は、サーバ登録時に含まれる場合には自動付与されますが、含まれない場合はユーザが手動で割り当てるか、Windows アプリケーションに対しては自動割当設定を有効にしてスキャン時に割り当てることもできます。
状況に合わせて適切な方法を選択できるよう、本ページでは以下の順で解説します。
- CPEとPURLの使い分け - まず、どの識別子を割り当てるべきかを確認してください
- CPE/PURLの手動割当 - 個別のソフトウェアに手動で識別子を割り当てる方法です
- 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 を割当(新規作成グループではデフォルト有効、2026年2月24日のリリース時点で作成済みのグループではデフォルト無効)。詳細は CPEの自動割当 を参照 | ・アプリケーションスキャン / SBOMインポートで検知したライブラリ ・Amazon Inspector で検知された AWS 環境の依存ライブラリ(※ Amazon Inspector SBOMのインポートの設定が必要) ・GitHub Security Alerts連携で登録されたソフトウェア |
| 手動割当が 必要なケース |
・ソースからビルドしたミドルウェア ・インストーラで導入したソフトウェア(※ 一部の Windows アプリケーションは CPE 自動割当 で対応可能) ・ネットワーク機器、IoT 機器 |
・スキャンで自動検知されないライブラリ |
| 検知できる 情報 |
脆弱性: NVDなどの脆弱性データベースと紐づく EOL: vuls-saas/endoflife.date に掲載されている製品 |
EOL: vuls-saas/endoflife.date やFutureVuls独自ロジック(実質 EOL)で検知 脆弱性: GHSAなどPURLに紐づく脆弱性情報 |
推奨される使い分け#
- 脆弱性検知を主目的とする場合は CPE を割り当ててください(手動割当 または 自動割当)。
- ほとんどの OSS ライブラリには自動で PURL が割り当てられますが、万が一割り当てられない場合に手動で登録することで、サプライチェーンリスクの検知が可能になります。
- Linux・コンテナイメージの OS パッケージには、原則として CPE/PURL を割り当てないでください(詳細はOSパッケージへの割り当てを参照)。
CPE を割り当てたソフトウェアは、ソフトウェア種別にかかわらず、NVD などの脆弱性データベースとの照合(CPE ベースの検知)の対象になります。 ただし、同じソフトウェアでより精度の高い検知手段(OS 向けのアドバイザリ、ライブラリの脆弱性データベースなど)による脆弱性が 1 件以上検知されている場合は、そのソフトウェアの CPE ベースの検知結果は使われません。 より精度の高い検知手段で 1 件も検知されていない場合は、CPE ベースの検知結果がそのまま使われます。
ソフトウェアごとの CPE/PURL の用途は、以下のとおりです。
| ソフトウェア | 通常の脆弱性検知 | CPE の用途 | PURL の用途 | 割り当ての目安 |
|---|---|---|---|---|
| Linux・コンテナイメージの OS パッケージ (rpm, deb, apk 等) |
OS 向けのアドバイザリ(OVAL、Security Tracker、Red Hat VEX 等) | NVD などとの照合。バックポートに対応しないため誤検知の原因になる | 個別の EOL 検知には使われない(非公開 EOL 情報を除く) | 割り当てない(例外は「要 CPE 割当(Trivy)」) |
| Windows のインストール済みプログラム | CPE ベースの検知 | 脆弱性検知・EOL 検知 | EOL 検知など | CPE を割り当てる(CPEの自動割当を利用可能) |
| ライブラリ | PURL ベースの検知(GHSA 等。スキャンや SBOM で取得したパッケージ情報に基づく) | PURL ベースの検知で 1 件も検知されていない場合のみ、NVD などとの照合結果が使われる。EOL 検知 | 脆弱性・EOL・OSS ライセンス・マリシャスパッケージの検知(通常は自動で割り当て) | CPE は通常不要。PURL が割り当てられていない場合に手動で割り当てる |
| ミドルウェア・商用製品・ネットワーク機器など | CPE ベースの検知 | 脆弱性検知・EOL 検知 | EOL 検知など | CPE を割り当てる |
OSパッケージへの割り当て#
Linux ディストリビューションやコンテナイメージの OS パッケージ(rpm, deb, apk 等のパッケージマネージャで管理されるソフトウェア)には、原則として CPE/PURL を割り当てないでください。 なお、Windows のインストール済みプログラムもソフトウェア種別は os ですが、以下の説明の対象外です(CPE ベースで脆弱性・EOL を検知します)。
OSパッケージの脆弱性検知#
OS パッケージの脆弱性は、Linux ディストリビューターが提供する OVAL や Security Tracker、OS 固有のアドバイザリ(Red Hat VEX 等)を用いて検知します。 これらの脆弱性データベースにはバックポートに対応した正確なバージョン情報が含まれているため、CPE/PURL を割り当てなくても正確に検知できます。
OS パッケージに CPE を割り当てると、その CPE も NVD などの脆弱性データベースと照合されます。
- OS 向けのアドバイザリで脆弱性が 1 件以上検知されているパッケージでは、CPE ベースの検知結果は使われません。
- OS 向けのアドバイザリで脆弱性が 1 件も検知されていないパッケージ(最新版に更新済みのパッケージ、OS 向けの脆弱性データベースに含まれないパッケージなど)では、CPE ベースの検知結果がそのまま使われます。
NVD のバージョンレンジはバックポートに対応していないため、パッケージの提供元がバックポートで修正済みの脆弱性も、未対応の脆弱性として検知されます。 そのため、最新版に更新済みで本来は脆弱性のないパッケージほど、誤検知が発生しやすく なります。 詳細は「OS パッケージの CPE 登録」を参照してください。
OSパッケージのEOL検知#
Linux の OS パッケージのサポート期限は OS 本体のライフサイクルに従うため、CPE/PURL を割り当てても、個別の EOL 検知には使われません(非公開 EOL 情報として登録した場合を除く。詳細は「OS パッケージの扱い」を参照)。
例外:「要 CPE 割当(Trivy)」の OS パッケージ#
ソフトウェア一覧の脆弱性検知列が「要 CPE 割当(Trivy)」の OS パッケージは、スキャナ(Trivy)がサードパーティ製のパッケージと判定し、OS 向けの脆弱性データベースとの照合を省略しています。 このままでは脆弱性を検知できないため、必要に応じて CPE を割り当ててください。CPE を割り当てると、CPE ベースの検知の対象になります。 この場合も NVD のバージョンレンジはバックポートに対応していないため、パッケージの提供元がバックポートで修正している脆弱性は誤検知となることがあります。 検知された脆弱性は、提供元のアドバイザリ等で修正状況を確認してください。
「要 CPE 割当(Trivy)」は、trivy-to-vuls v0.41.0 以降でスキャンした場合にのみ表示されます。それより前のバージョンでスキャンした場合、Trivy が照合を省略した OS パッケージも「検知可」と表示されるため、スキャナを v0.41.0 以降にアップデートしてください。
CPEとPURLを両方割り当てた場合の動作#
1つのソフトウェアに CPE と PURL の両方を割り当てることができます。 割り当ての順序による動作の違いはありません。
両方割り当てた場合の脆弱性検知の挙動は、ソフトウェア種別によって異なります。
| 検知対象 | CPE のみ | PURL のみ | CPE + PURL 両方 |
|---|---|---|---|
| 脆弱性(NVD 等) | ✓ | ー | ✓(※1) |
| 脆弱性(GHSA 等) | ー | ✓ | ✓(※1) |
| EOL | ✓(endoflife.date 掲載製品) | ✓(endoflife.date + FutureVuls 独自ロジック) | ✓(両方の検知方法が有効) |
| OSS ライセンス | ー | ✓ | ✓ |
| マリシャスパッケージ | ー | ✓ | ✓ |
ソフトウェア種別が library の場合の脆弱性検知(※1)
ソフトウェア種別が library の場合、脆弱性検知は以下のように動作します。
PURL ベース(GHSA 等)の検知で脆弱性が 1 件以上検知されている場合、そのライブラリの CPE ベース(NVD 等)の検知結果は使われません。 これは、library に対しては GHSA の脆弱性情報のほうが正確であり、NVD のバージョンレンジ情報の整備不良による誤検知を防ぐためです。
PURL ベースの検知で脆弱性が 1 件も検知されていない場合は、CPE ベースの検知結果がそのまま使われます。この場合、NVD のバージョンレンジ情報の整備不良による誤検知が含まれることがあります。
ソフトウェア種別が library 以外の場合の脆弱性検知
ソフトウェア種別が library 以外の場合:
- NVD 等(CPE ベース)の検知が有効になります
- GHSA 等(PURL ベース)の検知は行われません
ミドルウェアや商用製品など library 以外のソフトウェアでは、CPE による NVD 検知が脆弱性検知の主な手段です。
ただし、Linux・コンテナイメージの OS パッケージでは、OS 向けのアドバイザリで脆弱性が 1 件以上検知されている場合、CPE ベースの検知結果は使われません(詳細はOSパッケージへの割り当てを参照)。
EOL 検知の優先度
EOL の検知方法には優先度があり、endoflife.date で検知された場合 > FutureVuls 独自ロジック(実質 EOL)で検知された場合 の順で適用されます。
- 例: 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 も割り当てた場合: EOL 検知(endoflife.date 経由)が CPE 側でも有効になります。一方、PURL ベースの検知で脆弱性が検知されている間は、NVD の検知結果は使われません(※1 を参照)。NVD ベースの脆弱性検知を目的とした CPE 割り当ては不要です。
CPE/PURLの手動割当#
ソフトウェアへのCPE/PURLの割り当て#
ソフトウェアタブから対象のソフトウェアをクリックし、詳細画面内の「CPE/PURL 割当」から CPE や PURL の割り当てが行えます。

CPE の登録方法は以下の2つから選べます。
-
CPE の自動割当
ソフトウェアに対して、検証済み辞書に基づき CPE を自動で割り当てます
-
ベンダ名/プロダクト名割当
ベンダ名/プロダクト名を指定し、バージョンは自動的に補完されます。以下の方法から指定方法を選択できます。
方法 説明 リコメンドCPE ソフトウェア名と関連度の高いCPEを選択します CPE検索 CPE候補を検索し、versionやeditionを選択します 直接入力 cpeを直接入力します
また、和製ソフトウェアの場合は、脆弱性 DB として JVN を使用できます(詳細)。
リコメンド機能の学習機能について
ソフトウェアに対して割り当てた CPE 情報は、リコメンド精度向上のため学習に使用されます。 ただし、ユーザを特定できないよう処理を講じておりますので、ご安心ください。 約款
PURL の登録は、PURL 文字列(例: pkg:maven/org.apache.logging.log4j/log4j-core@2.17.1)をテキストボックスに入力して行います。CPE のようなリコメンドや検索機能はありません。
PURL の書式については PURL spec を参照してください。
ソフトウェアへの一括割り当て#
ソフトウェアタブで CPE を割り当てたいソフトウェアを複数選択し、「CPE 割当」ボタンから一括で割り当てられます。
一括割り当ての場合は、リコメンドされた候補からベンダ名とプロダクト名のみを登録可能です。 プルダウンから、割り当てるベンダとプロダクトを選択してください。
また、各ベンダ/プロダクトの下に、NVD 検索ページへのリンクも一緒に表示されます。 リンクをクリックすると、NVD に該当の CPE が存在するかを確認できます。 JVN の脆弱性情報を収集するかどうかを判断する際の材料の1つとしてご活用ください。

割り当てCPE/PURLの削除#
割り当てた CPE/PURL を削除したい場合は、ソフトウェアタブで対象のソフトウェアをクリックし、削除アイコンを押してください。 割り当てを削除した場合、その識別子を用いて検知されていた脆弱性情報およびタスク情報はすべて削除されます。 ただし、その脆弱性やタスクが同一サーバの他のソフトウェアにも紐づいている場合は削除されません。
CPEの自動割当#
Windows 環境では、OS 自体の更新プログラム管理だけでなく、インストールされているサードパーティ製品(Google Chrome、Adobe Acrobat Reader など)の脆弱性対策も重要です。 しかし、これらすべてのアプリケーションに対して手動で CPE を調べ、1つずつ割り当てる作業は非常に多くの手間と時間を要します。
「CPE 自動割当」機能では、FutureVuls が独自に構築した検証済み CPE 辞書を用いて、スキャン時に検出された Windows ソフトウェアとマッチングを行い、自動的に CPE を割り当てます。 これにより、煩雑な手動登録作業をすることなく、Windows サードパーティ製品の脆弱性を検知できるようになります。
以下、利用の流れに沿って各機能を紹介します。無効化の方法についてもあわせて説明します。
自動割当 CPE の精度について
CPE 自動割当は、現時点ではスキャンで取得したソフトウェア名とバージョンだけを検証済み CPE 辞書と照合しています。エディションなどの要素は指定されません。 そのため、実際のソフトウェアとは異なる CPE が割り当てられる場合があります。今後、ベンダ名・エディションも照合の要素に加え、割り当ての精度を高めていく予定です。
エディションなども含めて CPE を正確に指定し直したい場合は、特定ソフトウェアの CPE 自動割当の無効化で自動割当を解除したうえで、ソフトウェア詳細画面の「CPE割当」から手動で割り当ててください。
1. CPE 自動割当機能の有効化(グループ設定)#
本機能を利用するには、グループ設定で「CPE 自動割当」を有効にします。
- 新規作成グループのデフォルト設定は 有効
- 2026年2月24日のリリース(本機能の追加)時点で作成済みのグループのデフォルト設定は 無効
2. スキャン実行による CPE 自動割当#
有効化後、スキャン時にて、検証済み CPE 辞書に基づき、自動で CPE が割り当てられます。
- 対象は Windows ソフトウェアのみです
- 手動で CPE を割り当て済みのソフトウェアは自動割当の対象外です(手動割当が常に優先されます)
flowchart LR
A[スキャン実行開始] --> B{CPE自動割当が<br>有効?}
B -- No --> I[脆弱性検知処理へ]
B -- Yes --> F{既に割当済みの<br>CPEあり?<br>(手動割当やSBOM経由など)}
F -- Yes --> I
F -- No --> D{検証済みCPE辞書に<br>該当あり?}
D -- No --> I
D -- Yes --> H[検証済みCPEの割当処理]
H --> I
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 解除に伴い、関連する脆弱性情報およびタスクも削除されます(割り当てCPE/PURLの削除と同様の挙動です)。ただし、その脆弱性やタスクが同一サーバの他のソフトウェアにも紐づいている場合は削除されません
- ソフトウェア単位で有効化しても(選択したソフトウェア・絞り込み全件とも)、CPE が割り当て済みのソフトウェアは自動割当の対象外です
5. CPE 自動割当機能の無効化(グループ設定)#
CPE 自動割当を無効にしたい場合は、グループ設定から無効に切り替えます。
- 無効にすると、以降のスキャンでは新規の自動割当が行われなくなります
- 無効にしても、過去に自動割当された CPE はデフォルトではそのまま維持されます
- 「自動割当済み CPE を一括削除」オプションを選択すると、自動割当された CPE を一括で削除できます
- 一括削除を行うと、削除された CPE に関連する脆弱性情報およびタスクも削除されます。ただし、その脆弱性やタスクが同一サーバの他のソフトウェアにも紐づいている場合は削除されません