AppScan プロキシー・サーバーを使用した AppScan Enterprise でのテスト自動化

AppScan プロキシー・サーバーでは、トラフィックを記録して、ASE ジョブで探査データとして使用することができます。

概要

このセクションでは、機能テストへの動的スキャンの組み込みについて説明します。DevOps の世界では、Web アプリケーションの機能テストのプロセスにセキュリティー・スキャンを組み込む機能の重要性が増しています。自動化フレームワーク (Selenium など) を使用する場合、既に作成済みのスクリプトを利用して、個別の要件に合ったスキャンを作成できます。自動化フレームワークから Web アプリケーションへの要求は、プロキシー・サーバーのプロキシーを経由して送信されます。このサーバーはトラフィックを記録し、それを DAST 構成ファイルファイルとして保存します。次に、そのファイルをアップロードして、ASE がそれをスキャン用の探査データとして使用するようにできます。DAST 構成ファイルを作成するため、自動化サーバー・プロキシーを経由してトラフィックを手動で送信することもできます。

この図は、automated scan flow with AppScan® Enterprise を示します。


AppScan Enterprise で自動化されたスキャン・フロー

通常ワークフロー

  1. 初期設定 (サーバーごとに 1 回):
    1. プロキシー・サーバーのインストール
    2. [オプション] プロキシー・サーバーの構成
      1. SSL 警告の扱い (ルート証明書)
      2. 一定時間操作がなかったことによるタイムアウト
      3. チェーニングされたプロキシー
    3. プロキシー・サーバーの開始
  2. スキャンの実行:
    1. 構成されているとおり、指定のポートまたはランダムに選択されたポートでリッスンするプロキシー・インスタンスを開始します (プロキシー・サーバーの使用を参照)。
    2. 選択されたプロキシーを使用して Selenium スクリプト (または他の機能テスト) を実行します。

      または

      選択されたプロキシーを介して機能するように構成された Web ブラウザーを使用して、Web アプリを手動で参照します。
    3. プロキシーを停止して、トラフィックの記録を保存します。
    4. ASE REST API を使用して、既存の ASE ジョブの探査データを更新します。

      詳しくは、https://%3C%3Case_server%3E%3E:9443/ase/api/pages/apidocs.html 資料を参照してください。

注: このワークフローのデモ・スクリプト ProxyServerDemoScript.py は、インストール・フォルダーで入手できます。

プロキシー・サーバーのインストール

  1. 現在のバージョンの Node.js のいずれかをダウンロードして、ご使用のマシンにインストールしてください。
  2. <Installation_dir>\WebApp\downloads\ ディレクトリーから AppscanProxyServer.zip をコピーして、ご使用のマシンのフォルダーに解凍します。
    注: AppscanProxyServer API 関連資料は <Unzipped folder of AppscanProxyServer.zip>/apidocs/index.html で入手できます

プロキシー・サーバーの構成

ルート証明書

お使いのアプリケーションが SSL (HTTPS) を使用している場合、トラフィックを記録するためにプロキシーが中間者攻撃として動作する必要があります。このためには、プロキシー・サーバーに、アプリケーションとの通信の署名を行うために使用できるルート証明書が必要です。

デフォルトではプロキシー・サーバーは、ユーザーの介入なく固有のルート証明書を生成します。ただし、アプリケーションを参照しているときに SSL 警告が表示された場合は、以下のいずれかを行うことができます。

  • 警告を無視します。
  • マシン上のプロキシーによって生成された証明書をインストールします。
    1. REST API を使用して自己署名ルート認証局をダウンロードします。これは、AppScan プロキシー・サーバーで PEM ファイルとして使用します。
    2. 探査に使用するブラウザー、または必要な場所 (トラフィックの送信元に応じて決まります) に証明書をインストールします。
  • 独自のルート証明書をプロキシー・サーバーにインポートします。サポートされる証明書形式は、PKCS12 (.P12、.PFX)、JKS です。
    1. コマンド行ウィンドウを開き、プロキシー・サーバー・マシンのインストール・フォルダーへ移動します。
    2. 次のコマンドを実行します。
      .\Java\jre\bin\java -jar DastProxy.jar -irc [path to certificate file] -ircp [password]
      注: 完全なコマンドの使用法を表示するには、次を実行します。
      .\Java\jre\bin\java -jar DastProxy.jar
    重要: 証明書はプロキシー・サーバーに保存されるので、専用のテスト証明書を使用することをお勧めします。

プロキシー・サーバー非アクティブ・タイムアウト

プロキシー・インスタンスを使用後に close コマンドで閉じない場合、ポート上で開いたままリッスンを続行します。事前定義した時間アイドルになると、プロキシー・インスタンスは自動的に閉じられます。プロキシー・インスタンスのデフォルトの非アクティブ・タイムアウトは、60 分です。インストール・フォルダーに保存されている Settings.json ファイルでこの値を変更することができます。

重要: セキュリティー上の理由から、ファイル・アプリケーションでは添付ファイル配置が使用されます。このファイル内の他の値は変更しないでください。

チェーニングされたプロキシー

複数のチェーニングされたプロキシー、またはプロキシーの例外を定義する必要がある場合、インストール・フォルダーにあるチェーニングされたプロキシーのルール・ファイル (proxy.chain) を使用します。このファイルには、使用手順が含まれています。

プロキシー・サーバーの開始

AppScan プロキシー・サーバーを開始するには、次のコマンドを実行します。
node app.js [port]
ここで、*port = REST API 要求に対して AppScan プロキシー・サーバーが応答するポートです。
注: ポートを定義しない場合、デフォルトでは、8383 ポートが使用されます。
注: AppScan プロキシー・サーバーを永続的に実行することをお勧めします。停止する必要はありません。

プロキシー・サーバーを使用する

プロキシー・サーバーを開始後、プロキシー・インスタンスを開始して、アプリケーションにトラフィックを送信することができます。

  1. REST API の資料を参照するには、ブラウザーに以下のように入力します。http://localhost:<port>
    注: 別のマシンから参照するには、以下のように入力します。http://<IP>:<port>

    ここで、*port = AppScan プロキシー・サーバーがリッスンするポートです。

    *IP = AppScan プロキシー・サーバーがインストールされているマシンの IP アドレスです。

  2. サイトが保護されている場合 (HTTPS) は、以下の操作を行い、SSL 警告を回避します。
    1. REST API を使用して自己署名ルート認証局をダウンロードします。これは、AppScan プロキシー・サーバーで PEM ファイルとして使用します。
    2. 探査に使用するブラウザー、または必要な場所 (トラフィックの送信元に応じて決まります) に証明書をインストールします。
  3. プロキシー・インスタンスを開始するには、REST API 要求を使用します。StartProxy を使用して、記録ポート (トラフィックの送信先にするポート) を定義します。
    注: プロキシー・サーバーがサイトに直接アクセスできない場合は、この REST API でアップストリーム (チェーニングされた) プロキシーを定義することも可能です。
    注: 複数のチェーニングされたプロキシー、またはプロキシーの例外を定義する必要がある場合、インストール・フォルダーにあるチェーニングされたプロキシーのルール・ファイル (proxy.chain) を使用します。
  4. 定義した記録ポート経由でトラフィックを送信します。
  5. 完了したら、以下の REST API 要求を送信します:StopProxy
  6. REST API 要求を送信して、記録されているトラフィックを含む DAST 構成ファイル (.dast.config) をダウンロードします。トラフィック

    ファイルは、1 つ以上の .har (HTTP Archive) ファイルを含む ZIP ファイルです。

    注: DAST 構成ファイルをダウンロードするときに、このデータは AppScan プロキシー・サーバーから削除されます。
  7. DAST 構成ファイルを使用して、ASE REST API を使用する、既存のジョブの探査データを更新することができます。詳細については、https://%3Case_server%3E:9443/ase/api/pages/apidocs.htmlを参照してください。