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

通常ワークフロー
- 初期設定 (サーバーごとに 1 回):
- プロキシー・サーバーのインストール
- [オプション] プロキシー・サーバーの構成
- SSL 警告の扱い (ルート証明書)
- 一定時間操作がなかったことによるタイムアウト
- チェーニングされたプロキシー
- プロキシー・サーバーの開始
- スキャンの実行:
- 構成されているとおり、指定のポートまたはランダムに選択されたポートでリッスンするプロキシー・インスタンスを開始します (プロキシー・サーバーの使用を参照)。
- 選択されたプロキシーを使用して Selenium スクリプト (または他の機能テスト) を実行します。
または
選択されたプロキシーを介して機能するように構成された Web ブラウザーを使用して、Web アプリを手動で参照します。 - プロキシーを停止して、トラフィックの記録を保存します。
- ASE REST API を使用して、既存の ASE ジョブの探査データを更新します。
詳しくは、https://%3C%3Case_server%3E%3E:9443/ase/api/pages/apidocs.html 資料を参照してください。
プロキシー・サーバーのインストール
- 現在のバージョンの Node.js のいずれかをダウンロードして、ご使用のマシンにインストールしてください。
- <Installation_dir>\WebApp\downloads\ ディレクトリーから AppscanProxyServer.zip をコピーして、ご使用のマシンのフォルダーに解凍します。注: AppscanProxyServer API 関連資料は <Unzipped folder of AppscanProxyServer.zip>/apidocs/index.html で入手できます
プロキシー・サーバーの構成
ルート証明書
お使いのアプリケーションが SSL (HTTPS) を使用している場合、トラフィックを記録するためにプロキシーが中間者攻撃として動作する必要があります。このためには、プロキシー・サーバーに、アプリケーションとの通信の署名を行うために使用できるルート証明書が必要です。
デフォルトではプロキシー・サーバーは、ユーザーの介入なく固有のルート証明書を生成します。ただし、アプリケーションを参照しているときに SSL 警告が表示された場合は、以下のいずれかを行うことができます。
- 警告を無視します。
- マシン上のプロキシーによって生成された証明書をインストールします。
- REST API を使用して自己署名ルート認証局をダウンロードします。これは、AppScan プロキシー・サーバーで PEM ファイルとして使用します。
- 探査に使用するブラウザー、または必要な場所 (トラフィックの送信元に応じて決まります) に証明書をインストールします。
- 独自のルート証明書をプロキシー・サーバーにインポートします。サポートされる証明書形式は、PKCS12 (.P12、.PFX)、JKS です。
- コマンド行ウィンドウを開き、プロキシー・サーバー・マシンのインストール・フォルダーへ移動します。
- 次のコマンドを実行します。
.\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) を使用します。このファイルには、使用手順が含まれています。
プロキシー・サーバーの開始
node app.js [port]
ここで、*port = REST API 要求に対して AppScan プロキシー・サーバーが応答するポートです。プロキシー・サーバーを使用する
プロキシー・サーバーを開始後、プロキシー・インスタンスを開始して、アプリケーションにトラフィックを送信することができます。
- REST API の資料を参照するには、ブラウザーに以下のように入力します。http://localhost:<port>注: 別のマシンから参照するには、以下のように入力します。http://<IP>:<port>
ここで、*port = AppScan プロキシー・サーバーがリッスンするポートです。
*IP = AppScan プロキシー・サーバーがインストールされているマシンの IP アドレスです。
- サイトが保護されている場合 (HTTPS) は、以下の操作を行い、SSL 警告を回避します。
- REST API を使用して自己署名ルート認証局をダウンロードします。これは、AppScan プロキシー・サーバーで PEM ファイルとして使用します。
- 探査に使用するブラウザー、または必要な場所 (トラフィックの送信元に応じて決まります) に証明書をインストールします。
- プロキシー・インスタンスを開始するには、REST API 要求を使用します。StartProxy を使用して、記録ポート (トラフィックの送信先にするポート) を定義します。注: プロキシー・サーバーがサイトに直接アクセスできない場合は、この REST API でアップストリーム (チェーニングされた) プロキシーを定義することも可能です。注: 複数のチェーニングされたプロキシー、またはプロキシーの例外を定義する必要がある場合、インストール・フォルダーにあるチェーニングされたプロキシーのルール・ファイル (proxy.chain) を使用します。
- 定義した記録ポート経由でトラフィックを送信します。
- 完了したら、以下の REST API 要求を送信します:StopProxy。
- REST API 要求を送信して、記録されているトラフィックを含む DAST 構成ファイル (.dast.config) をダウンロードします。トラフィック。
ファイルは、1 つ以上の .har (HTTP Archive) ファイルを含む ZIP ファイルです。
注: DAST 構成ファイルをダウンロードするときに、このデータは AppScan プロキシー・サーバーから削除されます。 - DAST 構成ファイルを使用して、ASE REST API を使用する、既存のジョブの探査データを更新することができます。詳細については、https://%3Case_server%3E:9443/ase/api/pages/apidocs.htmlを参照してください。