ダイナミック スキャンの手順

ZAP

スキャンツール Web Mobile Local API Extension Serverless 手順
OWASP® Zed Attack Proxy (ZAP)

OWASP ZAP; ZAP Docker コンテナを使用して、アプリケーションに対して自動動的スキャン(DAST)を行います。事前定義された構成ファイルには、必要な CWE がすべて含まれています。必要な作業は、環境と Docker 実行コマンドに追加することだけです。

それぞれのタイプの定義については、こちらをクリックしてください。 アプリの種類

ウェブ、モバイルアプリ、内部アプリケーションのフルスキャンは、次の手順で行います。

  1. DAST スキャンと API スキャンは ZAP Docker イメージを使用して実行されます。ウェブ アプリケーション、モバイル アプリケーション、内部アプリケーションの場合、完全な ZAP スキャンを prod-1 またはステージング環境で実行する必要があります。 

  2. zap-casa-config.conf 構成ファイルをダウンロードし、そのディレクトリに移動します。 

  1. スキャンの実行時にコンテキスト ファイルを生成します。詳しくは、下記の「認証」の手順をご覧ください。

  1. 次のコマンドを実行します。

docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-full-scan.py 
-t https://example.com -P 8080 
-c zap-casa-config.conf 
-x results-full.xml -n example.context -U username
  1. 出力は XML ファイルに保存されます(添付の例: zap-results-full.xml)。

API スキャンは、以下の手順に沿って実行できます。

  1. API スキャンの場合は、zap-casa-api-config.conf 構成ファイルを使用します。 

  1. ディレクトリに移動し、次のコマンドを実行します。

docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw 
-t owasp/zap2docker-stable zap-api-scan.py 
-t https://example.com -f openapi-P 8080 
-c zap-casa-api-config.conf 
-x results-full.xml
  1. 出力は XML ファイルに保存されます(添付の例:zap-results-api.xml)。

認証

ユーザーデータが保存およびアクセスされる場所を把握するには、認証を使用して ZAP スキャンを行う必要があります。スキャンを実行する前に構成が必要です。ZAP Docker イメージでは、認証に関連する次の 2 つの引数を使用できます。

-n context_file

ターゲットのスキャン前に読み込まれるコンテキスト ファイル

- U ユーザー

認証スキャンに使用するユーザー名。ユーザーは特定のコンテキスト ファイルで定義される必要があります。

これらのパラメータを設定するには、コンテキスト ファイルを作成する必要があります。これは ZAP Desktop UI で簡単に行えます。

Zap のコンテキスト
  1. 認証メカニズムを設定します。現在、ZAP は次の 5 つの認証方法をサポートしています。

    • 手動認証

    • フォームベースの認証

    • HTTP/NTLM 認証

    • スクリプト ベースの認証

    • JSON ベースの認証

Zap 認証
  1. auth パラメータを定義します。これには通常、ログイン URL とペイロード形式(ユーザー名とパスワード)が含まれます。必要なパラメータは、使用する認証方法によって異なります。
zap 認証の構成
  1. 有効なユーザー名とパスワードを追加します。アプリケーションがロールに基づいて異なる機能を公開する場合は、複数のユーザーを作成します。
zap ユーザーを構成する

これらの設定を構成したら、スキャンの参照用にファイルとしてコンテキストをエクスポートできます。

zap エクスポート コンテキスト

スキャンコマンドの引数としてファイルパスを含める必要があるため、コンテキストはわかりやすい場所に保存してください。これで、コンテキスト内で指定されたユーザー ログインで認証済みスキャンを実行できるようになります。例:

zap ユーザーを作成
  docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw 
  -t owasp/zap2docker-stable zap-full-scan.py 
  -t https://example.com -P 8080 
  -c zap-casa-config.conf -x results-full.xml 
  -n /Users/DemoUser/Documents/Context.context -U test@example.com