设置 AppScan 360° 的分布式安装环境

在安装 AppScan 360° 之前,设置环境以实现最佳部署。

HCL 标识

您的 HCL 标识会将您的帐户与有效的许可证以及对软件和支持的访问权相关联。访问 HCL 许可证和下载门户和 HCL Harbor 时,需要此项。

有关创建 HCL 标识以及访问许可证和软件的完整信息,请参阅本文档

Linux 系统

需要 Ubuntu Linux 系统 V22:04 或更高版本才能启动部署。实际部署可以位于远程 Kubernetes 集群,但部署是从此 Linux 机器启动的。系统必须安装 Bash shell 和 openssl,并且能够连接到指定的 SQL Server。

对于动态扫描,请在运行动态扫描的所有节点中增加内核中的 inotify 实例数:
  1. fs.inotify.max_user_instances=524288 添加到 /etc/sysctl.conf
  2. 重新启动节点以使更改生效。

本地容器服务 (Docker)

Docker 是可将映像推送到远程注册表的本地容器服务。在从 HCL 许可证和下载门户网站下载的存档文件中安装 ASCPAppScan Remediation Advisories 时,需要此项。

Kubernetes 集群

集群是 ASCP 代理程序容器驻留并投入使用的位置。

需要支持 ReadWriteMany 的存储提供程序。如果要使用像 longhorn 这样的定制存储提供程序,那么请确保其支持 ReadWriteMany

Kubectl

Kubectl 用于与远程 Kubernetes 集群通信。

有关安装和配置 Kubectl 的完整说明,请参阅此处

Helm 3

Helm 3 是一组使您可以更轻松地配置和使用 Kubernetes 应用程序的资源。

有关安装 Helm CLI 的完整说明,请参阅此处

验证 Linux 和组件服务之间的通信

要验证 Kubernetes 连接,请运行:
> kubectl version
或者
> kubectl get nodes

要验证 Docker 连接,请运行:

> docker version
要验证 Helm 连接,请运行:
> helm version

入口控制器

部署支持 HTTPS 后端协议的入口控制器。

建议的入口控制器是 NGINX(最新版本)。但是,如果集群中已存在相应的入口控制器,则无需安装新的控制器。

控制器应该符合以下需求:
  • proxy-body-size: 2g

  • proxy-connect-timeout: 3600

  • proxy-read-timeout: 3600

  • proxy-send-timeout: 3600

  • enable-access-log-for-default-backend: true

  • ssl-redirect: true

  • use-http2: true

  • use-forwarded-headers: true

  • compute-full-forwarded-for: true

证书管理器

安装和配置 Cert-manager

MSSQL

MSSQL 是关系数据库管理系统。

Active Directory (LDAP)

Active Directory 会认证和授权网络中的所有用户和计算机,为网络访问分配和实施安全策略。

重要:AppScan 360° V1.1.0 或更早版本升级时,LDAP 配置无法按原样重新使用。在安装之前,必须验证所有 LDAP 参数是否满足 AppScan 360° V1.2 的要求。

网络

网络应加密并支持网络策略。

重要: 我们强烈建议为客户机与 AppScan 360° 之间的通信安装的证书是可信证书。如果没有可信证书,客户机和 AppScan 360° 之间的通信将不受信任;客户机可以将证书导入客户机的 JRE 密钥库。但是,此选项可能不适用于从 AppScan 360° 自动下载 Static Analyzer Command Line Utility (SAClientUtil) 的静态分析客户机(例如 Azure 插件)。

存储器

AppScan 360° 使用两种类型的存储。所需的存储空间很大程度上取决于扫描次数和所扫描应用程序的大小。作为准则,单次扫描执行所需的平均存储大小为:

  • MSSQL Server DB 存储:150 KB
  • 文件存储:10 兆字节
每次扫描执行次数的估计存储:
扫描执行 1,000 100,000 1,000,000
MSSQL Server 存储 150 兆字节 15 GB 150 GB
文件存储 10 GB 1 TB 10 TB
建议数据库和文件存储的最小存储大小均为 200GB,用于临时存储日志。
注: 存储应加密、冗余、可在 Pod 之间共享,并支持 RWX (ReadWriteMany) 访问模式。

