動的スキャン手順

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 Authentication
  1. 認証パラメータを定義します。通常、これにはログイン URL とペイロード形式(ユーザー名とパスワード)が含まれます。必須パラメータは、使用する認証方法に固有のものです。
zap Configure Authentication
  1. 有効なユーザーとパスワードを追加します。アプリケーションがロールに基づいて異なる機能を公開する場合は、複数のユーザーを作成します。
zap Configure Users

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

zap Export Context

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

zap Create User
  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