目次
- はじめに
- この記事でわかる・できること
- この記事の対象者
- 動作環境・使用するツールや言語
- OWASP ZAP とは
- インストール
- OWASP ZAP の設定
- 静的スキャン
- 動的スキャン
- 診断結果の確認
- 最後に
はじめに
リリース前には脆弱性診断を行っていると思いますが、様々な理由でいつも外部業者に診断してもらえるわけではありません。
- 個人情報を扱わないPoC開発なので、ライトに脆弱性診断を行いたい
- 趣味での個人開発なので、なるべくお金はかけたくない
- 外部業者に依頼はするが、事前にチェックしておきたい
こんな場合に自分で脆弱性診断を実施できたら良いと思いませんか?
Webアプリケーションのすべての画面を手動でチェックしたり、不正なリクエストを送信するのは難しいですが、OWASP ZAPであれば自動でチェックしてくれます。
今回はM1 MacにOWASP ZAPをインストールし、Webサイトの脆弱性診断を行います。
この記事でわかる・できること
- OWASP ZAPをインストールして、Webサイトの脆弱性診断を実施する方法
この記事の対象者
- 自分でWebサイトの脆弱性診断を行いたい人
- はじめてOWASP ZAPを利用する人
動作環境・使用するツールや言語
- OS バージョン
- Sonoma 14.5 (M1)
- ツール
- OWASP ZAP 2.15.0
OWASP ZAP とは
OWASP ZAP(Zed Attack Proxy)は、OWASPが提供するオープンソースのウェブアプリケーションセキュリティツールで、脆弱性診断やセキュリティテストを自動化するセキュリティスキャナーです。SQLインジェクションやクロスサイトスクリプティング(XSS)などの一般的な脆弱性を検出するための強力な機能を備えており、無料で利用できます。
インストール
OWASP ZAP のインストール
公式サイト: OWASP ZAP
今回はM1用なので、Apple Silliconをダウンロードします。
ファイルを開き、「Applications」フォルダにドラッグします。
インストール完了です。
Firefoxのインストール
この後Webサイトの解析でFirefoxを利用します。
FirefoxはZAPのプロキシ設定を簡単に構成できます。これによりZAPが通信をインターセプトし、サイト解析に利用できます。
詳細は省略しますので、下記からインストールをしてください。
公式サイト: Firefox
OWASP ZAP の設定
基本設定
最初に診断モードをプロテクトモードにしましょう。
これを選択することで明示的にコンテキストに設定したURLに対してのみ攻撃を行います。
※診断対象外サイトに攻撃しないように必ず設定しましょう。
Proxy設定
OWASP ZAP経由でリクエストされるようにLocal Proxy設定を行います。
ツール > オプション > Network > Local Servers/Proxies を開きます。
利用していないポートに変更します。
静的スキャン
ブラウザからの手動探索
Webブラウザ上で基本的な機能の一通りの操作を行って、診断対象URLを登録すると同時にリクエスト内容を診断します。
Firefoxのマークをクリックして、Firefoxを起動します。
[Continue to your target]をクリックして、サイト上で一通り動かしてみると、ZAP側の「サイト」配下にFireFoxで開いているURLがどんどん追加されていきます。
対象のサイトを右クリック > コンテキストに含める > 「既定コンテキスト」をクリックして診断対象として追加しましょう。
自動探索
さらに診断対象を自動探索したい場合はスパイダーという機能を使って、診断対象URLを登録してみましょう。
診断対象をクロール(巡回)してURLと各リクエスト、レスポンスを収集してくれます。
対象のサイトを右クリック > 攻撃 > スパイダーをクリック
コンテキストが間違っていないことを確認して、スキャンを開始しましょう。
動的スキャン
今度は動的スキャンを行います。ここまでで登録した対象URLにパラメータを変更しながら攻撃をしかけて診断します。
対象のサイトを右クリック > 攻撃 > 「動的スキャン」をクリックして攻撃します。
コンテキストが間違っていないことを確認して、スキャンを開始しましょう
スキャンは多少時間がかかります。
診断結果の確認
アラートタブの診断結果を確認します。
リスクの高さと要件に応じて、それぞれ適切に対応しましょう。
最後に
今回はWebサイトの脆弱性診断を自分で実施する方法を試してみました。
OWASP ZAPには他にもOPEN APIから定義を取り込んだり、CI/CDに組み込んで自動でスキャンすることもできますので、どんどん活用してセキュアなサイトを構築して行きましょう!