基本スキャンを超えて
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品質ゲートまで、本番環境に脆弱性が到达する前に発見・修正する体制を整えられます。基礎編は以前のガイドをご覧ください。
