OWASP ZAP(現 ZAP by Checkmarx)とは?

OWASP ZAPは、Webアプリケーションの脆弱性を検出するための無料のオープンソース診断ツールです。
旧名称として知られる「OWASP ZAP」は、現在ではCheckmarx社により「ZAP by Checkmarx」として継続的に開発・運用されています。

Webアプリケーション診断の自動化や初期的なリスク把握に活用でき、セキュリティ担当者や開発者の間で世界的に普及しています。

ここでは、ZAPの背景となるOWASPの役割と、ZAPそのものの概要について整理します。

OWASPとは

OWASPは「オワスプ」と読みます。正式名称は「Open Web Application Security Project」で、Webアプリケーションの安全性向上を目的とする国際的な非営利コミュニティです。日本にも地域支部としてOWASP Japanが活動しています。

開発者や企業が安全なWebアプリケーションを構築・運用できるよう、「OWASP Top 10」をはじめとするガイドラインやツール、教育資料を公開し、セキュリティ対策の共通基準を提供しています。
後述するZAP(Zed Attack Proxy)は、このOWASPプロジェクトの一つとして誕生しました。

ZAPとは

ZAPは「Zed Attack Proxy」の略称で、「ザップ」と読みます。
Webアプリケーションの通信を中継して脆弱性を検出するプロキシ型の診断ツールであり、Webアプリケーションのテストに特化して設計されています。自動スキャンと手動テストの両方に対応し、柔軟性と拡張性を兼ね備えています。

もともとOWASPプロジェクトとして開発されましたが、現在はCheckmarx社が引き継ぎ、「ZAP by Checkmarx」としてオープンソースで無料提供が続けられています。
個人利用から企業の開発・検証環境まで幅広く採用されています。

なぜ活用されている?ZAPの特徴とメリット

世界中で幅広く利用されているZAP。
ここでは、ZAPが多くの現場で活用されている理由と、その主な特徴・メリットを整理します。

無償で高機能 ー オープンソースならではのメリット

ZAPは無料で利用できるオープンソースソフトウェア(OSS)でありながら、商用ツールと比較しても遜色のないWebアプリケーション診断機能を備えています。

ライセンス上の制約が少なく、教育・検証用途から業務利用まで幅広い導入が可能です。活発なコミュニティとアドオン拡張により、オープンソースの強みを活かしつつ環境に応じた最適化が進めやすい点もOSSのメリットとして評価されています。

OWASP Top10に対応した診断項目

ZAPは「OWASP Top 10」で定義される主要なWebアプリケーション脆弱性(SQLインジェクション、クロスサイトスクリプティング(XSS)など)を自動的に検出できます。
国際的に認知された脆弱性基準に準拠しており、教育・研究・商用環境を問わず幅広く活用されています。

そのため、初期段階の脆弱性スキャンツールとして導入しやすく、開発工程のセキュリティ品質向上にも寄与します。

▼関連記事
Webアプリケーション脆弱性診断とは?診断内容や実施タイミング・判断基準を解説

自動・手動スキャンどちらにも対応できる柔軟性

ZAPは、自動スキャンによる効率的な脆弱性検出に加え、開発者が通信内容をリアルタイムで確認しながら分析できる手動(マニュアル)診断モードを備えています。
プロキシとして通信を中継し、リクエストやレスポンスを直接確認できるため、Webアプリの挙動を詳細に把握しながら脆弱性の原因を特定することが可能です。

シンプルな操作で基本的な診断を実施できる一方、設定や挙動を細かく調整したい技術者にも対応できる柔軟性があり、スキルレベルを問わず利用しやすい設計となっています。

▼関連記事:
手動脆弱性診断の特徴とは?脆弱性診断における優位性と費用を解説!

API連携や豊富なアドオン

ZAPは、REST APIを標準で提供しており、GitLab CIなどのCI/CDツールと容易に連携できます。開発に組み込むことで、ビルドからテスト、デプロイまでの工程に自動セキュリティ診断を統合でき、継続的な品質管理を実現できます。

