AppScan Enterprise 中的测试自动化使用AppScan Proxy Server

您可以借助 AppScan Proxy Server 记录自己的流量,并在您的 ASE 作业中将其作为探索数据。

概述

本部分介绍了将动态扫描合并到功能测试中的情况。在 DevOps 领域中,能够在功能测试过程中针对 Web 应用程序合并安全性扫描日趋重要。如果您使用自动化框架(例如 Selenium),则可以利用已编写的脚本来创建定制扫描。从自动框架到 Web 应用程序的扫描将通过代理服务器代理来发送。服务器将记录流量,并将其另存为 DAST 配置文件。然后,上载 ASE 使用的文件作为扫描的“浏览”数据。还可通过自动化服务器代理手动发送流量来创建 DAST 配置文件。

此图描述了 automated scan flow with AppScan® Enterprise。


通过 AppScan Enterprise 进行的自动扫描流程

典型工作流程

  1. 初始化(每台服务器一次):
    1. 安装代理服务器
    2. [可选] 配置代理服务器
      1. 处理 SSL 警告(根证书)
      2. 不活动超时
      3. 链接代理
    3. 启动代理服务器
  2. 运行扫描:
    1. 根据配置在指定或随机选择的端口上开始代理侦听(请参阅使用代理服务器)。
    2. 通过选定代理运行 Selenium 脚本(或其他功能测试),

      Or

      使用配置为通过选定代理进行工作的 Web 浏览器,手动浏览 Web 应用程序。
    3. 停止代理并保存流量记录。
    4. 您可以借助 ASE REST API 更新现有 ASE 作业的探索数据。

      有关更多信息,请参阅文档 https://%3C%3Case_server%3E%3E:9443/ase/api/pages/apidocs.html

注: 此工作流程的演示脚本 ProxyServerDemoScript.py 可在安装文件夹中获取。

安装代理服务器

  1. 下载 Node.js 的当前版本之一,并将其安装到计算机上。
  2. 复制 <Installation_dir>\WebApp\downloads\ 目录下的 AppscanProxyServer.zip,然后解压到您机器的某个文件夹下。
    注: 有关 AppscanProxyServer API 的文档可通过以下途径获取 <Unzipped folder of AppscanProxyServer.zip>/apidocs/index.html

配置代理服务器

根证书

如果您的应用程序使用 SSL (HTTPS),则代理必须作为中间人来记录交流。对于这个代理服务器,必须拥有一个可用于签署其与应用程序的通信的根证书。

缺省情况下,代理服务器会生成一个唯一的根证书,无需用户介入。但是,在您进行如下任一操作的过程中,浏览应用程序时,会显示 SSL 警告:

  • 忽略警告。
  • 在您的机器上安装代理服务器生成的证书:
    1. 使用 REST API 可下载由 AppScan Proxy Server 使用的自签署根认证中心作为 PEM 文件。
    2. 在用于“浏览”的浏览器上安装证书,或在需要的位置(取决于流量的来源)进行安装。
  • 将您的根证书导入代理服务器。受支持的证书格式为 PKCS12(.P12、.PFX)、JKS:
    1. 打开命令行窗口,导航到代理服务器上的安装文件夹。
    2. 运行下列命令:
      .\Java\jre\bin\java -jar DastProxy.jar -irc [path to certificate file] -ircp [password]
      注: 要查看所使用的全部命令,请运行:
      .\Java\jre\bin\java -jar DastProxy.jar
    重要信息:建议使用专用测试证书,因为证书保存在代理服务器上。

代理服务器不活动超时

如果在使用后未使用关闭命令关闭代理实例,则该代理实例将保持打开状态并在端口上侦听。如果代理实例闲置了预定义时间,则会自动关闭。代理实例的缺省不活动超时为 60 分钟。您可以在保存在安装文件夹中的 Settings.json 文件中更改此值。

要点:请勿对此文件下的任何其他设置进行更改。

链接代理

如果需要定义多个链接代理,或定义代理异常,请使用在安装文件夹中找到的链接代理规则文件 (proxy.chain)。文件包含使用说明。

启动代理服务器

要开启 AppScan 代理服务器,请运行命令:
node app.js [port]
其中 *port = AppScan 代理服务器响应 REST API 请求的端口。
注: 如果您没有定义该端口,则缺省会使用 8383 端口。
注: 建议永久运行 AppScan 代理服务器,不必停止运行。

使用代理服务器

代理服务器启动后,您可以启动代理实例,并将流量发送到应用程序。

  1. 要查看 REST API 文档,请在浏览器中输入:http://localhost:<port>
    注: 要从不同的计算机查看,请输入:http://<IP>:<port>

    其中 *port = AppScan 代理服务器监听的端口。

    *IP = 安装了 AppScan 代理服务器的计算机的 IP 地址

  2. 如果站点是安全的 (HTTPS),通过执行以下操作来避免 SSL 警告:
    1. 使用 REST API 可下载由 AppScan Proxy Server 使用的自签署根认证中心作为 PEM 文件。
    2. 在用于“探索”的浏览器上安装证书,或在需要的位置(取决于流量的来源)进行安装。
  3. 要启动代理实例,请使用 REST API 请求:StartProxy,并定义记录端口(想要将流量发送到的端口)。
    注: 如果代理服务器没有站点的直接访问权,还可通过该 REST API 定义上游(已链接)代理。
    注: 如果需要定义多个链接代理,或定义代理异常,请使用在安装文件夹中找到的链接代理规则文件 (proxy.chain)。
  4. 通过已定义的记录端口发送流量。
  5. 完成后,发送 REST API 请求:StopProxy
  6. 下载包含记录的流量的 DAST 配置文件 (.dast.config),方法是发送以下 REST API 请求:Traffic

    这是 ZIP 文件,其中包含一个或多个 .har(HTTP 存档)文件。

    注: 下载 DAST 配置文件时,会从 AppScan 代理服务器删除此数据。
  7. 您可以借助 ASE REST API,使用 DAST 配置文件来更新现有作业的“探索”数据。有关更多信息,请参阅 https://%3Case_server%3E:9443/ase/api/pages/apidocs.html