使用 AppScan Proxy Server 在 AppScan Enterprise 中測試自動化

AppScan Proxy Server 可讓您記錄您自己的資料流量,並且在您的 ASE 工作中當作「探索」資料使用。

概觀

本節說明如何在功能測試中納入動態掃描。在 DevOps 的領域中,能夠在 Web 應用程式的功能測試程序中納入安全掃描越來越重要。如果您使用自動化架構(如 Selenium),可以利用已經撰寫好的 Script 來建立自訂的掃描。從自動化架構送往 Web 應用程式的要求會透過 Proxy Server Proxy 傳送。伺服器記錄資料流量並將它另存為 DAST 配置檔。然後您上傳檔案以供 ASE 用來作為探索資料進行掃描。您也可以手動透過自動化伺服器 Proxy 傳送資料流量來建立 DAST 配置檔。

此圖表描繪 automated scan flow with AppScan® Enterprise。


使用 AppScan Enterprise 的自動化掃描流程

一般工作流程

  1. 起始設定(每部伺服器各一次):
    1. 安裝 Proxy 伺服器
    2. [選用] 配置 Proxy 伺服器
      1. 處理 SSL 警告(主要憑證)
      2. 無活動逾時
      3. 鏈結 Proxy
    3. 啟動 Proxy 伺服器
  2. 執行掃描:
    1. 依照配置,在指定的埠或隨機選取的埠上啟動 Proxy 實例接聽(請參閱使用 Proxy 伺服器)。
    2. 透過選取的 Proxy 執行 Selenium Script(或其他功能測試)。

      或者

      使用被配置為透過選取的 Proxy 運作的 Web 瀏覽器,手動瀏覽 Web 應用程式。
    3. 停止 Proxy,並儲存資料流量紀錄。
    4. 使用 ASE REST API 來更新現有 ASE 工作的探索資料。

      如需相關資訊,請參閱說明文件 https://%3C%3Case_server%3E%3E:9443/ase/api/pages/apidocs.html

註: 此工作流程的示範 Script ProxyServerDemoScript.py 可以在安裝資料夾中取得。

安裝 Proxy 伺服器

  1. 下載其中一個現行版本的 Node.js,並安裝在您的機器上。
  2. <Installation_dir>\WebApp\downloads\ 目錄複製 AppscanProxyServer.zip,並且將其解壓縮至您機器上的資料夾。
    註: AppscanProxyServer API 相關說明文件可以在以下位置取得: <Unzipped folder of AppscanProxyServer.zip>/apidocs/index.html

配置 Proxy 伺服器

主要憑證

如果您的應用程式使用 SSL (HTTPS),則 Proxy 必須作為記錄資料流量的中間人。因此 Proxy 伺服器必須具有主要憑證,可用來簽署它與應用程式的通訊。

依預設,Proxy 伺服器會產生唯一的主要憑證,不需要任何使用者介入。但是,當瀏覽應用程式時會顯示 SSL 警告,您即可執行下列其中一個操作:

  • 忽略警告。
  • 在您的機器上安裝 Proxy 產生的憑證:
    1. 使用 REST API 下載 AppScan Proxy Server 所用的自簽「主要憑證管理中心」為 PEM 檔案。
    2. 在用於「探索」的瀏覽器上或是任何需要的地方(視資料流量來源而定)安裝憑證。
  • 將您自己的主要憑證匯入至 Proxy 伺服器。支援的憑證格式有 PKCS12(.P12、.PFX)、JKS:
    1. 開啟指令行視窗,並且導覽至 Proxy 伺服器機器上的安裝資料夾。
    2. 執行下列指令:
      .\Java\jre\bin\java -jar DastProxy.jar -irc [path to certificate file] -ircp [password]
      註: 如果要查看完整的指令使用情形,請執行:
      .\Java\jre\bin\java -jar DastProxy.jar
    重要:建議使用專用測試憑證,因為憑證會儲存在 Proxy 伺服器上。

Proxy 伺服器閒置逾時

如果 Proxy 實例在使用後未以關閉指令關閉,將會維持開啟並且在埠上接聽。如果 Proxy 實例閒置超出預先定義的時間,則會自動關閉。Proxy 實例的預設閒置逾時為 60 分鐘。您可以在 Settings.json 檔案(儲存在安裝資料夾)中變更此值。

重要事項:請勿對此檔案中的其他任何設定進行變更。

鏈結 Proxy

如果您需要定義多個已鏈結 Proxy,或是定義 Proxy 的異常狀況,請使用安裝資料夾中的已鏈結 Proxy 規則檔案 (proxy.chain)。檔案包括使用的指示。

啟動 Proxy 伺服器

如果要啟動 AppScan Proxy 伺服器,請執行以下指令:
node app.js [port]
其中 *port = AppScan Proxy 伺服器回應 REST API 要求所在的埠。
註: 如果您未定義埠,則預設會使用埠 8383。
註: 建議永久執行 AppScan Proxy 伺服器,不需要停止。

使用 Proxy 伺服器

在啟動 Proxy 伺服器之後,您就可以啟動 Proxy 實例,並且將您的資料流量傳送至您的應用程式。

  1. 如果要檢視 REST API 文件,請在瀏覽器中鍵入:http://localhost:<port>
    註: 如果要從不同的機器檢視,請鍵入:http://<IP>:<port>

    其中 *port = AppScan Proxy 伺服器接聽所在的埠。

    *IP = 其上安裝 AppScan Proxy 伺服器之機器的 IP 位址。

  2. 如果網站是受保護的 (HTTPS),請執行下列動作以避免 SSL 警告:
    1. 使用 REST API 下載 AppScan Proxy Server 所用的自簽「主要憑證管理中心」為 PEM 檔案。
    2. 在用於「探索」的瀏覽器上或是任何需要的地方(視資料流量來源而定)安裝憑證。
  3. 如果要啟動 Proxy 實例,請使用 REST API 要求:StartProxy,並定義記錄埠(要將資料流量傳送到的目的地)。
    註: 如果 Proxy Server 對於網站沒有直接存取權,則也可以使用此 REST API 定義上游(已鏈結)Proxy。
    註: 如果您需要定義多個已鏈結 Proxy,或是定義 Proxy 的異常狀況,請使用安裝資料夾中的已鏈結 Proxy 規則檔案 (proxy.chain)。
  4. 透過已定義的紀錄埠傳送資料流量。
  5. 完成時,請傳送 REST API 要求:StopProxy
  6. 藉由傳送 REST API 要求,下載 DAST 配置檔 (.dast.config),其中包含已記錄的資料流量:資料流量

    檔案是 ZIP 檔案,其中包含一或多個 .har(HTTP 保存)檔案。

    註: 當您下載 DAST 配置檔時,會從 AppScan Proxy 伺服器刪除此資料。
  7. 您可以使用 ASE REST API,利用 DAST 配置檔以更新現有工作的探索資料。如需相關資訊,請參閱 https://%3Case_server%3E:9443/ase/api/pages/apidocs.html