また、豊富なアドオン(拡張機能)が提供されており、必要に応じて機能を追加・拡張できるのも特徴です。レポート出力の自動化やAPIテスト強化、外部ツールとの連携など、目的に合わせてZAPをカスタマイズできるため、より高度な分析・検証環境を構築することが可能です。

ZAPのインストール方法と使い方

ここでは、ZAPの入手方法と基本的な使い方を紹介します。

ZAPのダウンロードとインストール手順

ZAPの入手からセットアップまでを簡潔に整理します。

①Java 17 以降を準備します。
macOSインストーラーには適切なJavaが同梱されています。Windows/Linux/クロスプラットフォーム版はJava 17以降を別途インストールします。Docker版はJavaのインストール不要です。
参考:Java(Oracle公式)

②公式サイトから最新版をダウンロードします。
ZAP by Checkmarx ダウンロード から、Windows/Linux/macOS向けインストーラー、またはDockerイメージを選択します。

ZAP by Checkmarxの公式ダウンロードページ(Windows/Mac/Linux用のインストーラが選択可能)

③インストーラーのガイダンスに従ってインストールします。
画面の指示に沿ってセットアップを完了します。クロスプラットフォーム版を選ぶ場合は、事前のJava設定を確認します。
参考:ZAP 入門ガイド

ZAPはApache License 2.0で提供されており、商用利用・業務利用に支障はありません

ZAPの起動画面と基本UI

ZAPを起動すると、初期画面にAutomated Scan(自動スキャン)とManual Explore(手動モード)が表示されます。
自動スキャンでは診断対象のURLを入力して開始し、クローラとパッシブスキャンの後にアクティブスキャンで疑似攻撃リクエストを送信して脆弱性を洗い出します。
手動モードではプロキシとしてブラウザ通信を中継し、リクエストやレスポンスを確認・改変しながら分析できます。

  • Dashboard:スキャン状況や統計を確認できます。
  • Sitesツリー(左):探索済みのURL構造が表示されます。
  • Alertsパネル(下):検出された脆弱性がリスク(高/中/低など)別の一覧で表示されます。各アラートを選択すると、該当リクエスト/レスポンス、発生箇所、推奨対処を確認できます。
ZAPのメイン画面。診断対象URL、検出された脆弱性一覧(Alerts)などを表示

操作手順や画面の詳細は、公式ドキュメントのGetting Startedに画像付きで記載されています。Dockerでの利用方法はZAP Docker Documentationにまとまっており、コンテナ環境でも導入しやすいです。

自動スキャンの基本的な手順

Automated Scan(自動スキャン)は、指定したURLを起点にZAP SpiderまたはAJAX Spiderでページをクロールし、検出結果に基づいてスキャンを実行します。ここでいう「スキャン」は、疑似的に攻撃的なリクエストを送信して挙動を確認し、脆弱性の有無を評価する行為を指します。

①対象URLを入力
Quick Start画面で診断対象のURLを入力します。

②「Attack」をクリックして開始
クロール(Spider/AJAX Spider)→パッシブスキャン→アクティブスキャンの順に進みます。

③クロール結果を確認
左ペインのSitesツリーに探索済みURLが追加されます。必要に応じて範囲や深さを調整します。

④検出結果(アラート)を確認します。
Alertsパネルに検出内容が表示されます。リスクレベル(高・中・低・情報)、発生箇所、根拠となるリクエスト/レスポンス、推奨対処を順に確認します。

⑤認証が必要なサイトは事前設定を行う
ログインが必要な領域を含める場合は、資格情報やセッション管理を設定してから開始します。

ZAPで自動スキャンを実行している画面。進行状況バーと検出中のURLが表示されている

※公開サイトへの無断スキャンは不正アクセス防止法等に抵触するおそれがあります。自社サイトまたは許可済み環境のみで実施します。

※自動スキャンで検出しづらいケース(複雑な認証、業務ロジック依存の脆弱性など)は、手動診断モードや追加設定で補完します。

マニュアルスキャン(手動診断)モード

