プロキシー・サーバーの構成と使用

AppScan プレゼンス・プロキシー・サーバーを使用してトラフィックを記録し、それを DAST.CONFIG ファイルとして保存し、インポートして ASoC スキャンを実行できます。以下のサブセクションの説明に従って、オプションでこのファイルを暗号化することができます。

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

このタスクについて

設定ファイルに変更を加えた後は、サーバーを再起動する必要があります。
注: Settings.json は JSON ファイルであるため、" (二重引用符) や \ (円記号) などの特定の文字はエスケープする必要があります。そのため、\” になり、\\\ になります。
重要: このファイルの internalConfiguration 設定は変更しないでください。

手順

プロキシー・サーバーへのセキュアな (SSL) 接続の場合: 独自の PEM 証明書または PKCS12 証明書を構成します。
  • PEM:
    • PEM 証明書には 2 つのファイル (絶対パス) が必要です
    • 必要に応じて、ファイル・パスとパスワードの両方で文字をエスケープすることを忘れないでください。例えば、abc!”123 というパスワードであれば abc!\”123 とします (" 記号はエスケープされます)。
  • PKCS12:
    1. コマンド・ラインで、次のように実行します。
      .\Java\jre\bin\java.exe -jar .\DastProxy.jar -sc "C:\Path\to\certificate.pfx"
    2. プロンプトが出されたら、証明書のパスワードを入力し、Enter キーを押します。
openssl を使用して PEM 証明書を作成する例:
openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out server.crt 
openssl を使用して PEM 証明書を PKCS12 証明書に変換する例:
openssl pkcs12 -export -out certificate.pfx -inkey key.pem -in server.crt
Java のキー生成ツールを使用して JKS 証明書を PKCS12 証明書に変換する例:
keytool -importkeystore -srckeystore certificate.jks -srcstoretype JKS -destkeystore certificate.p12 -deststoretype PKCS12

プロキシー・サーバーの使用

プロキシー・サーバーを開始したら、新しい記録プロキシー・インスタンスを開始して、アプリケーションのトラフィックを記録できます。

手順

  1. サイトが保護されている場合 (HTTPS)、以下のいずれかの操作を行い、SSL 警告を回避できます。
    1. REST API を使用して自己署名ルート認証局をダウンロードします。これは、AppScan プロキシー・サーバーで PEM ファイルとして使用します。
    2. 探査に使用するブラウザー、または必要な場所 (トラフィックの送信元に応じて決まります) に証明書をインストールします。
    詳細については、ルート証明書を構成するを参照してください。
  2. プロキシーを開始するには、REST API 要求のStartProxy を使用して、記録ポート (トラフィックの送信先にするポート) を定義します。
    注: プロキシー・サーバーがサイトに直接アクセスできない場合は、この REST API でアップストリーム (チェーニングされた) プロキシーを定義することも可能です。
    注: 複数の チェーニングされたプロキシー、またはプロキシーの例外を定義する必要がある場合、インストール・フォルダーにあるチェーニングされたプロキシーのルール・ファイル (proxy.chain) を使用します。
    注: トラフィックが暗号化されていない場合 (下のサブセクションを参照)、以下を使用して、個々の記録用にトラフィック・ファイル (DAST.CONFIG) を暗号化できます。
    Query param Example:
    /StartProxy/<recordingPort>?encrypted=true
  3. 定義した記録ポート経由でトラフィックを送信します。
  4. 完了したら、以下の REST API 要求を送信します:StopProxy (StopProxy/0 は使用できません)。
  5. 記録されたトラフィック・ファイルをダウンロードするために、以下の REST API 要求を送信します:トラフィック
    トラフィック・ファイルの拡張子は .dast.config です
    注: トラフィック・ファイルをダウンロードすると、そのトラフィック・データがプロキシー・サーバーから削除されます。

    ASoC REST API を使用し、DAST.CONFIG ファイルを使用して既存のジョブの探査データを更新することができます。以下のことができます。

DAST.CONFIG ファイルの暗号化

プロキシー・サーバー REST API を使用し、DAST.CONFIG ファイルをアップロードして暗号化してから、暗号化したファイルをダウンロードできます。
  • ファイルをアップロードして暗号化するには、以下を使用します。EncryptDastConfig
  • 暗号化したファイルをダウンロードするには、以下を使用します。DownloadEncryptedDastConfig
詳しくは、プロキシー・サーバー API コマンドを参照してください。

トラフィックの暗号化

デフォルトでは、トラフィック (DAST.CONFIG) ファイルは暗号化されません。すべてのトラフィックを暗号化するようにサーバーを構成するには、インストール・フォルダーにある Settings.json ファイルで "encryptDastConfig" キーを true に変更します。

プロキシー非アクティブ・タイムアウトの設定

プロキシー・インスタンスを使用後に close コマンドで閉じない場合、ポート上で開いたままリッスンを続行します。記録プロキシー・インスタンスは、事前定義した時間だけアイドルになると、自動的に閉じられます。

記録プロキシー・インスタンスのデフォルトの非アクティブ・タイムアウトは、60 分です。インストール・フォルダーに保存されている Settings.json ファイルでこの値を変更することができます。

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

プロキシー・インスタンスを使用後に close コマンドで閉じない場合、ポート上で開いたままリッスンを続行します。記録プロキシー・インスタンスは、事前定義した時間だけアイドルになると、自動的に閉じられます。

記録プロキシー・インスタンスのデフォルトの非アクティブ・タイムアウトは、60 分です。インストール・フォルダーに保存されている Settings.json ファイルでこの値を変更することができます。

ルート証明書を構成する

お使いのアプリケーションが SSL (HTTPS) を使用している場合、トラフィックを記録するためにプロキシーが中間者攻撃として動作する必要があります。このためには、プロキシー・サーバーに、アプリケーションとの通信の署名を行うために使用できるルート証明書が必要です。
デフォルトではプロキシー・サーバーは、ユーザーの介入なく固有のルート証明書を生成します。ただし、アプリケーションを参照中に SSL 警告が表示されます。以下のいずれかを実行できます。
  1. マシン上のプロキシーによって生成された証明書をインストールします。
    1. REST API を使用して自己署名ルート認証局をダウンロードします。これは、AppScan プロキシー・サーバーで PEM ファイルとして使用します。
    2. 探査に使用するブラウザー、または必要な場所 (トラフィックの送信元に応じて決まります) に証明書をインストールします。
  2. 独自のルート証明書をプロキシー・サーバーにインポートします。サポートされる証明書形式は、PKCS12 (.P12、.PFX)、JKS です。
    1. コマンド行ウィンドウを開き、AppScan プレゼンス・マシンにあるプロキシー・サーバーのインストール・フォルダーへ移動します。デフォルトの場所は、次のとおりです。
      <AppScanPresenceInstallFolder>\Automation
    2. 以下のコマンドを実行します。
      ..\Java\jre\bin\java -jar DastProxy.jar -irc [path to certificate file] -ircp [password]
    注: 完全なコマンドの使用法を表示するには、次を実行します。
     ..\Java\jre\bin\java -jar DastProxy.jar
重要: 証明書はプロキシー・サーバーに保存されるので、専用のテスト証明書を使用することをお勧めします。
注: このワークフローのデモ・スクリプト ProxyServerDemoScript.py は、次のデフォルトの場所にあります。
<AppScanPresenceInstallFolder>\Automation