はじめに
Webアプリケーションのセキュリティ対策は開発・運用のすべてのフェーズで重要です。本記事では脆弱性診断ツール「OWASP ZAP」を活用し、ローカル環境での検証方法を紹介します。
1. OWASP ZAPとは?
OWASP ZAP(Zed Attack Proxy)はOWASPが提供するオープンソースの脆弱性診断ツールで、以下の特徴があります:
- GUIとCLIの両方に対応
- 自動スキャンと手動診断が可能
- XSSやSQLインジェクションなど一般的な脆弱性を検出
- CI/CDパイプラインへの組み込みが容易
- アドオンやスクリプトによる拡張性が豊富
2. OWASP ZAPのインストール方法
OWASP ZAPはJavaベースで動作するため、事前にJavaの実行環境が必要です。
java -versionJREがインストールされていることを確認したら、OWASP ZAP公式サイトからOSに応じたインストーラーをダウンロードします。
インストール手順:
- 利用規約に同意
- 「標準インストール」を選択
- インストールを実行
3. 事前準備
OWASP ZAPはWebブラウザとWebアプリケーション間に挟まるプロキシサーバとして動作し、ユーザーがブラウザで操作したページ情報を収集します。Firefoxとの連携が最もスムーズに設計されているため、本記事ではFirefoxを推奨します。
3.1 ルート証明書のインポート
ステップ1: OWASP ZAP起動後、「ツール」→「オプション」→「Network」→「Server Certificates」で、zap_root_ca.cer をダウンロードします。
ステップ2: Firefoxで以下にアクセス:
about:preferences#privacy「証明書」セクションで「証明書を表示」をクリック → 「認証局」タブで「インポート」→ダウンロードした証明書を選択 →「この証明書を信頼してウェブサイトを識別する」にチェック
4. 脆弱性診断の実施
重要な注意事項:
- なるべく本番環境には実行しない
- 許可された環境でのみ実行
4.1 OWASP ZAPの起動
スタートメニューからOWASP ZAPを起動し、「現在のタイムスタンプでファイル名を付けてセッションを保存」を選択して「開始」をクリック。
4.2 プロテクトモードに変更
OWASP ZAPには4つの動作モードがあります:
- セーフモード:すべての攻撃的機能が無効化。学習目的に適している。
- プロテクトモード:診断対象URLに対して「安全な操作のみ」を許可。スコープ外のURLには診断を実施しない。本番環境や重要なサービスへの診断時に推奨。
- 標準モード:デフォルトモード。スコープ外のURLにもアクセス可能。ローカル環境や検証環境での診断に適している。
- アタックモード:自動的にスキャンを開始。CI/CDパイプラインでの利用に適している。
左上のプルダウンメニューからプロテクトモードを選択します。
4.3 Manual Exploreの実行
Manual Exploreをクリックし、スキャン対象のURLを入力。「ブラウザの起動」をクリックしてFirefoxを選択します。
Firefoxが起動し、対象サイトにアクセスします。OWASP ZAPの左側メニュー「サイト」を展開すると、アクセスしたURLが表示されます。
スキャン対象URLを右クリック →「コンテキストに含める」→「新規コンテキスト」を選択。
コンテキストとは診断対象の「範囲」と「振る舞い」を定義する設定です。診断対象URL、ログイン情報、セッション維持方法などを設定できます。
4.4 脆弱性スキャンの実行
赤丸アイコンが付いた対象Webサイトを右クリック →「攻撃」→「動的スキャン」を選択。
スキャン前の確認画面で「ポリシー」を指定します。ポリシーとは診断ルールのセットで、「Default policy」はXSS、SQLインジェクション、CSRFなどの一般的な脆弱性診断ルールを含みます。
「スキャンを開始」をクリック。スキャン完了まではWebページの規模にもよりますが、シンプルな構成であれば約5分です。
検出されたアラートは「アラート」タブで確認できます。
4.5 レポートの出力
スキャン完了後、上部メニュー「レポート」→「レポートを生成する」をクリック。
HTML形式のレポートには以下の情報が含まれます:
- スキャン概要(対象URL、開始・終了時刻、スキャンタイプなど)
- 検出された脆弱性一覧
- リスクレベル(High / Medium / Low / Informational)
- 脆弱性についての説明と推奨対応策
- アラート分類(脆弱性の種類ごと、リスクレベル別に色分け表示)
5. さいごに
OWASP ZAPを使ったローカル環境での脆弱性診断は、GUI版を活用することで初学者でも手軽に始められます。今後、Azure Container Instanceを活用した自動化やCI/CDパイプラインへの組み込みなど、より実践的な運用方法の紹介も予定されています。

