はじめに
本章ではOWASP ZAPを使用して自サイトの脆弱性診断をしていきます。
OWASP ZAPの診断機能、方法は色々あります。
そのなかで今回は、OWASP ZAPをプロキシとして使用し、リクエストを再現して脆弱性チェックする診断をしてみようと思います。
インストールと必須の設定
本章ではOWASP ZAPを使用して自サイトの脆弱性診断をしていきます。
が、その前に準備としてインストールと診断をするための設定が必須となります。
インストールと設定がまだの方は以下をそれぞれ参考にしてください。
診断方法について
今回自分がやった診断方法は、
OWASP ZAPをプロキシとして使用し、リクエストを再現して脆弱性チェックする方法です。
簡易的なチェック方法として指定したURLをルートとし、スキャンをかける診断方法がありますが、人間が操作して辿りつけるようなインプットまで再現できません。
今回の診断方法は実際に操作したリクエストを元に脆弱性を検知してくれる方法となります。
簡易チェックと組み合わせるとよりより効果的でしょう。
また、OWASP ZAPはこのほかにも診断機能は充実しているので、背景に合わせて必要な診断をするのがよいでしょう。
診断機能については以下のサイトを参考にしました。
診断前の準備
OWASP ZAPとFirefoxを立ち上げましょう。
OWASP ZAPとFirefoxの連携を確認
まず診断するサイトをFire Foxで開きましょう。
そして適当にサイト内で画面遷移してみましょう。
そうするとどうでしょう。OWASP ZAPの「履歴」タブに操作したリクエストがリアルタイムで蓄積されていきます。
このように、Firefoxで操作したリクエストがOWASP ZAPに履歴として登録されていくことを確認しましょう。
ここで連携されていなければ診断ができませんので、設定から見直しましょう。
コンテキストに登録
診断するサイトはコンテキスに含める必要があります。
左メニュー「サイト」項目に操作したサイトがグルーピングされていきますので診断するサイトをコンテキストに含めましょう。
注意として、決して他人のサイトを対象とせず、自サイトのみを対象とするよう気を付けてください。
診断対象サイト上にマウスカーソルを合わせ、右クリック =>「 コンテキストに含める」 => 「New Context」
コンテキストに登録されるとサイト名の旗の色が赤色になるはずです。
サイト配下全てを指定す
コンテキストに登録したサイト配下全てを診断対象と指定することもできます。
まず、セッションプロパティを立ち上げましょう。
診断対象サイト上にマウスカーソルを合わせ、右クリック =>「 コンテキストに含める」 =>「 既定コンテキスト」
セッションプロパティがたちあがります。
セッションプロパティで対象のサイトを選択し「変更」を選択すると「正規表現を変更」上のサイト指定を「サイトホスト/.」というように「/.」を付与すると配下全てを対象とすることができます。
操作履歴を残す
リクエストを再現する方法として診断サイトをぽちぽちします。
機械操作できないようなリクエストもこうやって手動で履歴に残すことによって診断の対象としてくれるのがいいですね。
どんどん履歴に蓄積していきましょう。
※この時点で履歴に診断対象以外のサイトが蓄積されても問題ありません。
診断を実行する際、コンテキストに登録したサイトで絞ることができます。
診断実行
ヘッダメニューの「ツール」を選択して「動的スキャン」を選択。
「参照」=>「規定コンテキスト」を選択します。
「スキャンを開始」で診断が開始されます!
あとはOWASP ZAPがリクエスト操作の履歴をもとにサイトに対して脆弱性がないかスキャンしてくれます。
オレンジの進捗バーが100%になるまで待ちましょう。(結構がっつりやってくれますので気長に待ちましょう・・・)
診断結果
進捗バーが100%になったら「アラート」タブを選択してみましょう。
脆弱性が含まれるアラートがでてきます。(あれば)
項目をクリックすれば解説等も確認できます。
しっかり対策を講じましょう!
最後に
作業が終わったらアドオンのプロキシの設定を解除しておくことを忘れずに。
一回一回戻すのが面倒ならアドオンとかで切り替えられるようにしても良いかもです。
また、大事なことなので繰り返しますが、決して他人のサイトを対象としないようにしましょう。
以上となります。