コンテンツにスキップ

CPEスキャン#

CPE スキャンは、OS のパッケージ管理外にあるソフトウェア(ミドルウェア、フレームワーク、ネットワーク機器のファームウェアなど)の脆弱性を検知する機能です。

CPE(Common Platform Enumeration)という世界共通のソフトウェア識別子を FutureVuls に登録することで、スキャンが可能になります。 CPE の概要については「IPA による CPE 概説」を参照してください。

スキャン対象の例#

CPE スキャンは、OS やプログラミング言語のライブラリ「以外」の、以下のようなソフトウェアの脆弱性検知に有効です。

ネットワーク機器のスキャンについては「こちら」で詳細を確認してください。

  • ネットワーク機器のファームウェア: Cisco, Fortinet, Palo Alto Networks など
  • 商用ミドルウェア: Oracle Database, JP1など
  • 手動でインストールしたソフトウェア: Apache, Tomcat など

他のスキャン機能との使い分け

  • OSの脆弱性 を検知する場合、スキャナによるパッケージスキャンの方が正確なため、CPEでの検知は非推奨です。詳細は「OSパッケージのCPE登録」を参照してください。
  • プログラミング言語のライブラリ をする場合、より手軽な「アプリケーションスキャン」の利用を推奨します。

CPEスキャンの概要#

FutureVuls は、米国立標準技術研究所(NIST)が提供する脆弱性データベース NVD の情報を主に使用して脆弱性を検知します。 NVD のデータに CPE 情報が登録されていない脆弱性は検知できません。

NVD で参照している情報

FutureVuls の CPE スキャンでは、NVD の JSON Feed をソースとして利用しています。 特に、JSON Feed 内の「CPE Configuration」の欄を用いて検知しています。 つまり、NVD に Configurations の情報が登録されていれば検知可能ですが、未登録の場合には検知できません。

なお、和製ソフトウェアなど一部の脆弱性は、JVN の情報も利用して検知できます(参考

CPEの登録方法#

CPE の登録は、サーバに新規ソフトウェアとして登録する方法と、サーバに登録済みのソフトウェアに CPE を割り当てる方法の2種類あります。

サーバに新規ソフトウェアとしてCPE登録#

サーバ詳細画面の ソフトウェア > ソフトウェア登録 から登録します。

image

CPE の登録後

CPE をサーバに登録しただけでは、その CPE に紐づく脆弱性は検知されません。 CPE を紐づけたサーバでスキャンが実行されたタイミングで、脆弱性が検知されます。 すぐに検知したい場合は、サーバの手動スキャンを実行してください。

1. プルダウンで選択して登録#

製品のプロダクト名・ベンダ名をプルダウンから検索します。 このリストには、NVD や JVN に登録されている情報が候補として表示されます。 なお、非推奨(Deprecated)な CPE は CPE 検索では取得されません。

cpe_version

プルダウンから選択した後、バージョン情報などを追加で設定できます。 リストの候補にない場合は手入力も可能です。

「NVD の CPE 検索ページ」のリンクをクリックすると、該当の CPE が NVD 上に登録されているかを調べることができます。

CPE追加ダイアログ

NVDのCPE検索ページ

2. URI形式・FormattedString形式で直接入力#

CPE の正式名称(cpe:/a:apache:http_server:2.4.52 など)が分かっている場合、直接貼り付けて登録できます。

  • URI 形式 (例: cpe:/a:microsoft:internet_explorer:8.0.6001:beta )
  • Formatted String 形式 (例: cpe:2.3:a:microsoft:internet_explorer:8.0.6001:beta:*:*:*:*:*:* )

のいずれの方法でも登録できます。

image.png

3. OWASP Dependency CheckのXMLから一括登録#

OWASP Dependency Check」の実行結果(XML ファイル)をアップロードすることで、検出されたライブラリの CPE を一括で登録できます。

image.png

4. フリーテキストで一括登録#

登録したい CPE が複数ある場合、テキスト形式でまとめて貼り付けて登録できます。

image

5. REST APIで登録#

API を利用して、外部プログラムから自動で CPE を登録できます。 詳細はAPIドキュメントを参照してください。

6. ソフトウェアのCSV形式での登録#

ソフトウェアを「プロダクト名,バージョン,ベンダ名」の CSV 形式で登録します。 OS のパッケージマネージャーでは自動検知されなかったソフトウェアを一括で登録できます。

image

以下の形式で CSV データを入力して登録できます。

name,version,vendor
apache,2.4.54,apache
nginx,1.22.0,f5
  • この方法で登録したソフトウェアは CPE と紐づけられませんが、登録後にCPEの割り当てを行うと脆弱性が検知されるようになります。
  • CSV の各行は「プロダクト名(name),バージョン(version),ベンダ名(vendor)」の順序で記載してください
    • プロダクト名とバージョン情報は必須です。ベンダ名は省略できます
  • 既に CSV 形式でソフトウェアを登録してあるものと同じプロダクト名で登録しようとすると、既存のソフトウェアのバージョン・ベンダ名が上書きで更新されます
    • 登録済みのソフトウェアのバージョンを更新したい場合は、同一プロダクト名の CSV 形式データを再度登録してください。
  • 入力ファイル内のヘッダー行は含めず、ダイアログのデフォルトヘッダとソフトウェアのリストだけ入力してください

サーバに登録済みのソフトウェアに CPE を割り当て#

既にサーバに登録しているソフトウェアに対して、別途 CPE を割り当てることができます。 Windows スキャナを用いて登録された KB 管理の対象外のソフトウェアや、ソフトウェアのCSV形式での登録機能で追加されたソフトウェアのような、そのままでは脆弱性検知の対象外のソフトウェアに対して CPE を割り当てます。

詳細は「CPEの割り当て」を参照してください。

CPEの削除#

登録済みの CPE は、ソフトウェア一覧や詳細画面から削除できます。

CPE の削除

CPEを削除すると、その CPE に関連する脆弱性情報やタスクも一緒に削除されることに注意してください。 なお、その脆弱性が他のソフトウェアにも紐付いている場合は、脆弱性やタスクは削除されません。

image

特殊なケースと注意点#

和製ソフトウェアのスキャン(JVNの利用)#

NVD には情報がない日本国内の製品(和製ソフトウェア)の脆弱性を検知したい場合、CPE 登録時に「和製ソフトウェアの脆弱性を JVN で検知する」にチェックを入れます。

この機能を有効にすると、JVN の情報を参照しますが、バージョンを問わず製品名が一致する全ての脆弱性が検知されます。 そのため、誤検知が発生する可能性が高くなることに注意が必要です。

そのため、NVD に情報がなくかつ JVN にのみ情報がある和製ソフトウェアの場合に限り、このチェックを有効にすることを推奨します。

非推奨(Deprecated)なCPEの扱い#

NVD によって古い形式と判断された「非推奨(Deprecated)CPE」を登録している場合、ソフトウェア詳細画面で警告が表示されます。 この非推奨な CPE では、今後新たな脆弱性が検知されなくなります(過去に検知した脆弱性情報は残ります)。 そのため、NVD のサイトで正しい CPE を確認し、FutureVuls 上で CPE を更新してください。 Deprecated な CPE の詳細は「Understanding Vulnerability Detail Pages」をご参照ください。

deprecated_cpe

CPEスキャンの処理詳細#

CPE スキャンの検知処理の詳細を図示します。

image