NVDとCPEを使って脆弱性を検索する
Jan 29, 2023 09:30 · 1084 words · 3 minute read
NVDとCPEを使った脆弱性の検索方法を同僚に伝えたところ、良い反応をもらえたのでブログにも書いておこうと思います。 「特定バージョンのソフトウェアに存在する脆弱性をいい感じに検索したい開発者の皆様」のお役に立つと嬉しいです。
目次
NVDとは?
NVD(National Vulunerability Database)は、アメリカ国立標準技術研究所(NIST)が運営する脆弱性のデータベースです。 各種ソフトウェアの既知の脆弱性情報が登録されています。
CPEとは?
CPE(Common Platform Enumeration)はアメリカ政府が推進している情報セキュリティに関わる技術仕様の1つです。 ハードウェア、オペレーティングシステム、アプリケーションなどのプラットフォームを識別するための構造化された名称体系を規定しています。
下記の形式で表現します。
cpe:/{種別}:{ベンダ名}:{製品名}:{バージョン}:{アップデート}:{エディション}:{言語}
参照URL: 共通プラットフォーム一覧CPE概説:IPA 独立行政法人 情報処理推進機構
NVD+CPEで脆弱性情報を一覧表示する
NVD+CPEで、特定のソフトウェアの特定のバージョンに存在する脆弱性を調べます。 例えば下記の文字列でPHP 8.1.7の脆弱性を調べます。
cpe:2.3:a:php:php:8.1.7:*:*:*:*:*:*:*
検索結果画面の一覧から、「View CVEs」をクリックします。
今回はrc1ではない方をクリックしました。
「PHP 8.1.7」に存在する脆弱性が一覧表示されます。 脆弱性の「CVE」「Summary」「CVSS」が一覧で表示されるので、非常に便利です。
CPEの形式を覚えずにNVDで検索する方法
cpe:2.3:a:php:php:8.1.7:*:*:*:*:*:*:*
の形式を覚えるのが面倒な場合、NVDの検索機能から目的のCPEを探せます。
Keyword検索で「php 8.1.7」で検索します。
NVD - Search and Statistics (nist.gov)
Summaryを読み、検索結果の中からPHP本体の脆弱性を探します。
今回だと、一番上と上から二番目はPHP本体の脆弱性のようです。
一覧内のCVEのリンクをクリックします。
CVE詳細画面の下部にCPEが記載されているので、コピーして検索に使います。
また、CPEのリンクをクリック後に遷移するCPEの詳細画面には「View Vulnerabilities」というリンクがあります。 リンクをクリックすることで、コピーせずとも該当するCPEに存在する脆弱性情報の一覧を確認できます。