開発中のアプリや認証付きページを詳細に診断する際は、手動(マニュアル)モードが有効です。

  • ブラウザをZAP経由のプロキシに設定
    ブラウザのプロキシ設定をZAPに切り替え、実際の操作で発生するリクエスト/レスポンスをZAPで捕捉します。
  • アプリを操作して通信を収集
    ログインやフォーム送信など、実際のユーザ操作を行い、ZAPが通信を解析・記録するようにします。
  • 入力値検証やセッション管理、認可の挙動を確認
    パラメータ改ざん、セッション固定・乗っ取り、権限昇格の可能性などを手動で検証します。自動スキャンで見つかりにくい業務ロジック依存の脆弱性を発見しやすくなります。
  • 必要に応じてBreakpointsで通信を中断・編集
    高度な利用者はBreakpoints機能を使い、送信前のリクエストを中断して内容を編集し、サーバ挙動を観察します。

※認証情報やテストデータの取り扱いに留意し、許可された環境で実施してください。

診断結果の見方とレポート出力

スキャンが完了すると、結果は「Alerts」タブで確認できます。
各検出項目には「リスクレベル(High/Medium/Low/Informational)」と「推奨対応」が表示され、発生箇所やリクエスト内容を詳細に確認できます。

レポートはHTML/XML/Markdown形式で出力可能です。診断内容を共有する際は、出力ファイルを社内のセキュリティ部門や開発チームでレビューしてから活用することが望ましいです。

ZAPの診断結果画面

主な診断項目とスキャン範囲

ここでは、ZAPが検出できる主な脆弱性やスキャン範囲、診断モードを解説します。
無料ツールでありながら、OWASP Top 10に準拠した多層的な診断が可能です。Webアプリだけでなく、API診断にも対応しています。

ZAPで検出できる主な脆弱性

ZAPはOWASP Top 10に対応しており、代表的なWebアプリ脆弱性を自動検出できます。

主な検出対象(例)

  • SQLインジェクション
  • クロスサイトスクリプティング(XSS)
  • クロスサイトリクエストフォージェリ(CSRF)
  • ディレクトリトラバーサル
  • 不適切な認証・セッション管理
  • サーバ情報の露出

上記は原則として設定なしでも自動スキャンの対象になります。
検出結果はリスクレベル(High/Medium/Low/Informational)で分類されます。

スキャンの種類と設定範囲(Active/Passive/手動・API対応)

ZAPでは、目的に応じてスキャン方式や診断範囲を柔軟に設定できます。自動スキャンだけでなく、手動操作やAPI診断にも対応します。

<主なスキャンモード>

モード概要
Passive Scan通信を改変せずに監視して問題点を検出します。可用性への影響が小さい方式です。
Active Scan疑似的に攻撃リクエストを送信して脆弱性の有無を検証します。
Manual ExploreブラウザをZAPプロキシ経由で操作し、挙動を観察・改変しながら診断します。

<診断範囲と対象設定>

  • スキャン範囲の指定(Scope設定)
  • 認証設定(フォームログイン、セッションCookie)
  • API定義のインポート(OpenAPI/GraphQL)
    API診断では、Swagger/OpenAPI仕様を読み込むことでREST APIの脆弱性確認が可能です。

<自動化オプション>
ZAPには、定期的なスキャンや開発環境での自動チェックを支援する機能もあります。

  • Dockerパッケージスキャン
  • API/デーモンモード
  • GitHub Actions(リポジトリ更新時に自動スキャン)

※ZAP Automation Framework(YAML設定)は、現在ではAPI・Docker・スクリプト連携に統合されています

<診断結果の出力>
スキャン結果は「Alerts」タブで確認でき、HTML/XML/Markdown形式でレポート出力が可能です。リスクレベル別に整理されたレポートを活用すれば、社内報告書のたたき台として利用できます。

ZAPの実践活用と利用上の注意点(自動化・商用利用・法令遵守)

ZAPを実務で活用する際に押さえておきたいポイントを整理します。
自動化による効率化だけでなく、商用利用時のライセンス確認や法令遵守の観点も重要です。

