配置和使用 Proxy 伺服器

您可以使用 AppScan Presence Proxy 伺服器來記錄資料流量,將其儲存為 DAST.CONFIG 檔案,並將其匯入以執行 ASoC 掃描。您可以如同以下子區段中所述,選擇性地加密此檔案。

配置 Proxy 伺服器連線

執行這項作業的原因和時機

對設定檔案進行任何變更之後,您必須重新啟動伺服器。
註: Settings.json 是一個 JSON 檔案,因此需要跳出某些字元(例如 "(雙引號)和 \(反斜線)),這樣一來, 會變成 \”,而 \ 會變成 \\
重要: 請不要變更此檔案中的 internalConfiguration 設定。

程序

若為 Proxy 伺服器的安全 (SSL) 連線:配置您自己的 PEM 或 PKCS12 憑證:
  • PEM:
    • PEM 憑證需要兩個檔案(完整路徑)
    • 請不要忘記視需要在檔案路徑和密碼中跳出字元,例如 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 的 keygen 工具將 JKS 憑證轉換為 PKCS12 憑證的範例:
keytool -importkeystore -srckeystore certificate.jks -srcstoretype JKS -destkeystore certificate.p12 -deststoretype PKCS12

使用 Proxy 伺服器

一旦 Proxy 伺服器啟動,您就可以啟動新的記錄 Proxy 實例,以記錄您應用程式的資料流量。

程序

  1. 如果網站是受保護的 (HTTPS),您可以執行下列動作以避免 SSL 警告:
    1. 使用 REST API 將 AppScan Proxy 伺服器所用的自簽「主要憑證管理中心」下載為 PEM 檔案。
    2. 在用於「探索」的瀏覽器上或是任何需要的地方(視資料流量來源而定)安裝憑證。
    如需更多詳細資料,請參閱以下的「配置根憑證」。
  2. 若要啟動 Proxy,請使用 REST API 要求:StartProxy,並定義記錄埠(要將資料流量傳送到的目的地)。
    註: 如果 Proxy Server 對於網站沒有直接存取權,則也可以使用此 REST API 定義上游(已鏈結)Proxy。
    註: 如果您需要定義多個已鏈結 Proxy,或是定義 Proxy 的異常狀況,請使用安裝資料夾中的已鏈結 Proxy 規則檔案 (proxy.chain)。
    註: 如果流量未加密(請參閱以下的子區段),您可以使用下列方法針對個別記錄加密流量檔案 (DAST.CONFIG):
    Query param Example:
    /StartProxy/<recordingPort>?encrypted=true
  3. 透過已定義的紀錄埠傳送資料流量。
  4. 完成時,請傳送 REST API 要求:StopProxy(請注意,不允許 StopProxy/0)。
  5. 傳送 REST API 要求以下載記錄的資料流量:資料流量
    資料流量檔案的副檔名為 .dast.config
    註: 當您下載資料流量檔案時,該資料流量檔案會從 Proxy Server 中刪除。

    您可以透過 ASoC REST API 使用 DAST.CONFIG 檔案來上傳現有工作的探索資料。如果您沒有使用者名稱,則可以

加密 DAST.CONFIG 檔案

您可以使用 Proxy 伺服器 REST API 上傳 DAST.CONFIG 檔案以進行加密,然後下載已加密的檔案。
  • 如果要上傳您的檔案以進行加密,請使用:EncryptDastConfig
  • 如果要下載已加密的檔案,請使用:DownloadEncryptedDastConfig
如需詳細資料,請參閱Proxy 伺服器 API 指令

加密資料流量

依預設,資料流量 (DAST.CONFIG) 檔案未加密。如果要設定伺服器加密所有資料流量,請將 Settings.json 檔案中的 "encryptDastConfig" 索引鍵(可以在安裝資料夾中找到)變更為 TRUE

設定 Proxy 閒置逾時

如果 Proxy 實例在使用後未以關閉指令關閉,將會維持開啟並且在埠上接聽。如果記錄 Proxy 實例閒置超出預先定義的時間,則會自動關閉。

記錄 Proxy 實例的預設閒置逾時為 60 分鐘。您可以在 Settings.json 檔案(儲存在安裝資料夾)中變更此值。

鏈結 Proxy

如果 Proxy 實例在使用後未以關閉指令關閉,將會維持開啟並且在埠上接聽。如果記錄 Proxy 實例閒置超出預先定義的時間,則會自動關閉。

記錄 Proxy 實例的預設閒置逾時為 60 分鐘。您可以在 Settings.json 檔案(儲存在安裝資料夾)中變更此值。

配置根憑證

如果您的應用程式使用 SSL (HTTPS),則 Proxy 必須作為記錄資料流量的中間人。若要這麼做,Proxy 伺服器必須具有根憑證,可用來簽署它與應用程式的通訊。
依預設,Proxy 伺服器會產生唯一的根憑證,不需要任何使用者介入。不過,瀏覽應用程式時,會收到 SSL 警告。您可以執行下列其中一個動作:
  1. 在您的機器上安裝 Proxy 產生的憑證:
    1. 使用 REST API 下載 AppScan Proxy Server 所用的自簽「主要憑證管理中心」為 PEM 檔案。
    2. 在用於「探索」的瀏覽器上或是任何需要的地方(視資料流量來源而定)安裝憑證。
  2. 將您自己的主要憑證匯入至 Proxy 伺服器。支援的憑證格式有 PKCS12(.P12、.PFX)、JKS:
    1. 開啟指令行視窗,並且導覽至 AppScan Presence 機器上 Proxy 伺服器的安裝資料夾。預設位置:
      <AppScanPresenceInstallFolder>\Automation
    2. 執行下列指令:
      ..\Java\jre\bin\java -jar DastProxy.jar -irc [path to certificate file] -ircp [password]
    附註:如果要查看完整的指令使用情形,請執行:
     ..\Java\jre\bin\java -jar DastProxy.jar
重要: 由於憑證會儲存在 Proxy 伺服器上,因此建議使用專用的測試憑證。
註: 此工作流程的示範 Script ProxyServerDemoScript.py 可以在(預設位置)中找到。
<AppScanPresenceInstallFolder>\Automation