SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

OWASPでビルトイン・セキュリティ

組み込んだOSSコンポーネントの更新漏れを可視化する「OWASP Dependency Check」

OWASPでビルトイン・セキュリティ 第7回

  • X ポスト
  • このエントリーをはてなブックマークに追加

スキャンの実行

 では、OWASP Dependency Checkを利用してアプリケーションのプロジェクトファイルをスキャンしてみましょう!

 なお、本ツールを利用するためには、Java環境が必要となります。必要に応じてJava Runtime Environment(JRE)のインストールを実施してください。

 以下のサイトよりOWASP Dependency Checkをダウンロードしましょう。

 サイト右側のQuick Downloadの項目における「Command Line」のリンクをクリックすることで、CUI版のツール(ZIPファイル)をダウンロードできます。また後述する各種ビルドツールのプラグインに関するサイトへのリンクもこちらに掲載されています。

図3 OWASP Dependency Checkのウェブサイト
図3 OWASP Dependency Checkのウェブサイト

 上記サイトよりダウンロードしたZIPファイルに含まれているシェルスクリプトファイルやバッチファイルに、以下のオプションを指定して実行することでスキャンが可能です。

Linux環境での実行
$ ./bin/dependency-check.sh --project プロジェクト名  --scan スキャン対象のパス
Windows環境での実行
> bin\dependency-check.bat --project プロジェクト名  --scan スキャン対象のパス

 Mac環境ではHomebrewを利用してインストールが可能です。

$ brew update && brew install dependency-check
$ dependency-check --project プロジェクト名  --scan スキャン対象のパス

 スキャンを実行する際には、--projectオプションでプロジェクト名、--scanオプションでスキャン対象のパスを必ず引数として指定する必要があります。

 他に、基本となるコマンドオプションには以下のようなものがあります。

表1 基本となるコマンドラインオプション
コマンドラインオプション 内容
--advancedHelp ヘルプに拡張オプションを表示
--cveValidForHours 自動アップデートを実行するまでの時間間隔の指定
--exclude スキャンから除外するパスパターンの指定
-f,--format <format> レポートフォーマットの指定 (XML, HTML, VULN, ALL)
デフォルトではHTMLが選択、VULNは簡易的なCVE情報の一覧レポート
-h,--help ヘルプを表示
-l,--log 指定したファイルに詳細ログを出力
-n,--noupdate 指定すると自動アップデートを実施しない
-o,--out レポートを出力するフォルダパスの指定
-P,--propertyfile 読み込むプロパティファイルの指定
--project スキャンするプロジェクト名の指定
プロジェクト名はレポートに出力される
-s,--scan スキャン対象のパスを指定
--suppression XMLファイルを指定することによって誤検出を診断結果より削除可能
--symLink シンボリックリンクをたどるネスト(入れ子)の深さを指定
デフォルトは0でシンボリックリンクはたどらない
-v,--version バージョン情報の表示

 なお、基本オプション以外の拡張オプションも含め、オプションの詳細については以下サイトにまとまっているので、よろしければご参照ください。

 さて、コマンドプロンプトで、解凍したOWASP Dependency Checkのディレクトリに移動し、以下のとおりコマンドを実行します。

> bin\dependency-check.bat --project sampletest --scan testapp

 ここでは、「sampletest」というプロジェクト名で、同名のフォルダに配置している「testapp」ディレクトリ配下のファイルをスキャンし、結果をレポートに出力をすることを想定しています。ご自分で試される場合には--scanオプションにスキャンを実行したいプロジェクトファイルのパスをご指定ください。

 コマンドを実行すると、以下のようにスキャン実行のステータスが出力されていきます。

図4 スキャン実行時の様子
図4 スキャン実行時の様子

 「Analysis Complete」と表示されればスキャン完了です。なお、初回実行時にはNVDデータを丸ごとダウンロードするため、少し時間がかかります。

 スキャン完了後にフォルダを確認すると「dependency-check-report.html」というファイルが生成されています。これが、スキャン結果レポートです。実は、コマンドオプションで出力先(-o)やレポート形式(-f )などの指定が可能です。レポート形式はHTML(検出したCVE情報一覧だけの簡易レポートも選択可能)のほか、XMLを選択可能です。

図5 スキャン実行後のディレクトリ
図5 スキャン実行後のディレクトリ

次のページ
スキャン結果レポート

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
OWASPでビルトイン・セキュリティ連載記事一覧

もっと読む

この記事の著者

洲崎 俊(OWASP Japan)(スザキ シュン)

OWASP Japan Promotion Teamに所属する「とある診断員」。2006年よりセキュリティベンダに入社し、NW及びWebアプリケーションの脆弱性診断を中心としたセキュリティソリューションサービスの提供に携わる。現在はユーザ企業内のセキュリティチームにて、セキュリティエンジニアとしてセ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9608 2016/09/06 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング