了解专用站点扫描

AppScan 360° 通过集中式本地服务器提供动态应用程序安全测试 (DAST)。此功能要求扫描程序(位于 AppScan 360° 实例中)能够访问受测应用程序。位于同一网段或可通过标准路由访问的 Web 应用程序均可正常进行扫描。但是,当目标应用程序位于隔离网段、严格的内部防火墙之后,或处于中央 AppScan 360° 服务器无法建立直接连接的 VPN 环境中时,必须进行专用站点扫描 (PSS)。

PSS 隧道

我们针对 PSS 的解决方案不需要对客户网络进行任何特殊更改,即可能会对网络造成风险的任何更改。在客户网络中设置的 PSS 客户机只需要具备连接至 AppScan 360° 实例的传出访问权限(直接连接或通过 HTTP 代理),以及对被扫描站点的访问权限。

此解决方案由两个端点(服务器和客户机)组成,这两个端点可创建由隔离网络(客户机)端上的端点启动的 TCP/IP 隧道。

隧道服务器

此端点位于扫描程序旁边的 隔离网段中。仅在开始新扫描时才会启动。服务器具有两个“端”,由侦听连接(背靠背服务器)组成。

  • 第一个连接侦听来自隧道客户机的传入连接。这是隧道端。
  • 第二个连接侦听来自扫描程序的传入连接。在这方面,它模拟 HTTP 代理,因此是代理端。

当来自客户机的连接可用时,扫描程序将向代理端发送请求,然后通过端口将其转发至隧道端的传入连接。当客户机返回响应时,这些响应将通过代理端转发回扫描程序。

隧道客户机

此端点位于隔离网段内部,并生成与服务器的 TCP/IP 连接。它与隧道服务器的功能相同,只是由两组客户机连接(背靠背客户机)组成。隧道客户机也具有两个“端”:

  • 隧道端是一组向外发起到 AppScan 360° 实例上的隧道服务器的连接。
  • 客户机端是(直接或通过代理)向扫描服务器发起的一组连接。

隧道客户机执行端口转发。

AppScan Presence

专用站点扫描隧道依赖于一种由称为 AppScan PresencesAppScan 360° 控制的中央机制:它是一个通信通道,负责从中央服务接收要执行的任务,并触发相应的处理程序来执行这些任务。Presence 服务是一种轮询服务,使用安全的 HTTP 通信连续轮询 AppScan 360° 服务以查找任务。

AppScan Presence 服务仅用于从 AppScan 360 服务检索任务、下载处理任务所需的信息以及触发处理程序。在这种情况下,此任务由隧道客户机处理,并且检索到的信息是启动与服务器的隧道客户机连接所需的数据。

执行扫描

要执行扫描,需要启动隧道客户机并将其连接到服务器。此操作通过 AppScan Presence 框架执行。

AppScan Presence 框架包含一项在隧道客户机计算机上运行的 Presence 服务。Presence 服务会轮询 Presence AppScan 360 实例,后者指示何时可以运行扫描。服务之间的交换包括扫描详细信息,包括客户机应连接到的隧道服务器的 IP 地址。此外,它还接收信息,从而确保主动确定其连接到的服务器。有关更多信息,请参见下文的“安全注意事项”部分。

一旦用户请求了专用扫描并选择了应通过其执行扫描的 Presence 实例,系统便会分配一个扫描代理程序,并启动该代理程序的隧道服务器。然后,任务在 AppScan 360°服务器中排队。Presence 服务接受此任务,然后使用相关连接信息启动隧道客户机。

安全注意事项

考虑了两个重要的安全方面:客户网络以及隧道连接的安全性。

该解决方案不需要对组织的核心网络路由进行任何更改。请注意,AppScan Presence 和 PSS 隧道客户机不需要任何特殊的特许权。这使客户可以在运行 AppScan Presence 和 PSS 隧道客户机的主机上应用组织安全策略。在大多数情况下,不需要更改内部防火墙(例如,允许特定端口或 IP 地址上的传入连接)。唯一的例外是:
  • 如果隔离网段中的计算机被限制对中央网络进行直接传出访问,则必须允许托管 AppScan Presence 的计算机访问 AppScan 360 实例。
  • 如果组织使用自己的证书重新签署 SSL/TLS 流量,则必须排除与 AppScan 360° 的连接,这样通信才不会中断,并且架构中内置的安全机制可以正常运行。
在此类情况下,确保不要重新签署 AppScan 360 使用的 IP 地址或主机名,或允许直接访问它们,并确保防火墙不会阻止它们。

Presence 标识

每个 Presence 服务都有一个唯一的密钥作为其标识。它用于确定 Presence 实例并为其提供正确的扫描任务。密钥可以随时更新,因此可以符合需要定期更新的组织安全策略。在服务器上更新密钥后,Presence 实例将停止接收任务,直至以物理方式将密钥放置在 Presence 计算机上。

身份验证

至关重要的是隧道服务器与隧道客户机能够彼此信任,以防止从未经验证的位置在不同的网段之间进行外部访问。当扫描准备好运行并且隧道服务器已启动时,它会生成一个私有服务器密钥和证书以及一个随机客户机密钥(25 个字母数字字符)。服务器证书以及客户机密钥与扫描任务详细信息(通过 Presence 服务与 AppScan 360 服务之间的通信)一起传递到隧道客户机。然后,隧道客户机和服务器可以验证远程连接的身份。

扫描完成后,服务器证书和客户机密钥将失效,并且永远不会重复使用,即使对于重新扫描也是如此。

此证书符合偶尔更新的最新 NIST 和 FIPS 标准(加密算法、散列算法和密钥长度)。

传输中数据保护

隧道连接使用 TLS 1.2 进行加密。隧道客户机会提前获取临时服务器证书,并使用它来验证 TLS 认证中使用的服务器证书是否为预期证书。客户机对服务器进行认证后,会将客户机密钥发送到服务器,以便服务器能够对客户机进行认证。通过此隧道传递的数据由扫描程序与测试应用程序之间的请求和响应组成,因此非常敏感。为了保护数据,在隧道两端的传输过程中使用这些一次性证书和密钥对数据进行加密。