CI/CD連携・Docker運用による自動化活用

ZAPは開発プロセスに組み込みやすく、継続的な脆弱性診断を自動化できます。
Docker環境やCI/CDツールと連携させることで、コード更新やデプロイ時に自動スキャンを実行し、開発と同時にセキュリティを担保できます。

主な自動化方法概要利用例
Docker運用ZAPの公式Dockerイメージを利用し、コンテナ上でスキャンを実行します。セットアップが容易で、開発環境を汚さずに診断可能です。JenkinsやGitLab CIでの自動スキャン、ステージング環境でのセキュリティテスト
GitHub Actionsリポジトリ更新時に自動スキャンを実行できます。ZAP公式アクションを利用すれば、CIパイプラインに容易に統合可能です。Pull Request時の自動診断、検出結果をIssue化して共有
APIモードREST API経由でZAPを制御し、外部ツールからスキャンを実行します。スクリプトや既存システムへの組み込みも容易です。内製CIツールや外部監視システムからの定期スキャン実行

このようにZAPは、開発・検証フローの一部として自動的に脆弱性チェックを行える設計となっており、セキュリティテストの属人化防止や検証コスト削減にも役立ちます。

商用利用と法令遵守のポイント

APはApache License 2.0のもとで提供されており、商用利用・社内利用・再配布のいずれも可能です。一方で、利用方法によっては法令違反や契約違反に該当するケースがあるため、運用時の注意が必要です。

  • 商用成果物でのライセンス表記
    診断結果を有償レポートなどの商用成果物として扱う場合、Apache License 2.0に基づくライセンス表記(著作権表示・ライセンス文言・変更の明示・NOTICEの保持(同梱されている場合))を明記します。
  • 改変版の再配布
    ZAPを改変して配布する場合も、元のライセンス文言と著作権表示、NOTICE(同梱物)を保持し、変更点を明示します。
  • レポートの外販・再配布
    レポートの外販や再配布時は、第三者コンテンツの権利関係や機密情報の取り扱い、秘密保持契約の範囲を含め、利用条件の遵守が必須です。
  • SaaS・クラウド上での実行
    クラウドやSaaS上でZAPを実行する場合、プラットフォーム側の利用規約・セキュリティポリシーを事前に確認します。
  • 診断対象の適法性
    公開サイトへの無断スキャンは不正アクセス関連法や契約条項に抵触するおそれがあります。自社または明示的に許可を得た環境に限定します。

ZAPは無料で高機能な診断ツールとして有用ですが、適切な設定・運用と法的配慮が前提になります。より高精度の検証、報告書整備、再診断対応まで含めた包括的な診断を求める場合は、専門のセキュリティ企業による脆弱性診断サービスの活用が効果的です。

セキュリティ専門家&ツールによるハイブリッド診断なら「サイバーセキュリティクラウド脆弱性診断サービス」

OWASP ZAPは無料で導入しやすく、初期的なリスク可視化に役立ちます。一方で、診断計画の設計、認証・権限周りの取り扱い、検出結果の妥当性判定、再現性の担保、報告書の整備といった実務工程は利用者側の責任となります。
運用環境や業務ロジックの複雑さが増すほど、ツール単体での判断には限界が生じやすく、対応優先度の整理や是正の合意形成にも時間を要します。

サイバーセキュリティクラウドの脆弱性診断サービスは、こうした運用上の課題をセキュリティ専門家チームが補完します。

  • 評価基準:OWASP Top 10を網羅し、経済産業省「情報セキュリティサービス基準」に準拠
  • 診断方式:自動ツールに加え、専門家による手動診断を組み合わせるハイブリッド診断で業務ロジック依存の脆弱性や認可まわりの不備も丁寧に確認
  • 成果物:経営層が意思決定に使いやすい要約と、技術担当が再現と修正に使える詳細手順を備えた報告書を提供

監査対応に耐えるドキュメント整備まで含めて確実性を高めたい場合は、専門家による診断の活用が効果的です。

サイバーセキュリティクラウド 脆弱性診断サービス いますぐ無料で資料をダウンロード