【OWASP ZAP】Web脆弱性診断ツール|【インストールと基本的な使い方】
はじめに
アプリケーションに脆弱性がある場合、以下のような被害に遭い、運営者やそれを利用するユーザにまで影響が及びます。
- 不正にアクセスされる(情報流出)
- データを不正に書き換えられる
Webアプリケーションは、場合によっては不特定多数のユーザがアクセスするため、脆弱性がある状態での公開は非常に危険でしょうか。(特に個人情報を扱うようなアプリなど)
ウェブアプリケーションのセキュリティ脆弱性をテストするために、OWASP ZAPを使用してみましょう。OWASP ZAPはオープンソースで無料で利用できるツールでありながら、SQLインジェクションの脆弱性など、そういったセキュリティに関する診断を行うことができます。
Webアプリケーションのすべての画面を手動でチェック、または、不正パラメータを手動で送信して確認というのは難しでしょうか?
このツールを使うことで、自動で様々なパターンの検証を行い診断を行うことができます。
脆弱性診断を行う専門の業者がたくさんありますが、費用が高いし、作成したアプリケーションを「取り敢えず診断してみたい」という気持ちがあれば、とても便利です。
インストールと基本的な使い方
それではOWASP ZAPをインストールしていきましょう。
Javaのインストール
OWASP ZAPのインストール前に、JREをインストールする必要があります。
JREがインストールされていない状態で、OWASP ZAPをインストールしようとすると、以下のエラーが表示されます。

以下のページより、64bit版のJREをダウンロードしてください。
ライセンスを確認し、ダウンロードします。
現時点で、Version 8 Update 311でした。

インストーラを起動し、インストールを実行します。

しばらくすると、インストールが完了しました。

OWASP ZAPインストール
以下のページより、OWASP ZAPのインストーラをダウンロードします。
https://www.zaproxy.org/download/

ダウンロードしたインストーラを起動します。
次へ進みます。

ライセンスを確認し、次へ進みます。

ここでは標準インストールを選択しました。
インストール先を変更したい場合は、カスタムインストールを選択します。

インストールを開始します。

インストールが完了しました。

旧バージョンのダウンロード
古いバージョン(例えばv2.10.0)をダウンロードしたい場合は、GitHubのリポジトリにあります。
さらに古いバージョンも探せばあります。
OWASP ZAP起動
早速起動してみましょう。


プロテクトモードになっていることを確認しましょう。
これが選択されていることにより、コンテキストに登録されたサイトのみが診断対象となります。

OWASP ZAP設定
OWASP ZAPのオプションを開きます。

ローカル・プロキシから、ポートを確認します。
デフォルトで18080になっていましたが、必要に応じて変更してください。

Firefoxを開き、設定を変更します。
ネットワークの設定の接続設定を開きます。

OWASP ZAPの設定と同じく、プロキシとポートを指定します。

今回は、ローカル(自分のPC)に作成したWebアプリケーションを対象にしてみます。
Laravelで作成したサイトを表示しました。

OWASP ZAP上で認識されました。

OWASP ZAPの基本的な使い方
このサイトを対象とするために、コンテキストへ登録します。
サイトを右クリックし、規定のコンテキストへ追加しました。

サイトがコンテキストに追加されました。

これでサイトへの攻撃ができるようになりました。

スパイダー
スパイダーとは、サイトに含まれるページを自動的に検知します。
スパイダーを選択します。

スコープを確認し、スキャンを開始します。

対象サイトがLaravelのスタートページであり、それほどリンクがないのですが、一部のファイルを認識しました。

ちなみにこのページには、外部のURLが含まれていますが、コンテキストに含まれないページは追加されませんでした。

動的スキャン
それでは実際に脆弱性の診断を行いましょう。
動的スキャンを選択します。

設定はそのままでスキャンを開始しました。

ページ数やスキャンの設定によりますが、時間がかかります。
スキャンが完了しました。

アラートタブを確認すると、スキャンした結果が表示されます。
リスクというのが危険度です。リスクが高いものは対応したほうが良いと思いますが、必要に応じて対応可否を検討すると良いでしょう。

レポートの出力
どうやら2.11.0でレポートの出力が変わったようです。

なにやら文字化けしているようですが・・

以前とは違うレポート結果が出力できました。

セッションの保存
今回行った作業を、セッションとして保存しておきましょう。
次回、OWASP ZAPを起動後に、同じ状態に読み込むことができます。(セッションデータファイルを開く)

後処理
一通り作業が終わったら、Firefoxの設定を戻しておきましょう。

さいごに
今回はツールを使用して、脆弱性診断を行ってみました。
脆弱性はなかなか見つけにくいため、コーディング時に気をつけるのはもちろんですが、こういったツールで確認するのも効果的です。
作成したWebアプリケーションには、是非利用しましょう。