概要
OWASP ZAPの動的スキャン機能を使うと、手軽に脆弱性の確認を行うことができます。
注意点として、スキャンの対象は自分が管理しているサイトか診断の許可を得ているサイトのみに行ってください。
また、スキャンの影響で本番環境にトラブルがおきる可能性があるので、本番環境ではなくステージング環境などの準備を行い、そちらに対してスキャンをすることをおすすめいたします!
説明
この記事は下記の内容で進めていきます。
- OWASP ZAPのインストール
- スパイダー機能を使って対象のURLを取得
- 動的スキャンを実施
- 結果の確認
実施手順を以下に書いていきます。
環境
- macOS Sierra 10.12.5
- OWASP ZAP 2.6.0
- WordPress 4.8.1
OWASP ZAPのインストール
下記からOWASP ZAPをダウンロードすることができます。
確認に使ったMacではJavaをインストール済みなので、Cross Platform Package版を使用しました。
インストール後の設定については、下記の記事を参考にいたしました。
Mac版のOWASP ZAPで脆弱性チェックの設定
https://doruby.jp/users/r357_on_rails/entries/Mac_OWASP_ZAP
スパイダー機能を使って対象のURLを取得
下記の設定が完了している状態で、スパイダー機能を使ってみます。
- OWASP ZAPの起動
- ブラウザのプロキシ設定
- OWASP ZAPでブラウザの通信が取得できている
- OWASP ZAPのウィンドウ左上にあるモードを「プロテクトモード」に設定
- 対象環境のドメインを「規定のコンテキスト」に設定
※今回はローカル環境にWordPressの確認用環境を用意しました。
デモ環境のURLへのアクセスをOWASP ZAPで取得しておいて、
「URL→攻撃→スパイダー」を選んで、スパイダー機能を実行します。
スパイダー機能を実行後、下記のようにデモ環境のURLが取得できています。
動的スキャンを実施
スパイダー機能と同様に、対象のURLについて「URL→攻撃→動的スキャン」を選んで、実行します。
実行中は、%表示の左にあるアイコンをクリックすると、下記のように実行状況が表示されます。
結果の確認
デモ環境で検出された脆弱性は、アラートの項目に表示されます。
また、検出結果は「レポート→HTMLレポート作成」から保存することで、HTML形式でまとまった形で確認することもできます。
結果の保存
「ファイル→永続化コンテキスト」で、今回行った確認データを保存することができます。
まとめ
この記事で行った動的スキャンでは、アクセス権限の不備などの手動で確認しないといけない脆弱性は見つけられませんが、簡単な操作でサクッと診断を行うことができます。
繰り返しになりますが、スキャンの対象は自分が管理しているサイトか診断の許可を得ているサイトのみに行ってください。
また、スキャンの影響で本番環境にトラブルがおきる可能性があるので、本番環境ではなくステージング環境などの準備を行い、そちらに対してスキャンをすることをおすすめいたします!
また、今回はスキャン中にログインが切れた場合について考慮せずに動的スキャンを行いました。
もし、スキャン中にログイン状態が切れてしまうと、その後のログインが必要なページの診断はエラーになってしまいます。
そこで、下記のサイトを参考に自動認証機能を設定しておきますと、ログイン状態が切れてしまっても自動でログイン処理が実行されてスキャンを継続してくれますので、正常に動的スキャンを実施することができるかと思います。
OWASP ZAP 2.3 自動認証機能の設定
https://www.pupha.net/archives/2046/
※検証に使用したOWASP ZAP 2.6.0とは一部表示は違いますが、同じ手順で自動認証機能を設定することができました。