部署 Java IAST 代理程序

您可以在支持基于 Java、.NET、Node.js 或 PHP 的应用程序的应用程序服务器上部署 IAST 代理程序。本部分说明如何在 Web 服务器上创建 Java 代理程序类型。

开始之前

使用 IAST 最简单、最有效的方法是在 Web 服务器上将其部署为 WAR 文件 Servlet。如果这样不可行(例如,在 Quarkus 框架上运行 IAST 时),可以使用 JAR 文件将 IAST 代理程序安装为 Java 代理程序。
支持: 仅支持运行 JRE/JDK 1.8 或更高版本的 Web 应用程序服务器。
  1. 如果运行 IAST 的服务器位于代理后面:
    • 对于透明代理,在运行服务器时使用以下任何 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}
    • 如果需要证书进行外部通信(例如,传递透明代理),请提供有效的证书,并运行以下命令将其导入密钥库。
      注: 如果您使用缺省设置安装 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 版本都是 V9 或更高版本,则将以下标志添加到 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 服务器:像部署任何其他 WAR Servlet 一样部署 Secagent.war
        注: 确保:
        1. 将代理部署为 Web 应用程序,而不是企业应用程序
        2. 选择 /Secagent 作为上下文根
      • WebSphere Liberty 服务器/Open Liberty 服务器:Secagent.war 复制到您的 dropins 文件夹,或像部署任何其他 WAR Servlet 一样进行部署。
      • Jboss/WildFly 服务器/JBoss EAP 服务器:Secagent.war 复制到 deployments 文件夹,或像部署任何其他 WAR Servlet 一样进行部署。
      • Weblogic:像部署任何其他 WAR Servlet 一样部署 Secagent.war
    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 上以 war 形式使用安全管理器运行 Java 代理程序:

过程

  1. 找到 catalina.policy 文件。
    catalina.policy 文件通常位于 Tomcat 安装配置目录中。具体路径可能会因操作系统和 Tomcat 版本而异。
  2. 在文件编辑器中打开 catalina.policy 文件。
  3. 找到“grant”块。

    查找以关键字“grant”开头,后跟一个或多个“permission”语句的块。

  4. 如下所示,添加所需许可权:
    1. 在“grant”块中,添加以下许可权:
      permission java.lang.RuntimePermission "net.bytebuddy.*";
    2. 在文件末尾,添加以下许可权:
      grant codeBase "file:${catalina.base}/webapps/Secagent/-" {
                                          permission java.security.AllPermission;
                                          };
  5. 保存 catalina.policy 文件。
  6. 重新启动 Tomcat 服务器以应用更改。