OWASP ZAPの設定と使い方


以前、脆弱性診断ツールOWASP ZAPのインストールという記事を書きました。今回は、OWASP ZAPで脆弱性診断を行うために必要となる設定について書いていきたいと思います。

ローカルプロキシ設定

OWASP ZAPにはローカルプロキシ機能があり、OWASP ZAPをローカルプロキシとして動作させることができます。

OWASP ZAP側の設定

ツールからオプションを選択すると以下の画面が出てきます。

「Address」と「ポート」を設定します。デフォルトでは、localhost:8080となっています。既に別のプログラム等で8080ポートを使っている場合は任意のポート番号を設定してください。今回は「18080」を設定します。設定が終わったらOKボタンをクリックして設定を保存してください。

ブラウザ側の設定

ブラウザを開き、オプションを選択してください。(今回は、Firefoxを使います。)

ネットワークプロキシの接続設定タブを押すと、設定画面が開きます。

手動でプロキシを設定するを選択して、OWASP ZAP側で設定したアドレスとポートと同じものを設定しOKを押してください。

Webサイトにアクセス

ローカルプロキシの設定後、自身で作成したWebサイトにローカルでアクセスしてみてください。

正しく設定が行われていれば、画面左側のサイトの所にOWASP ZAPのところにアクセスしたサイトのURLが追加されていると思います。これで、脆弱性診断を行うための準備が完了です。

脆弱性診断を行う前に

プロテクトモードに変更

OWASP ZAPには4つのモードがあります。初回起動時には、標準モードが設定されているのでプロテクトモードに変更してください。

画面左上でモードの変更が行えます。プロテクトモードにする理由は、標準モードや攻撃モードは自分の管理外のサイトへの診断を行ってしまう可能性があるためです。反対に、セーフモードだと脆弱診断の処理が一切できないモードためプロテクトモードを使用します。

また、プロテクトモードにするとクイックスタートが使用できなくなります。


標準モード/攻撃モードの時のクイックスタート画面


セーフモード/プロテクトモードの時のクイックスタート画面

もし、間違って攻撃モードを選択しても警告が出るようになっています。

脆弱性診断を行ってみる

プロテクトモードに変更後、ぺネトレーションテストを行ってみたいと思います。サイトタブに表示されているURLを右クリックすると、攻撃があります。ですが、このままでは下記画面のようにぺネトレーションテストを行うことができません。

コンテキストに含める

プロテクトモードでぺネトレーションテストを行うには、テスト対象のURLをコンテキストに含める必要があります。

サイトタブに表示されているURLを右クリックして、「コンテキストに含める>New Context」を選択するとセッションプロパティ画面が出てきます。

URL部分を選択して、OKを押すとコンテキストに含まれます。コンテキストに含まれると下記の画面の赤枠で囲ってある部分が赤い丸が表示されます


コンテキストに含める前


コンテキストに含めた後

これで、動的スキャン等の攻撃を行うことができるようになったので、実際に自分で作ったサイトに行ってみたいと思います。

※OWASP ZAPでぺネトレーションテスト行う際は、ローカル環境で自分で管理しているサイトにのみにしてください。インターネット上に公開されている第三者が管理しているサーバに、行うと不正アクセスと見なされる可能性があります。

動的スキャンを行っています。スキャン完了後に脆弱性があった場合は、アラートに表示されます。

SQLインジェクションが検出されました。リスクレベルはHigh、Medium、Low の3段階で評価されます。

セッションの保存とレポートの生成

セッションの保存

OWASP ZAPはセッションの保存が可能です。今回行ったぺネトレーションテストのセッションを、保存したいと思います。

「ファイル>永続化セッション」を選択すると以下の画面が出力されてきます。

ファイル名と保存場所を選択して保存ボタンを押すと保存されます。保存したセッションは、「ファイル>セッションデータファイルを開く」で開くことができます。

レポートの生成

OWASP ZAPはぺネトレーションテストを行った結果を、HTML形式、XML形式で生成することができます。今回はHTMLレポートを生成したいと思います。

「レポート>HTMLレポートを生成」を選択し、ファイル名と保存場所を指定すると生成することができます。

生成されたレポートは、下記画面のように出力されます。