こんにちは、インフラ担当のちぇんです。
ZAPと言ってもドルアーガの塔から落とされたわけではありません。
OWASP ZAP を使ってみました。
振り返って書いた為、記憶があやふやな点もありますが書いてみました。(書けと言われた夢を見た)
◆準備
■準備するもの
・Javaバージョン8以降 OWASP ZAP を実行するために必要(JDK,JRE,Amazon Corretto,など)
・OWASP ZAP https://www.zaproxy.org/download/ から自分の環境に合うもの
・ブラウザは firefox を使用
理由:プロキシ設定やSSL証明書がブラウザ単体で登録できるため、OSの設定を変更せずに済む
※FirefoxではXSS(クロスサイトスクリプティング)フィルタが標準では実装されてないため、他のブラウザより診断向きかと思います。
※インストールについてはネット上にいろいろあるので割愛します。
■ OWASP ZAP 起動
セッション保持方法を選択し「開始」クリック
今回は変更せず「継続的に保持せず、必要に応じてセッションを保存」にします。
■モードの種類
・セーフモード:コンテキストに登録しても、クローリングや動的スキャンはできない
・プロテクトモード:コンテキストに登録したサイトのみ診断対象
・標準モード:見つけたサイトは外部でも調査してしまうため危険
・攻撃モード:コンテキストに登録したサイトにのみ調査可能(自動的にリアルタイム診断開始)
※名前から誤解しやすいですが、「攻撃モード」ではなく「標準モード」が一番危険です。
誤操作による被害を抑えるために「プロテクトモード」にしておきます。
■プロキシ設定
■ OWASP ZAP のプロキシ設定
ツール>オプションをクリック
ローカル・プロキシを選択
以下を入力
・Address
・ポート
※ポート番号は Dynamic Port Number の 49152 ~ 65535 が良いと思います。
■ firefox のプロキシ設定
設定>一般>ネットワーク設定>接続設定をクリック
「手動でプロキシーを設定する」を選択
以下設定内容
・IPアドレスとポートは OWASP ZAP と同じにする
・「このプロキシーをFTPとHTTPSでも使用する」にチェックを入れる
・プロキシーなしで接続は空白のまま、記載があったら削除する
■SSL/TLS通信対応
OWASP ZAP の CA 証明書をファイルにエクスポート
ツール>オプションをクリック
ダイナミックSSL証明書を選択
「保存」をクリックし保存先を指定
すぐに使うので開きやすいところに置きます。
firefoxに証明書をインポート
右上の[三]アイコンをクリック>オプションをクリック
左のメニューから「プライバシーとセキュリティ」を選択
右側の一番下「証明書を表示」をクリック
「認証局証明書」タブを選択し、「インポート」をクリック
先ほど保存した証明書ファイルを選択し「開く」をクリック
「この認証局によるウェブサイトの識別を信頼する」にチェックを入れて「OK」をクリック
「OWASP Zed Attack Proxy Root CA」が登録されていることを確認します。
◆OWASP ZAP で脆弱性診断
■診断対象の選定
■ firefox でターゲットサイトにアクセス
今回はESXiサーバ上に作成したテスト用仮想環境に実施します。
■ターゲットをコンテキストに登録
サイト内の診断対象サイトで右クリック
コンテキストに含める>New Contextを選択
Regexにターゲットが登録されていることを確認し「OK」をクリック
ターゲットがコンテキストに追加され赤丸がついたことを確認。
■診断対象を制限
「サイト」タブのすぐ下にある丸いアイコンを選択します
スイッチのように押すたびに「 Show only URLs in Scope 」と「 Show all URLs 」が切り替わります。
アイコンが赤くなっていれば、サイト配下もコンテキストに登録されているサイトのみ表示されます。
スコープのみにしておくことで診断対象をコンテキストに登録したものに限定できます。
◆診断対象の調査(クローリング)
■スパイダーの準備
ツール>オプションをクリック
スパイダーを選択
以下を確認します。
・クロールする最大の深さ:10 (実行元URLから何階層下まで調査するか)
・並列スキャンスレッド数:1 (実行するためにスレッドをいくつ同時に立ち上げるか)
「OK」をクリック
■スパイダーの実行
診断対象サイトを右クリック>スパイダーを選択
以下を確認します。
「スコープ」タブ
・「開始位置」「コンテキスト」が正しく指定されているか
・「再帰的」にチェックが入っているか
「詳細オプション」タブ
・「クロールする最大の深さ」が10になっているか
問題なければ「スキャン開始」をクリック
画面下段に「スパイダー」タブが追加され結果が表示されます。
「スパイダー」タブ内の「messages」タブで「ステータスコード」や「検出アラート」などページごとの結果が確認できます。
◆動的スキャンの実行
■動的スキャンの準備(スキャンポリシーの作成)
ポリシー>スキャンポリシーを選択
「スキャンポリシー管理」の画面で「追加」をクリック
今回設定した部分は以下となります。
・ポリシー:MyPolicy
・規定のアラートのしきい値:低
・規定の攻撃の強度:低
・適用(しきい値):「低」「全て」で「開始」をクリック
・適用(Strength To):「低」「全て」で「開始」をクリック
各カテゴリー右側の「しきい値」「強度」が「低」になったことを確認
(デフォルトでは「クライアント・ブラウザ」のアドオンはインストールされていないため空欄になるようです。)
内容を確認したら「OK」をクリック
作成したポリシーが登録されていることを確認し「閉じる」をクリック
■動的スキャンの実行
診断対象サイトで右クリック>動的スキャンを選択
以下を確認します。
「スコープ」タブ
・「開始位置」「コンテキスト」の指定が正しいか
・「再帰的」「詳細オプションを表示」にチェックが入っているか
「ポリシー」タブ
・ポリシー:プルダウンリストで作成したポリシーを選択
確認したら「スキャンを開始」をクリック
動的スキャンが開始すると画面下部に「動的スキャン」タブが追加されます。
「動的スキャン」タブ内上部中央に進捗が表示されます。
進捗バーの左側のアイコンをクリックすると診断状況を確認できます。
診断結果は画面下部の「アラート」タブに表示されます。
気になる項目をクリックすれば内容を確認できます。
以上が今回試した流れになります。
お疲れさまでした。
◆おまけ
アドオンについて
「ヘルプ」>「アップデートのチェック」からインストールできるようです。
気になった方は試してみてはいかがでしょうか。