はじめに
OWASP ZAPを使用して、Webの脆弱性診断を行ってみます。OWASP ZAPはオープンソースで無料で使うことができます。
Webアプリケーションのすべての画面を手動でチェック、または、不正パラメータを手動で送信して確認というのは難しいですが、このツールを使うと、自動で様々なパターンの検証を行い診断を行うことができます。
脆弱性診断を行う専門の業者がありますが、費用が高いです。
作成したアプリケーションに対し、「取り敢えず診断してみたい」という場合にはとても便利です。
アプリケーションに脆弱性があると以下のような被害に遭い、運営者やそれを利用するユーザにまで影響が及びます。
- 不正にアクセスされる(情報流出)
- データを不正に書き換えられる
Webアプリケーションは、場合によっては不特定多数のユーザがアクセスするため、脆弱性がある状態での公開は非常に危険です。(特に個人情報を扱うようなアプリなど)
脆弱性の危険性を試した記事を以前まとめましたので、ご覧ください。
本記事はWindowsで解説していますが、Mac版については以下の記事をご覧ください。
それではOWASP ZAPをインストールしていきましょう。
他にも私のブログで、ツールについて解説している記事がありますのでご覧ください。
最新のバージョンのOWASP ZAPを試した記事もご覧ください。
Javaのインストール
OWASP ZAPのインストール前に、JREをインストールします。
JREがインストールされていない状態で、OWASP ZAPをインストールしようとすると、以下のエラーが表示されます。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h29_42.png)
インストール4jウィザードは、システム上にJava(TM)ランタイム環境を見つけることができませんでした。適切な64-bitのJREを検索してください。(最小バージョン: 1.8)
以下のページより、64bit版のJREをダウンロードします。
ライセンスを確認し、ダウンロードします。
現時点で、Version 8 Update 311でした。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h34_57-500x466.png)
インストーラを起動し、インストールを実行します。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h36_56-1024x562.png)
しばらくすると、インストールが完了しました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h38_57-1024x562.png)
OWASP ZAPインストール
以下のページより、OWASP ZAPのインストーラをダウンロードします。
Windowsの64bitインストーラを選択しました。
ファイルサイズが大きいので、少し時間がかかりました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h09_00-1024x257.png)
ダウンロードしたインストーラを起動します。
次へ進みます。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h40_33-500x420.png)
ライセンスを確認し、次へ進みます。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h40_55-500x420.png)
ここでは標準インストールを選択しました。
インストール先を変更したい場合は、カスタムインストールを選択します。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h41_17-500x420.png)
インストールを開始します。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h42_08-500x420.png)
インストールが完了しました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h42_45-500x420.png)
旧バージョンのダウンロード
古いバージョン(例えばv2.10.0)をダウンロードしたい場合は、GitHubのリポジトリにありました。
さらに古いバージョンも探せばあります。
OWASP ZAP起動
早速起動してみましょう。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h46_51-500x547.png)
セッションの保持方法を任意で選択します。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h48_33.png)
プロテクトモードになっていることを確認しましょう。
これが選択されていることにより、コンテキストに登録されたサイトのみが診断対象となります。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-05_23h49_32-1024x772.png)
OWASP ZAP設定
OWASP ZAPのオプションを開きます。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h02_59-500x547.png)
ローカル・プロキシから、ポートを確認します。
デフォルトで18080になっていましたが、必要に応じて変更してください。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h05_45-1024x511.png)
Firefoxを開き、設定を変更します。
ネットワークの設定の接続設定を開きます。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h09_12-1024x219.png)
OWASP ZAPの設定と同じく、プロキシとポートを指定します。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h11_20-1024x621.png)
今回は、ローカル(自分のPC)に作成したWebアプリケーションを対象にしてみます。
Laravelで作成したサイトを表示しました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h15_25-1024x473.png)
OWASP ZAP上で認識されました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h17_46-1024x682.png)
OWASP ZAPの基本的な使い方
このサイトを対象とするために、コンテキストへ登録します。
サイトを右クリックし、規定のコンテキストへ追加しました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h20_38.png)
サイトがコンテキストに追加されました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h21_20-500x427.png)
これでサイトへの攻撃ができるようになりました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h22_18-1024x334.png)
スパイダー
スパイダーとは、サイトに含まれるページを自動的に検知します。
スパイダーを選択します。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h26_22.png)
スコープを確認し、スキャンを開始します。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h26_41-500x329.png)
対象サイトがLaravelのスタートページであり、それほどリンクがないのですが、一部のファイルを認識しました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h28_24.png)
ちなみにこのページには、外部のURLが含まれていますが、コンテキストに含まれないページは追加されませんでした。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h30_20-1024x229.png)
動的スキャン
それでは実際に脆弱性の診断を行いましょう。
動的スキャンを選択します。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h33_06-1024x356.png)
設定はそのままでスキャンを開始しました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h33_36-500x379.png)
ページ数やスキャンの設定によりますが、時間がかかります。
スキャンが完了しました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h35_42-1024x111.png)
アラートタブを確認すると、スキャンした結果が表示されます。
リスクというのが危険度です。リスクが高いものは対応したほうが良いと思いますが、必要に応じて対応可否を検討すると良いでしょう。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h36_45-1024x282.png)
レポートの出力
どうやら2.11.0でレポートの出力が変わったようです。
レポートのGenerate Reportを選択します。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h46_39.png)
なにやら文字化けしているようですが・・
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h47_30-500x442.png)
以前とは違うレポート結果が出力できました。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h48_07-1024x891.png)
セッションの保存
今回行った作業を、セッションとして保存しておきましょう。
次回、OWASP ZAPを起動後に、同じ状態に読み込むことができます。(セッションデータファイルを開く)
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h50_18.png)
後処理
一通り作業が終わったら、Firefoxの設定を戻しておきましょう。
![](https://chigusa-web.com/wp-content/uploads/2021/11/2021-11-06_00h54_37-1024x287.png)
さいごに
今回はツールを使用して、脆弱性診断を行ってみました。
脆弱性はなかなか見つけにくいため、コーディング時に気をつけるのはもちろんですが、こういったツールで確認するのも効果的です。
作成したWebアプリケーションには、是非利用しましょう。
他にも私のブログで、ツールについて解説している記事がありますのでご覧ください。
コメント