Featured image of post OWASP ZAP 2026年版:高度なスキャンとCI/CD統合 Featured image of post OWASP ZAP 2026年版:高度なスキャンとCI/CD統合

OWASP ZAP 2026年版:高度なスキャンとCI/CD統合

OWASP ZAPの2026年最新テクニック。APIスキャン、認証処理、CI/CDパイプライン統合、自動化フレームワークを使った継続的セキュリティテストを解説。

基本スキャンを超えて

OWASP ZAPは2026年、シンプルなプロキシスキャナーからセキュリティ自動化プラットフォームへと進化を遂げています。強力なAPI、スクリプト可能な自動化フレームワーク、CI/CDへの深い統合を備えています。基本的な使い方については以前のOWASP ZAPインストールガイドを参照してください。この記事では、チームで規模を拡大してセキュリティテストを実行するための高度なワークフローを紹介します。

APIスキャン

REST APIやGraphQLを多用する現代のアプリケーションでは、ブラウザを介さないAPI直接スキャンが不可欠です。ZAPはOpenAPI仕様とGraphQLスキーマを解析してリクエストを自動生成します。

# OpenAPI仕様をインポート
curl "http://localhost:8080/JSON/openapi/action/importUrl/?url=https://example.com/openapi.json&host=example.com"

# GraphQLエンドポイントをインポート
curl "http://localhost:8080/JSON/graphql/action/importUrl/?endpointUrl=https://api.example.com/graphql"

ZAPは仕様書から全エンドポイントとパラメータの組み合わせを網羅したリクエストを生成し、能動的スキャンを実行します。

認証の自動化

複雑な認証フロー(OAuth2、SSO、JWTベース)にも対応しています。コンテキスト設定で認証方式を定義し、スキャン中に自動的にログイン状態を維持します。

認証方式適用ケース
ブラウザベースOAuth2、SSO、リダイレクトを含むログインフロー
JSONベーストークン認証を使うREST API
スクリプトベースカスタム認証やレガシーシステム

自動化フレームワーク

ZAP 2.12以降で利用可能なAutomation Frameworkは、宣言的なYAML計画書でスキャンを定義します。従来のシェルスクリプトに代わる推奨手法です。

env:
  contexts:
    - name: "my-app"
      urls:
        - "https://staging.example.com"
jobs:
  - type: spider
    parameters:
      maxChildren: 10
  - type: passiveScan-config
    parameters:
      maxAlertsPerRule: 50
  - type: activeScan
    parameters:
      maxScansInUI: 1
  - type: report
    parameters:
      template: "traditional-html"
      reportDir: "./reports"
      reportFile: "zap-report-{{date}}.html"

実行はコマンド一発です:

zap.sh -cmd -autorun /path/to/plan.yaml

YAMLファイルはバージョン管理可能で、チーム全体で共有・再利用できます。

CI/CDパイプライン統合

ZAPのDockerイメージ(softwaresecurityproject/zap-stable)を使えば、GitHub ActionsやGitLab CIに簡単に組み込めます。

GitHub Actions

- name: Run ZAP scan
  uses: zaproxy/[email protected]
  with:
    target: "https://staging.example.com"
    token: ${{ secrets.ZAP_API_KEY }}
    cmd_options: "-a"

GitLab CI

zap-scan:
  image: softwaresecurityproject/zap-stable
  script:
    - zap.sh -cmd -quickurl https://staging.example.com -quickout reports/zap.html

品質ゲート

Highリスクの脆弱性が見つかった場合にパイプラインを停止します:

if grep -q '"risk": "High"' reports/zap-report.json; then exit 1; fi

WebSocketスキャン

ZAPはWebSocket通信のインターセプトとファジングに対応しています。リアルタイム機能を持つアプリケーションにとって重要な機能です。

jobs:
  - type: websocket
    parameters:
      scanMessageList:
        - '{"type": "subscribe", "channel": "admin"}'

誤検知の削減

アラートフィルタリングとしきい値調整でノイズを低減します。ルールごとにスキャン強度を設定可能です。

jobs:
  - type: activeScan
    parameters:
      alertThreshold: "MEDIUM"
      attackStrength: "DEFAULT"
  - type: passiveScan-config
    parameters:
      alertFilters:
        - ruleId: 10010
          newRisk: "False Positive"
          url: ".*healthcheck.*"

まとめ

OWASP ZAPは2026年、APIファーストのセキュリティプラットフォームとして成熟し、モダンな開発ワークフローにシームレスに統合されます。宣言的なYAML計画書からCI/CD品質ゲートまで、本番環境に脆弱性が到达する前に発見・修正する体制を整えられます。基礎編は以前のガイドをご覧ください。