スキャン結果レポート
レポートの記載内容について見ていきましょう。生成されたhtmlファイルを開くと、スキャン結果レポートを閲覧できます。
まず、レポートの上部にはスキャン結果の概要が出力されています。
コマンドオプションで指定したプロジェクト名の下にスキャン情報(ツールのバージョン、レポート作成日時、スキャンした依存ファイル数、検出した脆弱性数など)が出力されています。
続く表では、スキャンした依存ファイルに関する以下のような情報が記載されています。
Dependency | スキャンした依存ファイル名 |
---|---|
CPE | 検出されたCPE名 |
GAV | GAV情報(mavenのgroupId,artifactId,version) |
Highest Severity | 関連するCVE番号における最も高い脆弱性の深刻度 |
CVE Count | 関連するCVE番号の数 |
CPE Confidence | CPE名の特定に関する信頼度 |
Evidence Count | CPE名を特定するために利用したデータ量 |
デフォルトでは、スキャンした依存ファイルの内、脆弱性を検出したもののみの情報がレポートに表示されますが、「Showing Vulnerable Dependencies (click to show all)」をクリックすることで、スキャンしたすべての依存ファイル情報を表示することができます。
この例に示すスキャン結果レポートでは、対象アプリケーションでは脆弱性が報告されているバージョンのApache Strutsを利用していることなどが検出されています。このように「Highest Severity」の値が高いものが検出された場合には、危険な脆弱性が報告されているコンポーネントを利用している可能性があるということです。早急に調査し、対応する必要がある、ということになります。
レポートでは、スキャンした依存ファイルごとに、特定したCPE名に関する情報、報告されている脆弱性の詳細情報なども出力されます。
Evidence | CPE名を特定するために利用した収集データの詳細 |
---|---|
Related Dependencies | 関連する依存ファイル情報 |
Identifiers | 特定したCPE名や特定に関する信頼度などの記載 |
Published Vulnerabilities | 特定したCPE名に関連する脆弱性情報の詳細 |
特に、「Published Vulnerabilities」の項目をご覧ください。ここでは、CPE名に関連するCVE番号ごとに危険度、脆弱性の内容、脆弱性情報を掲載しているサイトへの参照リンクなどの情報が出力されています。CVE番号は脆弱性に割り当てられている一意な識別番号であり、この番号を元に脆弱性の詳細について調査できます。
誤検知の削除
これまでに説明した通り、OWASP Dependency Checkを利用すれば自動的に脆弱性が存在する利用コンポーネントを洗い出すことが可能です。しかしながら、例えばツールが判定したCPE名が間違っていた場合や、出力された脆弱性が環境や設定などの理由により実際には顕在化しないものであった場合など、誤検知(False Positive)が発生することがあります。そのため、スキャン結果については必ず内容の精査を行う必要があります。
誤検知があった場合の対応として、OWASP Dependency Checkでは--suppressionオプションを利用することによって任意のCPE名や特定のCVE番号などを検出結果に出力しないようにできます。--suppressionオプションでは削除する内容を定義したXMLファイルを個別に指定する必要がありますが、HTMLレポートからXMLファイルを簡単に作成できます。レポート中に結果として出力されているCPE名やCVE番号の隣に「suppress」ボタンがあります。このボタンを押すと以下のように該当する項目をスキャン結果に出力させないためのXML情報をダイアログで表示してくれます。
デフォルトでは、追記するためだけのXML情報のみが表示されるため、初めてXMLファイルを作成する場合には「Complete XML Doc」をクリックしてください。あとはこの内容をコピーしたXMLファイルを作成すれば完成です。CPE名を対象として指定した場合には指定したCPE名に関連する結果すべてが出力されなくなります。CVE番号を指定した場合には指定したCVE番号に関連する情報のみが結果に出力されなくなります。XMLが作成できれば、以下のように--suppressionで作成したXMLファイルを指定してスキャンを再度実行することで、ここで指定した内容が検査結果から除外されたレポートを出力できます。
> bin\dependency-check.bat --project sampletest --scan testapp --suppression suppression.xml
XMLファイルによる指定方法により、例えば「指定したCVSSスコアを下回る脆弱性情報をすべて検出結果から削除する」などの指定なども可能です。詳しくは以下のサイトをご参照ください。