はじめに
OWASP ZAPを使用して、Webの脆弱性診断を行ってみます。OWASP ZAPはオープンソースで無料で使うことができます。
Webアプリケーションのすべての画面を手動でチェック、または、不正パラメータを手動で送信して確認というのは難しいですが、このツールを使うと、自動で様々なパターンの検証を行い診断を行うことができます。
脆弱性診断を行う専門の業者がありますが、費用が高いです。
作成したアプリケーションに対し、「取り敢えず診断してみたい」という場合にはとても便利です。
アプリケーションに脆弱性があると以下のような被害に遭い、運営者やそれを利用するユーザにまで影響が及びます。
- 不正にアクセスされる(情報流出)
- データを不正に書き換えられる
Webアプリケーションは、場合によっては不特定多数のユーザがアクセスするため、脆弱性がある状態での公開は非常に危険です。(特に個人情報を扱うようなアプリなど)
脆弱性の危険性を試した記事を以前まとめましたので、ご覧ください。
Windowsでのインストール方法や使い方については、以下の記事を参考にしてください。
本記事ではMacを使用しています。
他にも私のブログで、ツールについて解説している記事がありますのでご覧ください。
【紹介】個人開発
Mac向けの、定型文の挿入も可能なクリップボード履歴管理アプリです。
Windows版は以前からありましたが、基本的な使い方はMac版も同じですので、もしよかったらダウンロードしてみてください。
OWASP ZAPインストール
以下のページより、OWASP ZAPのインストーラをダウンロードします。
MacOS向けのインストーラを選択します。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.47.10-1024x372.jpg)
インストーラをダウンロードできました。
ZAP_2.11.1.dmgファイルをダブルクリックで開きます。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.48.09.png)
OWASP ZAP.appファイルを、アプリケーションフォルダへドラッグしインストールします。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.48.26.png)
OWASP ZAP起動
OWASP ZAPを起動する前に、Firefoxをインストールしておきます。
サイトにアクセスするために使用します。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.56.15-500x289.jpg)
早速起動してみましょう。
アプリケーションフォルダのOWASP ZAP.appを右クリックし、「開く」を選択します。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.49.15.png)
警告が表示されますが、「開く」を選択しました。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.49.49-300x450.png)
OWASP ZAPが起動します。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.50.04-500x536.png)
セッションの保持方法を任意で選択します。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.52.28-500x264.png)
OWASP ZAPが起動しました。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.51.55-1024x788.png)
プロテクトモードに変更します。
これが選択されていることにより、コンテキストに登録されたサイトのみが診断対象となります。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.53.23.png)
OWASP ZAP設定
OWASP ZAPのオプションを開きます。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.53.47-300x371.jpg)
ローカル・プロキシから、ポートを確認します。
デフォルトで8080になっていましたが、重複する可能性があるため18080に変更しました。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.54.17-1024x827.png)
診断を行うブラウザに、Firefox を使用します。
右上の Firefox アイコンをクリックし、Firefox を起動します。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.53.04-1024x250.png)
Firefox が起動します。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-22.58.18-1024x277.jpg)
Explore your application with ZAP
今回は、ローカル PC に作成した Web アプリケーションを対象にします。(Laravelで作成したサイト)
先ほど起動した Firefox で、以下の URL にアクセスし、Laravel の起動画面を表示します。
http://localhost/
以下のような画面が表示されますが、「Continue to your target」をクリックします。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.01.10-1024x631.png)
OWASP ZAP 上で認識されました。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.01.21-1024x368.png)
OWASP ZAPの基本的な使い方
このサイトを対象とするために、コンテキストへ登録します。
サイトを右クリックし、規定のコンテキストへ追加しました。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.01.40-1024x407.jpg)
サイトがコンテキストに追加されます。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.01.51-1024x890.png)
これで対象サイトへの診断ができるようになりました。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.02.14-1024x313.jpg)
スパイダー
スパイダーとは、サイトに含まれるページを自動的に検知します。
スパイダーを選択します。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.02.14-2-1024x313.jpg)
スコープを確認し、スキャンを開始します。
![img-border-none](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.02.29-1024x719.png)
対象サイトが Laravel の起動画面であり、それほどリンクがないのですが、一部のファイルを認識しました。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-29-12.05.05-300x138.png)
ちなみにこのページには、外部の URL が含まれていますが、コンテキストに含まれないページは追加されません。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.03.05-1024x275.png)
動的スキャン
それでは実際に脆弱性の診断を行いましょう。
動的スキャンを選択します。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-24-0.19.55-1024x173.png)
設定はそのままでスキャンを開始しました。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.03.59-1024x807.png)
ページ数やスキャンの設定によりますが、時間がかかります。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.04.45-1024x238.png)
アラートタブを確認すると、スキャンの結果が表示されます。
スコープで対象としている URL のみ表示するため、以下のアイコンをクリックします。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.04.33.png)
診断結果を確認しましょう。
リスクというのが危険度ですので、必要に応じて対策を検討しましょう。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.13.35-1024x238.jpg)
レポートの出力
診断結果をレポートとして出力することができます。
レポートのGenerate Reportを選択します。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.14.41.png)
Generate Reportをクリックします。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.15.00-500x435.png)
レポート結果が出力できました。
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.15.37-1024x599.jpg)
セッションの保存
今回行った作業を、セッションとして保存しておきましょう。
次回、OWASP ZAPを起動後に、同じ状態に読み込むことができます。(セッションデータファイルを開く)
![](https://chigusa-web.com/wp-content/uploads/2022/04/ScreenShot-2022-04-23-23.17.07.png)
さいごに
今回はMacのOWASP ZAPで動作確認を行いました。
脆弱性はなかなか見つけにくいため、コーディング時に気をつけるのはもちろんですが、こういったツールで確認するのも効果的です。
作成したWebアプリケーションには、是非利用しましょう。
他にも私のブログで、ツールについて解説している記事がありますのでご覧ください。
コメント
OWASP ZAPの設定でちょっと詰まっていたところがあり、ググりまくったのに一向に解決せず。
そしてこのページに辿りつき、提示通りの設定をしたら一発でした。
今までなんだったんだろう、、
一番わかりやすいサイトでした!ありがとうございました