読む・知る
ZAP の紹介
ZAPは、自分が管理するWebアプリケーションの通信を確認し、セキュリティ上の問題を調べるための無料のオープンソースツールです。ブラウザーとサイトの間でリクエストや応答を確認でき、開発中のサイトや許可を得た検証環境の調査に向いています。正式名はZed Attack Proxyで、公式サイトではZAP by Checkmarxと案内されています。 公式の入門説明
公式サイト: zaproxy.org
このソフトでできること
- ブラウザーからWebアプリケーションへ送られる通信と応答を確認する。
- 手動でサイトを操作しながら、収集した通信を受動的に分析する。
- 許可を得た範囲で自動的な探索や能動的な検査を行う。
- 表示されたアラートを手がかりに、開発者が問題を確認する。
検査結果は修正箇所を調べる入口になります。表示された警告が実際に問題となるか、想定どおりの通信や設定かを判断する作業は残ります。ZAPを起動しただけでサイトを自動修復するものではありません。
主な特徴
通信とアラートを同じ画面で追える
サイトの構造、通信の履歴、リクエストと応答、アラートなどを確認できます。「どの通信で何が指摘されたか」を見ながら調べたい場合に使いやすい構成です。公式の入門資料には、各領域を説明した参考画面もあります。 公式入門ガイド
受動的な分析から始められる
受動的な検査は、ZAPを通ったメッセージを分析します。一方、能動的な検査ではテスト用の追加リクエストを送ります。初めて使う場合は、自分の検証環境を手動で操作しながら通信を確認し、その後に必要な検査の範囲を決めると役割を理解しやすくなります。
デスクトップ以外の使い方もある
公式にはDockerイメージや自動化向けの使い方も用意されています。まず画面でアラートや対象範囲を理解し、運用に必要であれば自動化を検討できます。導入したアドオンによって機能が変わる点にも注意します。 公式ダウンロード
対応OSと料金
| 項目 | 内容 |
|---|---|
| 対応OS | Windows、macOS、Linux |
| macOSのパッケージ | IntelとApple Silicon向けを分けて選択 |
| Java | 確認時点のWindows・Linux版はJava 17以上が必要。macOS版にはJava 17を同梱 |
| 本体の料金 | 無料 |
| ライセンス | Apache-2.0 |
必要なJavaの版や配布形式は、選択するパッケージの公式案内を確認してください。画面表示やアドオンの翻訳状況は構成によって異なるため、英語の機能名も参照しながら操作すると公式資料と照合しやすくなります。
Apache-2.0の条件では、再配布時のライセンス、著作権等の表示、該当するNOTICE、変更箇所の表示などを確認します。商標やブランドの利用条件は、コードのライセンスとは別に扱います。 公式ライセンス
使い方
1 OSに合った公式パッケージを選ぶ
公式ダウンロードページ から、OSとCPUに合うパッケージを選びます。macOSではIntelとApple Siliconを取り違えないようにします。公式Releaseページにあるチェックサムなども照合してください。
2 テストする環境と範囲を決める
自分が管理するローカルサイトや検証環境を用意します。外部サイトの場合は、テストの許可と対象範囲を確認します。ログイン状態の操作、問い合わせの送信、削除ボタンなどは実際の処理につながることがあるため、テスト用データとアカウントを使います。
受動的な検査であっても、ブラウザーで行う通常の操作まで無害になるわけではありません。
3 Manual Exploreで通信を確認する
公式入門ガイドの手動探索では、Quick Startの「Manual Explore」から対象URLとブラウザーを選んで起動します。テスト用サイトを操作し、ZAP側の履歴とアラートを確認します。ブラウザーを起動する方法は、導入した構成やアドオンによって異なります。 手動探索を含む公式手順
4 アラートの内容を確認する
アラートの説明、対象URL、該当する通信を読み、開発者や保守担当者と修正の要否を判断します。修正したら同じ条件で確認し、結果を記録します。警告の件数だけを減らすことを目的に、内容を調べず除外設定へ追加しないようにします。
自動攻撃や能動的な検査は、対象への負荷や状態変更を伴う場合があります。許可された検証環境で範囲と実施時間を決めて利用してください。
安全性と注意点
ZAPはWebアプリケーションの検査を助けるツールです。PHP本体のパッケージ更新や、依存ライブラリのすべての状態を自動的に修正するものではありません。「警告がなかったので今回のPHP脆弱性も修正済み」といった判断には使えません。
通信には認証情報や個人情報が含まれる場合があります。セッションやレポートを共有するときは、対象データと保存先を確認します。自分のサイトでも、本番環境の顧客データを使うより、検証環境とテストデータで始めるほうが影響を把握しやすくなります。
向いている人
- 自分のWebアプリケーションの通信を見ながら問題を調べたい開発者。
- 検証環境でWebセキュリティの確認を始めたい担当者。
- アラートの根拠となるリクエストや応答を確認したい人。
向いていない人
- 他社サイトを許可なく検査しようとしている人。
- インストールだけでサーバーの脆弱性を修復したい人。
- 調査や再確認をせず、ツールの結果だけで安全性を判断したい人。
関連ソフト
PHPを使うサイトでは、 PHP本体 の更新状況も確認します。ComposerはPHPライブラリの管理、Trivyは対応するパッケージやイメージの検査が中心です。ZAPのWeb通信の検査とは、対象が異なります。
FAQ
無料で使えますか
ZAPのオープンソース本体は無料で利用できます。公式の配布物とその要件を確認して導入します。
OWASP ZAPとは別のソフトですか
OWASP ZAPは旧来の名称として見かけます。現在の公式サイトではZAP by Checkmarxとして案内されています。配布元は公式サイトと公式リポジトリで確認してください。
受動的な検査なら本番サイトでも影響はありませんか
ZAPの受動的な分析と、ブラウザーで行う操作は別です。ブラウザーの操作は実際の送信や変更につながるため、最初は検証環境で確認します。
