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追加
から登録します。
現在、5種類の方法で登録できます。
CPE の登録後
CPE をサーバに登録しただけでは、その CPE に紐づく脆弱性は検知されません。 CPE を紐づけたサーバでスキャンが実行されたタイミングで、脆弱性が検知されます。 すぐに検知したい場合は、サーバの手動スキャンを実行してください。
1. プルダウンで選択して登録#
製品のプロダクト名・ベンダ名をプルダウンから検索します。 このリストには、NVD や JVN に登録されている情報が候補として表示されます。 なお、非推奨(Deprecated)な CPE は CPE 検索では取得されません。
プルダウンから選択した後、バージョン情報などを追加で設定できます。 リストの候補にない場合は手入力も可能です。
「NVD の CPE 検索ページ」のリンクをクリックすると、該当の CPE が NVD 上に登録されているかを調べることができます。
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:*:*:*:*:*:*
)
のいずれの方法でも登録できます。
3. OWASP Dependency CheckのXMLから一括登録#
「OWASP Dependency Check」の実行結果(XML ファイル)をアップロードすることで、検出されたライブラリの CPE を一括で登録できます。
4. フリーテキストで一括登録#
登録したい CPE が複数ある場合、テキスト形式でまとめて貼り付けて登録できます。
5. REST APIで登録#
API を利用して、外部プログラムから自動で CPE を登録できます。 詳細はAPIドキュメントを参照してください。
登録済みのCPEの管理#
CPEの更新#
管理しているソフトウェアをバージョンアップした場合、FutureVuls に登録した CPE も合わせて更新する必要があります。
- 実機のソフトウェアをアップデートする(例:Drupal 3.8 → 4.0)
- FutureVuls のソフトウェア一覧から該当の CPE(
cpe:/a:drupal:drupal:3.8
)を選択し、更新
ボタンからバージョンを4.0
に変更する - 再度スキャンを実行し、脆弱性が解消されたことを確認する
このように CPE を更新することで、タスクの状態を正しく引き継ぎながら CPE 情報を管理できます。
CPEの削除#
登録済みの CPE は、ソフトウェア一覧や詳細画面から削除できます。
CPE の削除
CPEを削除すると、その CPE に関連する脆弱性情報やタスクも一緒に削除されることに注意してください。 なお、その脆弱性が他のソフトウェアにも紐付いている場合は、脆弱性やタスクは削除されません。
特殊なケースと注意点#
和製ソフトウェアのスキャン(JVNの利用)#
NVD には情報がない日本国内の製品(和製ソフトウェア)の脆弱性を検知したい場合、CPE 登録時に「和製ソフトウェアの脆弱性を JVN で検知する」にチェックを入れます。
この機能を有効にすると、JVN の情報を参照しますが、バージョンを問わず製品名が一致する全ての脆弱性が検知されます。 そのため、誤検知が発生する可能性が高くなることに注意が必要です。
そのため、NVD に情報がなくかつ JVN にのみ情報がある和製ソフトウェアの場合に限り、このチェックを有効にすることを推奨します。
非推奨(Deprecated)なCPEの扱い#
NVD によって古い形式と判断された「非推奨(Deprecated)CPE」を登録している場合、ソフトウェア詳細画面で警告が表示されます。 この非推奨な CPE では、今後新たな脆弱性が検知されなくなります(過去に検知した脆弱性情報は残ります)。 そのため、NVD のサイトで正しい CPE を確認し、FutureVuls 上で CPE を更新してください。 Deprecated な CPE の詳細は「Understanding Vulnerability Detail Pages」をご参照ください。
CPEスキャンの処理詳細#
CPE スキャンの検知処理の詳細を図示します。