OWASP Depedency Check
Dependency-Check is a utility that identifies project dependencies and checks if there are any known, publicly disclosed, vulnerabilities. Currently Java and .NET dependencies are supported; however, support for Node.JS, client side JavaScript libraries, etc. is planned.
とあるように、未知の脆弱性ではなく、既知の脆弱性を含むライブラリを検査してくれます。
このツールは、常にライブラリのバージョンを最新にしている開発チームでは必要がないと思う。けれども、なかなかライブラリのバージョンを上げようとはしない開発チーム(or上司)に対して、バージョンを上げる説得材料を提供してくれるます。
実行方法
Maven でも実行できるけれども、Ant の場合は以下のようなスクリプトです。このスクリプトは OWASP Dependency Check のダウンロードからタスクの定義、検査までを実行します。またレポートを HTML で出力しているけれども、Jenkins のプラグインと連携する場合は、 reportformat="XML" に変更してください。
<project>
<!-- OWASP Dependency Check のバージョン -->
<property name="dependency.check.version" value="1.2.4" />
<!-- OWASP Dependency Check のダウンロード先ディレクトリ -->
<property name="dependency.check.lib.dir" location="target/vendor/dependency-check" />
<!-- OWASP Dependency Check のファイル名 -->
<property name="dependency.check.filename" value="dependency-check-ant-${dependency.check.version}.jar" />
<!-- OWASP Dependency Check のダウンロード先ファイルパス -->
<property name="dependency.check.jar" location="${dependency.check.lib.dir}/${dependency.check.filename}" />
<!-- OWASP Dependency Check のダウンロード元URL -->
<property name="dependency.check.url" value="http://dl.bintray.com/jeremy-long/owasp/${dependency.check.filename}" />
<!-- 依存ライブラリを置いているディレクトリ -->
<property name="dependency.check.target.dir" location="lib/runtime" />
<target name="dependency-check.html"
description="依存ライブラリの脆弱性を検査する"
depends="-dependency-check.jar">
<taskdef name="dependency-check"
classname="org.owasp.dependencycheck.taskdefs.DependencyCheckTask">
<classpath location="${dependency.check.jar}" />
</taskdef>
<dependency-check applicationname="Sample Application"
autoupdate="true"
reportoutputdirectory="${target.dir}"
reportformat="HTML">
<fileset dir="${dependency.check.target.dir}">
<include name="*.jar"/>
</fileset>
</dependency-check>
</target>
<!-- OWASP Dependency Check をダウンロードする -->
<target name="-dependency-check.jar"
depends="-downloaded.dependency-check.jar"
unless="downloaded.dependency-check.jar">
<delete dir="${dependency.check.lib.dir}">
<include name="*.jar" />
</delete>
<mkdir dir="${dependency.check.lib.dir}" />
<get src="${dependency.check.url}" dest="${dependency.check.lib.dir}" />
</target>
<!-- OWASP Dependency Check をダウンロード済みかチェックする -->
<target name="-downloaded.dependency-check.jar">
<available property="downloaded.dependency-check.jar"
file="${dependency.check.jar}" />
</target>
</project>
初回実行時は20〜30分くらいかかるので、コーヒーでも飲んで気長に待ってください。