您可以手动删除旧扫描以节省空间。

CPU 和内存

CPU 和内存要求取决于用户数量和预期工作负载。

缺省情况下,Kubernetes 作业会为每个扫描分配最小资源。在某些情况下,受用户的活跃程度、使用的自动化程度、应用程序的大小以及扫描频率等因素的影响,可能需要更多的资源才能正常运行扫描;假设资源可用,Pod 将尝试扩展到最大定义的资源。如果没有足够的资源进行扩展,则某些扫描可能会失败。

为最大程度获得成功,请为系统提供足够的资源,使其能够在需要时进行扩展。资源分配派生自并发扫描数。

ASCP 资源

仅当运行 ASCP 时:
内存 CPU (vCore)
ASCP
最小值 42 GB 10
最大值 48 GB 12
注: 除了扫描所需的资源外,ASCP 资源是恒定的。

扫描资源

运行扫描时,其他资源:

内存 CPU (vCore)
动态分析扫描:单次扫描
最小值 3 GB 2
推荐 4 GB 3
动态分析扫描:五个并发扫描
最小值 15 GB 10
推荐 20 GB 15
动态分析扫描:十个并发扫描
最小值 30 GB 20
推荐 40 GB 30
静态分析扫描:单次扫描
最小值 16 GB 2
最大值 28 GB 4
静态分析扫描:五个并发扫描
最小值 80 GB 10
最大值 140 GB 20
静态分析扫描:十个并发扫描
最小值 160 GB 20
最大值 280 GB 40
要实现额外的并发,必须有足够的额外资源可用:
  • 将上面列出的单次扫描的扫描资源乘以预期的并发扫描次数,然后加上 ASCP 资源。
    例如:
    • 五个并发扫描所需的最少资源为 122GB 内存和 20 个 CPU(42GB 用于 ASCP,80GB 用于扫描,10 个 CPU 用于 ASCP,10 个 CPU 用于扫描)。
    • 12 个并发扫描所需的最少资源为 234GB 内存和 34 个 CPU(42GB 用于 ASCP,192GB 用于扫描,10 个 CPU 用于 ASCP,24 个 CPU 用于扫描)。
  • 确保 ASCP 安装过程中发放的 AppScan 360° 许可证数量充足。
  • 定义 Kubernetes 配置和资源可用性,以允许多个扫描同时启动和运行。
  • 我们不建议超过 25 个并发项。

每个服务的最大数量取决于预期的扫描负载峰值配置文件,即提交的扫描峰值数量、扫描源代码/二进制文件的百分比和扫描 IRX 的百分比。由于这些未知因素,可能无法在初始部署时定义最佳配置。可以根据实际扫描负载调整 HCL AppScan 360° 配置。

注: 要执行扫描,单个节点上应提供扫描所需的资源。建议用于静态扫描的节点应至少有 28GB RAM 和四个内核;建议用于动态扫描的节点应至少有 4GB RAM、三个内核和 200GB 的磁盘空间用于临时存储日志。

数据库

  • 数据库安装、管理、备份、维护和许可是用户的责任。
  • 支持 MSSQL Server 2019 和更高版本。
  • 在安装 HCL AppScan 360° 之前,确保用户具有 db_creator 权限。

浏览器

AppScan 360° 支持以下浏览器的最新版本:
  • Chrome
  • Safari
  • Edge
  • Firefox

身份提供者

在安装过程中会创建两个本地用户。
管理员 应用程序管理者
用户名 管理员 用户
密码 Admin12! User12!

要加入其他用户,HCL AppScan 360° 需要 Microsoft Active Directory

屏幕分辨率

HCL AppScan 360° 的建议屏幕分辨率为 1920 x 1080。

访问点

组件 入口 URL
用户门户网站 https://<CK_CONFIGURATION_DISCLOSED_SITE_URL>
用户 API https://<CK_CONFIGURATION_DISCLOSED_SITE_URL>/api
用户 API (Swagger) https://<CK_CONFIGURATION_DISCLOSED_SITE_URL>/swagger
注: 需要使用 DNS 服务器中的入口指定 IP 发布入口 FQDN。