了解专用站点扫描

ASoC 通过基于云的扫描程序提供动态应用程序安全测试 (DAST) 作为 SaaS。此功能要求基于云的扫描程序能够访问受测应用程序。可以对公开的基于 Web 的应用程序进行扫描,而不会出现问题。但是,只有在添加网络组件(例如 VPN 或代理)或更改网络以允许扫描程序访问 Web 应用程序的主机服务器之后,才可以进行专用站点扫描 (PSS)。

PSS 隧道

我们针对 PSS 的解决方案不需要对客户网络进行任何特殊更改,即可能会对网络造成风险的任何更改。在客户网络中设置的 PSS 客户机仅需(直接或通过 HTTP 代理)出网访问因特网以及访问正在扫描的站点。

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

隧道服务器

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

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

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

隧道客户机

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

  • 隧道端是向隧道服务器发起的一组连接。
  • 客户机端是(直接或通过代理)向扫描服务器发起的一组连接。

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

AppScan Presence

专用站点扫描隧道依赖于一种称为 AppScan Presence 的 SaaS 控制机制:一种通信信道,从基于云的服务接收要执行的任务,并触发处理程序以执行任务。Presence 服务是一种轮询服务,使用安全的 HTTP 通信连续轮询基于云的服务以查找任务。

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

执行扫描

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

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

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

安全注意事项

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

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

Presence 标识

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

验证

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

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

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

传输中数据保护

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