OWASP ZAPでの脆弱性診断の実施

モードの設定

モードは以下の4種類ありますが、常にプロテクトモードで運用してください。
利用者が意図したウェブサイトのみに脆弱性診断を実施するように制限することができます。

  • セーフモード
  • プロテクトモード
  • 標準モード
  • 攻撃モード

コンテキストの設定

コンテキストとは診断対象サイトやURLを登録したものです。コンテキストにURLを登録するとスコープも設定されます。スコープとは診断対象範囲のことです。
プロテクトモードでは脆弱性診断作業を実施するためには、診断対象をコンテキストおよびスコープに登録する必要があります。

コンテキストの登録方法は、OWASP ZAPを起動した状態でFirefoxで診断対象のサイトを表示します。そうするとサイトツリーにサイトのURLが表示されます。 登録対象サイトやURLを右クリックして「コンテキストに含める」の「New Context」をクリックします。 f:id:kopai:20201202163754p:plain

「セッション・プロパティ」ダイアログが表示されたら、右側の「Regex」を確認して「OK」をクリックします。

f:id:kopai:20201202163832p:plain

以上でコンテキストへの登録は完了です。

診断対象の調査/確定

OWASP ZAPには「スパイダー(Spider)」という診断対象を自動的に調査するツールが標準で実装されています。
一般的に「クローリング」や「スクレイピング」と呼ばれる手法で、対象となるウェブサイトのディレクトリやファイルを収集します。

スパイダーを実行する前に設定すべき項目があります。メニューの「ツール」→「オプション」でオプションダイアログを開き、「スパイダー」を選択してください。
スパイダーで重要なのは「クロールする最大の深さ」および「並列スキャンスレッド数」です。
スパイダーの推奨設定は以下の通りです。
f:id:kopai:20201202164019p:plain

スパイダーの実行手順は以下の通りです。

  • 診断対象ウェブサイトをコンテキストに登録します
  • サイトツリーで診断対象ウェブサイトを右クリックし、「攻撃」→「スパイダー」を選択します
  • 表示された「スパイダー」ダイアログで、「開始位置」および「コンテキスト」が正しく設定されていることを確認します
  • 再帰的」にチェックを入れます
  • 「詳細オプションを表示」にチェックを入れ、「詳細オプション」タブでクロールする最大の深さが設定通りになっているか確認します
  • 「スキャン開始」をクリックしてスパイダーを実行します。

実行後にアラートタブを表示すると、静的スキャンの結果を確認することができます。アラートタブがない場合はタブの+ボタンで追加できます。 f:id:kopai:20201202164205p:plain

また、サイトツリーにはクローリングした結果のURL等が増えています。
次に紹介する「動的スキャン」はここで取得した結果に対して行われることになります。

スパイダーを使った自動クローリングの機能はありますが、クローリングは手動で実施したほうがより正確なものになります。クローリングの基本はすべてのページを閲覧することです。
OWASP ZAPはクローリング時に各ページのパラメータも記憶し、そのパラメータが診断対象となるので、すべてのパラメータが出現するように意識して巡回する必要があります。

脆弱性診断の実施

OWASP ZAPには「動的スキャン」という自動的に脆弱性診断を実行するツールが標準で実装されています。
動的スキャンでは実際にSQLインジェクション攻撃や悪意のあるパラメータを送るなどして、脆弱性診断を行います。
実際の攻撃であり、データベースやウェブサイトを破壊してしまう可能性があるので、基本的には本番環境での動的スキャンは実施しないほうがいいです。

動的スキャンを実行するためには「スキャンポリシー」を設定する必要があります。
スキャンポリシーを作成するには、メニューの「ポリシー」で「スキャンポリシー」を選択します。
推奨設定は以下の通りです。
f:id:kopai:20201202164429p:plain

動的スキャンの実行手順は以下の通りです。

  • 診断対象ウェブサイトをコンテキストに登録します
  • クローリングを行います
  • サイトツリーで診断対象ウェブサイトを右クリックし、「攻撃」→「動的スキャン」を選択します
  • 表示された「動的スキャン」ダイアログで、「開始位置」および「コンテキスト」が正しく設定されていることを確認します
  • 再帰的」にチェックを入れます
  • 「詳細オプションを表示」にチェックを入れ、「ポリシー」タブの「ポリシー」プルダウンリストで作成したスキャンポリシーを選択します
  • 「スキャン開始」をクリックして動的スキャンを実行します
  • 動的スキャンの進捗率は動的スキャンタブの上にあるプログレスバーに表示されます

まとめ

OWASP ZAPの脆弱性診断を実施する方法のメモです。
OWASP ZAPの各パラメータはあくまでも例ですので、過信しすぎないようにしてください。
OWASP ZAPのモードを「プロテクトモード」にし、脆弱性診断の対象サイト(URL)を正しくコンテキストに登録することで、誤って自分の管轄外のウェブサイトに攻撃をしかけることはないです。
ここさえ間違えなければ、他人に危害を加えることはないと思います。