部署 Java IAST 代理程式

您可以在支援 Java、.NET、Node.js 或 PHP 型應用程式的應用程式伺服器上,部署 IAST 代理程式。本節說明如何在 Web 伺服器上建立 Java 代理程式類型。

開始之前

最簡單有效的 IAST 使用方式是將它部署做為 WAR 檔案 Servlet,部署在您的 Web 伺服器。無法執行時(例如在 Quarkus 架構上執行 IAST 時),可改為使用 JAR 檔,將 IAST 代理程式安裝為 Java 代理程式。
支援: 僅支援執行 JRE/JDK 1.8 或更高版本的 Web 應用程式伺服器。
  1. 如果執行 IAST 的伺服器位於 Proxy 後方:
    • 如為透通 Proxy,執行伺服器時請使用下列 Java 內容其中任何一個:
      • 標準 Java 內容:
        -Dhttps.proxyHost={proxy_ip} -Dhttps.proxyPort={proxy_port}
      • 自訂 Java 內容:
        -DIast.proxyHost={proxy_ip} -DIast.proxyPort={proxy_port}
      • 環境變數:
        IAST_PROXY_HOST={proxy_ip} IAST_PROXY_PORT={proxy_port}
    • 如果與外部通訊(例如,傳遞透通 Proxy)需要憑證,請提供有效的憑證,並執行下列指令,將它匯入金鑰儲存庫:
      註: 如果您使用預設設定安裝 JRE,則金鑰儲存庫名稱會是 cacerts,且會使用密碼 changeit.保護。否則,請將 -storepass-keystore-file 以您自己的值取代。
      keytool.exe -import 
                                              -storepass "changeit" 
                                              -keystore "C:\Program Files (x86)\Java\jre1.8.0_144\lib\security\cacerts" 
                                              -alias certificate.cer 
                                              -file "C:\certificate.cer" 
                                              -noprompt
                                          
  2. 適用於 1.14.2 之前的 IAST 代理程式版本:如果編譯時間和執行時間 Java 版本兩者均為第 9 版或更高版本,請將下列旗標新增到 java 執行指令:
    –Djava.lang.invoke.stringConcat=BC_SB

程序

  1. 此處所述,下載 ASoC Java IAST 代理程式。
  2. 解壓縮 ZIP 檔內容。
  3. 將 IAST 代理程式部署為 WAR Servlet 或 JAR 檔:
    部署為 WAR Servlet:
    1. 在解壓縮的 ZIP 檔根目錄中找出 Secagent.war
    2. 按照伺服器上的指示:
      • Tomcat 伺服器/Jetty 伺服器:複製 Secagent.war 至您的 webapps 資料夾,或像部署其他任何 WAR servlet 一樣部署該檔案。
      • WebSphere 伺服器:部署 Secagent.war,就像部署其他 WAR Servlet 一樣部署該檔案。
        註: 務必:
        1. 將代理程式部署為 Web 應用程式,而不是企業應用程式
        2. 選取 /Secagent 作為環境定義根目錄
      • WebSphere Liberty 伺服器/Open Liberty 伺服器:複製 Secagent.war 至您的 dropins 資料夾,或像部署其他任何 WAR servlet 一樣部署該檔案。
      • JBoss/WildFly 伺服器/JBoss EAP 伺服器:複製 Secagent.wardeployments 資料夾,或像部署其他任何 WAR servlet 一樣部署該檔案。
      • Weblogic:部署 Secagent.war,就像部署其他 WAR Servlet 一樣部署該檔案。
    3. 若要驗證部署,請開啟任何瀏覽器並瀏覽到:
      http://<server address>/Secagent
      Secagent 頁面將開啟,顯示代理程式已成功載入。當您使用或測試應用程式(執行功能測試、執行動態掃描或手動瀏覽應用程式)時,IAST 代理程式會監控其所傳送的要求,並報告其發現的安全問題。
    部署為 JAR 檔:

    無法將 IAST 代理程式部署為 WAR 檔時,請使用此部署方法。例如,在 Quarkus 架構上執行 IAST 時。在此部署方法中,IAST 代理程式將做為 JAVA 代理程式執行。

    1. jar_deployment 資料夾中找到 secagent.jar
    2. 請將下列旗標新增至應用程式指令行:
      -Djavaagent:<path to secagent.jar>
    3. 若要驗證部署,請檢查 stdout 以取得開頭為 "[IAST Secagent]" 的訊息。
    現在代理程式已安裝完成。當您使用或測試應用程式(執行功能測試、動態掃描或手動探索應用程式)時,IAST 代理程式會監視其要求,並報告其發現的安全問題。

使用安全管理程式執行 Java 代理程式

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

您可以使用安全管理程式執行 Java 代理程式:

若要在 Tomcat 上使用安全管理程式執行 Java 代理程式:

程序

  1. 找到 catalina.policy 檔。
    catalina.policy 檔通常位於 Tomcat 安裝配置目錄中。確切路徑可能會因作業系統和 Tomcat 版本而異。
  2. 在文字編輯器中開啟 catalina.policy 檔。
  3. 找到「授予」區塊。

    尋找開頭為關鍵字「授予」的區塊,然後是一或多個「許可權」聲明。

  4. 新增所需許可權如下:
    1. 在「授予」區塊中,新增下列許可權:
      permission java.lang.RuntimePermission "net.bytebuddy.*";
    2. 在檔案結尾處,新增下列許可權:
      grant codeBase "file:${catalina.base}/webapps/Secagent/-" {
                                          permission java.security.AllPermission;
                                          };
  5. 儲存 catalina.policy 檔。
  6. 重新啟動 Tomcat 伺服器以套用變更。