こんにちは、エンジニアのmaimaiです。
はじめに
OWASP ZAP(OWASP ZedAttackProxy)は、Open Web Application Security Project(OWASP)のプロジェクトに属していて、無料かつオープンソースで提供されているWebアプリケーション向けのスキャナーです。
セキュリティテストに不慣れな人も、慣れている人も、両方の人が使えるツールです。
今回は、OWASP ZAPをプロキシサーバーとして動作させる設定をして、Webアプリケーションの脆弱性スキャン(動的スキャン)を実行する手順をご紹介します。
注意!
脆弱性スキャンをやってみる場合、以下のことに注意してください。
- ご自身が管理しているサイトであること
- 使えなくなっても影響のない環境、あるいは復旧可能な環境であること
- クラウド上に構築されている場合、クラウド事業者に対する申請などが必要な場合があるので、ルールを確認すること
ステップ1:準備
JREのダウンロード&インストール
64bit版、かつVersion8 (1.8)以上が必要です。
OWASP ZAPのダウンロード&インストール
ダウンロードサイトから利用環境に合わせてダウンロードし、インストーラーに従ってインストールします。
ステップ2:初回設定
OWASP ZAPの起動時にPCのファイアウォール機能やウィルス対策ソフトの警告が出る場合は、通信を許可する設定をします。
また、起動時にセッションの保存方法の確認をされます。適切なものを選んでください。(おすすめは一番上です)
ツール>オプションでオプション画面を開きます。デフォルトの大きさのままだと見えづらいので、ダイアログの幅を広くするのがおすすめです。
左ペインから「ローカルプロキシ」を選んで、Addessとポートを変更します。
Address:localhost
ポート:デフォルトは8080ですが、それ以外で他のアプリケーションが使っていない番号(※8080は他に使われていることが多いので敢えて避けています)
左ペインから「HUD」を選択し、一番上の「Enable when using the ZAP Desktop」のチェックを外しておきます。(HUDは面白い機能だなと思いますが、今回は使いません)
左ペインから「動的スキャン」を選択し、以下の設定を変更します。試験環境に激しくアクセスしないようにするための設定なので、この設定は試験対象の環境によって変動します。試験環境のリソースが十分である場合は大きい値でも大丈夫かもしれません。
並列スキャンするホスト数:1
並列スキャンスレッド数:1
スキャン中のミリ秒単位の遅延:試験環境に合わせて設定
ここまでの設定が終わったら、「OK」でダイアログを閉じます。
ステップ3:ブラウザの設定
今度はWebブラウザのプロキシ設定を、ステップ2で登録したアドレスとポートに変更します。これでこのブラウザで閲覧するWebサイトはすべてZAP経由でアクセスするようになります。
以下はFirefoxでの設定例です。
ステップ4:動的スキャン(脆弱性スキャン)の設定
再びZAPを起動して、動作モードを確認します。左上の動作モードを「プロテクトモード」に変更します。
プロテクトモードにしておくと、コンテキストにないWebサイトには脆弱性スキャンを行わないので、うっかりミスによる外部サイトへのスキャンを防止できます。
ステップ3のプロキシ設定をしたブラウザから、試験対象のWebアプリケーションにアクセスします。
ZAPの左ペインの「サイト」にアクセスしたWebアプリケーションが表示されるので、右クリックして「コンテキストに含める>New Context」をクリックします。
コンテキストにWebアプリケーションが追加されます。
試験したいページをブラウザからアクセスします。クリックできるリンク、ボタン等を全部操作していくイメージです。入力するテキストデータなどのバリエーションは、動的スキャンのときにZAPがいろいろなパターンで試験してくれるのでここでは気にしなくて大丈夫です。
Webアプリケーションの内部構造がわかっている場合は、全部の処理を経由するように操作しましょう。
試験対象を一部に制限したい場合は、その対象範囲をアクセスすればよいです。
ステップ5:動的スキャンの実施
ステップ4のクローリングが終わったら、動的スキャンを開始します。
コンテキストにあるWebアプリケーションを右クリックして「動的スキャン」をクリックします。
「スキャンを開始」でスキャンが始まり、後はスキャンが終わるまで待つだけです。
下ペインの「動的スキャン」に進捗が表示されます。検出された脆弱性は「アラート」に表示されています。
「レポート」メニューからスキャン結果をHTMLなどの形式で保存できます。
ZAPは他にも色々なことができるツールなので、ぜひ使ってみてください!
- いよいよ IE (Internet Explorer) のサポートが終了します - 2022-02-02
- OWASP ZAPを使って脆弱性検査をしてみる - 2021-08-12
- カレンダーの祝日、違うかも?2021年の祝日にご注意 - 2021-02-10
- Porting Assistant for .NET を使ってみた - 2020-09-04