はじめに
OWASP ZAP(Zed Attack Proxy)は、Webアプリケーションの脆弱性診断に使われるプロキシツールです。本記事では、最新版であるZAP v2.17.0を使って、ブラウザとWebアプリ間の通信をZAP経由で可視化・記録するための設定手順をまとめます。
徳丸本(『体系的に学ぶ 安全なWebアプリケーションの作り方』)のDocker実習環境(wasbook-docker)を例に、Firefoxでhttp://example.jp にアクセスした際の通信をZAPで監視できる状態にするまでの手順を解説します。
アプローチ
1. ローカルサーバー/プロキシの設定(ZAP自体の待受ポート)
ZAPのメニューから以下を開きます。
ツール → オプション → ネットワーク → ローカルサーバー/プロキシ
「メインプロキシ」に以下を設定します。
- アドレス:
localhost - ポート:任意(例:
58888)
これは、ブラウザが直接接続する先(ZAP自体の待受ポート)になります。
2. 接続(アップストリームプロキシ)の設定
続けて以下を開きます。
ツール → オプション → ネットワーク → 接続 → HTTPプロキシ タブ
以下を設定します。
- 有効:チェックを入れる
- ホスト:
localhost - ポート:診断対象アプリ側のフォワードプロキシのポート(例:
13128)
これは、ZAPがさらにその先へリクエストを転送する「アップストリームプロキシ」の設定です。診断対象(今回はDockerコンテナ上のapache)がフォワードプロキシとして構成されている場合に使用します。
3. ブラウザ側のプロキシ設定
Firefoxのネットワーク設定で、手順1で設定したZAPの待受アドレス・ポート(localhost:58888)をHTTP/HTTPSプロキシとして指定します。
4. 手動探索でブラウザを起動
ZAPのメイン画面中央にある「手動探索」から以下を設定し、ブラウザを起動します。
- 探索対象URL:
http://example.jp - アプリケーションを探索:Firefox
「ブラウザを起動」をクリックすると、Firefoxが起動し、指定したURLにアクセスします。
5. 通信の確認
ZAPの「履歴」タブ、または「サイト」タブを確認すると、ブラウザが送受信したHTTPリクエスト・レスポンスが記録されていることが確認できます。これでZAP経由の通信可視化・記録が完了です。
おわりに
ZAP v2.17.0では、古いバージョン(v2.11.1など)にあった「外部プロキシサーバ利用」という独立メニューが廃止され、「接続」タブに統合されています。UI構成がバージョンごとに変わっているため、教材や書籍の手順と画面が一致しない場合は、メニュー構成の変化を疑って探してみることをおすすめします。
参考
JISOUのメンバー募集中!
プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
興味のある方は、ぜひホームページをのぞいてみてください!
▼▼▼
https://projisou.jp