LoginSignup
10
8

More than 5 years have passed since last update.

OWASP Dependency-Checkを使って依存ライブラリの脆弱性をスキャン

Last updated at Posted at 2017-04-24

この記事ではOWASP Dependency-Checkを用いてJavaで書かれたプロダクトが依存しているライブラリの脆弱性をスキャンするまでの方法を記述しています。自分がMacユーザーなのでMacユーザー対象に書いていますが、公式ドキュメント等読めば*nixやWindows向けの導入も書いてあるので参考にしてみてください。

OWASP Dependency-Checkとは

OWASP Dependency-Checkはオープンソースの脆弱性スキャンツールです。特にこれはプロダクトが依存しているライブラリ(jar等)をスキャンしてバージョンを調べ、既存の脆弱性情報と照らし合わせて脆弱性が無いかを調べてくれます。具体的に言うと、Javaでは lib/ 以下の .jar ファイルを、Rubyでは .gemspec をスキャンします。スキャンの結果はXMLやHTML、VULN形式で出力することが可能です。

このツールはCLIの他にJenkinsプラグイン形式、Mavenプラグイン形式などがあるので、用途に応じて必要なものを利用すると良いです。この記事ではCLI版を紹介します。

Dependency-Check CLIのインストール

Macの場合はHomebrewを利用していると非常にかんたんです。


% brew install dependency-check
% dependency-check --version
Dependency-Check Core version 1.4.5

*nixやWindowsは以下のページを参考にしてみてください。
http://jeremylong.github.io/DependencyCheck/dependency-check-cli/

Dependency-Check CLIを使ってスキャンする

今回は Jackson (https://github.com/codehaus/jackson) を使ってみることにします。


% git clone https://github.com/codehaus/jackson.git
% cd jackson

# --projectには識別出来る名前をつけます
# XMLで出力したい場合は `--format XML` オプションを付けます
% dependency-check --project "TestJackson-Dependency-Check" --scan lib/
# 初回だとここでNVDの長いダウンロードが始まります
# 略
[INFO] Analysis Complete (8 seconds)

% ls | grep dependency-check-report
dependency-check-report.html

dependency-check-report.html が出力されていれば成功です。

出力結果を確認する

HTML形式の場合、Chromeなどのブラウザで開いて見てください。
すると以下のようなページを確認できます。

スクリーンショット 2017-04-25 1.05.49.png

結果画面について、このツールを使おうと考えている人には細かく説明しなくても読めそうですし大変なので割愛させてください......

最後に

今回の記事ではOwasp Dependency-Checkのかんたんな説明と、CLIで基本的な動作をさせるところまで紹介しました。
今後はJenkinsでの導入方法やMavenに組み込む方法等、あまり日本語情報が無いものについて紹介したいと思っています。

[追記] 2017/04/28
dependency-check maven plugin版の記事を書きました
http://qiita.com/0x003f/items/c853ff6b71b8ef1d4524

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8