OWASP ZAPを使って脆弱性検査をしてみる

こんにちは、エンジニアの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は面白い機能だなと思いますが、今回は使いません)

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は他にも色々なことができるツールなので、ぜひ使ってみてください!

 

この記事が気に入ったら
いいね ! しよう

Twitter で
The following two tabs change content below.
maimai
maimai
エンジニア
エンジニア歴は約20年。 主な開発(言語)遍歴: Cのサーバ系アプリ開発を少々 →Javaサーバ系アプリ開発をがっつり →C#のWindowsアプリをがっつり →ここ数年はいろんな言語、いろんな環境をちょこちょこと。 最近はコードを書かないお仕事もいろいろ。

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