Pocket

OWASP Zed Attack Proxy 2.3.1 のインストールと機能

  • add this entry to hatena bookmark

OWASP Zed Attack Proxy(略称ZAP)は、Webアプリケーションの脆弱性を診断するペネトレーションテストツールです。

ZAPが稼動する端末はマルチプラットフォーム対応がされており、Linux/Windows/Macに対応しています。また、多言語対応もされており、日本語も含まれています。

2014/05/21 に Version 2.3.1 が公開されています。ここでは、ZAPのインストールと機能を簡易ではありますが記載しています。

※自分が管理していないサーバに対しては利用しないようにお願いします。

ダウンロード

「Downloads」サイトから、Windows対応版をダウンロードします。現時点での最新版である「2.3.1」(2014/05/21公開)、ファイル名は「ZAP_2.3.1_Windows.exe」をダウンロードします。(ファイルサイズは約65MB)

インストール

ダウンロードした「ZAP_2.3.1_Windows.exe」を実行すると、インストールウィザードが始まります。

Setup-OWASP-ZAP

そのまま簡単にインストールを完了させる事ができます。

起動

Windowsにインストールした場合は、メニューからZAPを起動する事が可能です。セットアップ時に、デスクトップにショートカットアイコンを置いておく選択をする事も可能です。

ZAPの起動画面は以下になります。

owasp-zap-222

実行モード

ZAP には実行モードがあり、検査する時のレベルを使い分ける事が可能です。ユーザーインターフェースの Top Level Toolbar で以下の3種類のMode(モード)を選択できます。

  • Safe mode
  • Protected mode
  • Standard mode

ZAP の説明では、Protected mode の利用が推奨されているようです。Safe mode で良いケースも多いと思います。

zap-mode

Standard mode は実際に攻撃してしまい危険です。自身が管理しているサイト、かつ、壊れてもよい自身の検証サイトでのみ使う形になるのかなと思います。

Quick Start

繰り返しになりますが、ご自身が管理しているサイト以外での実行は絶対に避けてください。

モードを「Standard mode」にすると、Quick Start(クイックスタート)タブ画面にあるフィールドに、検査したいサイトURLを入力できるようになり、「攻撃」ボタンを押すと、スパイダーと動的スキャンが行われます。

URLを入れるだけでスキャンを開始できるようになっていますが、実際に攻撃をしてしまいますので「ご利用は要注意」だと思います。

ページが多いサイトを試験する場合も、このQuick Start は利用しないほうが良いと思います。スパイダーが自動的にリンクを拾ってくる為に、検査対象サイトに多くの負荷が掛かったりする為です。

このQuick Startを使う際は、ZAPの挙動を把握する事を目的として、ページ数が少ない試験用のサイトなどに対して利用するなど限定したほうが良いかもしれません。

ZAP Quick Start

検査の結果、アラートが検知されれば、画面下の「アラート」タブで内容を確認する事ができます。

機能の簡易説明

以下、抜粋となりますが、ZAPで利用できる機能について記載しています。

手動クロール(プロキシ利用)

検査対象のデータをブラウザを使って手動で収集する事が可能です。

ZAPをプロキシとして利用できます。ZAPのデフォルト設定では、ローカル・プロキシとして(localhostの)ポート「8080」が設定されています。「ツール」メニューから「オプション」画面で確認できます。

また、ブラウザのプロキシ設定を行う必要があります。ブラウザのプロキシ設定をZAPのローカル・プロキシ設定値(例では、localhost の 8080ポート)に合わせます。

その後、ブラウザで検査対象サイトを手動でクロールすると、ZAPがプロキシとして機能し、セッションで得た情報をZAPに記録していく形になります。

記録した結果はスキャン結果として「アラート」タブでアラート検知状況を確認できます。リスクのレベルは「High」「Medium」「Low」「Informational」などで色分け表示されます(Alertsを参照)。アラートの説明が紐付けられて表示されます。

ZAP手動クロールの結果で得たアラート

  • 検査対象サイト以外の情報も記録される事があると思いますが、それは、検査対象サイトでリンクしている情報が拾われるためです。
  • 検査対象ではないサイトの情報は除外対象に設定できます。クロールした結果、取得したツリーから該当のエントリを右クリックで選択すると、「以下の処理から除外する」メニューが表示され、「プロキシ」「スキャン」「スパイダー」からの除外が可能です。

動的スキャン

「動的スキャン」タブで検査対象サイトを選択し、実行ボタンを押すと、ZAPにとって「既知の攻撃項目」を自動的にスキャンする事ができます。例えば、動的ページにパラメータがある場合、値にCookie(的な値も含む)をセットしてみたり、など行われます。よって、場合によっては応答に「404 Not Found」や「500 Internal Server Error」も含まれるようなスキャンになります。

また、動的スキャンだけでは検出できない項目(検査しないページ)もあるので、手動でのスキャンもあわせて実行したほうが良いと思います。

スパイダー検索

「スパイダー検索」タブで検査対象サイトを選択し、実行ボタンを押すと、リンクを辿って自動クロールによるスキャンを実行できます。手動スキャンでまだ訪れていなかったURLもスキャン対象とすることができます。

リンクが多いサイトの場合は、収集し終わるまでに時間がかかったり、サーバ側に負荷がかかる事になります。ショッピングサイトやブログサイトなどで、情報(ページ)が異なるがファイルや構造・構成が同じ場合は、全てのページを自動クロールで収集する必要性は低いと思います。

ポートスキャン

ZAPにはポートスキャンの機能もついていますが、ZAP 2.0.0 からは、Add-ons として追加する必要があります。

アドオン追加後、「ポートスキャン」タブで検査対象のホストを選定し、開始ボタンを押下すればポートスキャンを行う事が可能です。デフォルト設定ではスキャンスピードが遅いので、早くしたい場合は設定値の調整を行います。

ちなみに、私がポートスキャンを行いたい場合は、nmapを使うと思います。

フォームに対して検査する際の挙動

問い合わせフォームや、ログインするサイトなどをZAPで検査して見ると、フォームの各項目に対して様々な値を入力するような検証が自動的に行われます。

例えば、テキスト項目に対して簡単なJavaScriptが入力されたり、文字列長が様々な文字列が入力されたり、などなど。

サニタイジングしている箇所の検証を行う事が出来ます。

更新履歴

  • 2014/06/22 固定ページに記載していた内容を投稿記事に移行
  • 2014/06/22 バージョンアップに伴う更新(ZAP_2.3.1_Windows)
  • 2013/11/12 バージョンアップに伴う更新(ZAP_2.2.2_Windows)
  • 2013/03/26 2.0.0 の多くの変更点について概要を要約しました。
  • 2013/03/24 バージョンアップに伴う更新(ZAP_2.0.0_Windows)
  • 2012/12/09 バージョンアップに伴う更新(ZAP_1.4.1_Windows)
  • 2012/05/20 初版公開(ZAP_1.4.0.1_Windows)
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

チェックサイト RSS Feed読者登録はいかがでしょうか?RSS配信中です。