使用 GitLab CI/CD 和容器配置扫描自动化
HCL®AppScan® 源代码 命令行界面 (CLI) 容器可从 HCL Harbour 和 HCL FlexNet Operations 门户网站 (FNO) 中获得,可用于使用 GitLab 自动执行静态分析扫描,而无需安装 AppScan® 源代码 的完整实例。
使用容器扫描的主要步骤包括:
- 准备应用程序。
- 使用来自 HCL FNO 的容器映像准备 GitLab CI/CD。
- 使用 GitLab CI/CD 运行程序启动扫描。
先决条件
开始之前,确保您的环境符合以下需求:
- GitLab CI/CD 环境:安装了 Docker 的一个或多个基于 Linux RHEL 7.9 的 GitLab CI/CD 运行程序。
这是旨在使用 CLI 容器运行静态分析扫描的系统。
-
AppScan® Source for Automation 的有效许可证和相关许可证服务器信息。
-
AppScan® 源代码 CLI 容器映像
从 HCL Harbor 或 HCL FNO 下载 AppScan® 源代码 CLI 容器映像。使用有效的许可证,您的 HCL 标识将授予对这些位置的访问权。
-
AppScan® 源代码 CLI 脚本
使用 GitLab CI/CD 通过容器进行扫描时需要脚本。
- AppScan® 源代码 项目 (
.ppf
) 和应用程序 (.paf
) 文件:使用 AppScan® 源代码 for Analysis 生成配置文件(需要在可访问扫描目标的 Linux 系统上安装 AppScan® 源代码)。 - 从容器访问 GitLab CI/CD 运行程序相关内容:
- 要扫描的应用程序应位于 GitLab 中,并且可从运行扫描的 GitLab CI/CD 运行程序访问。
.paf
/.ppf
文件
注: 卷映射(将容器主机上的路径映射到容器中的路径)在扫描实例化期间用于此目的。
准备要扫描的应用程序
使用以下任一方法准备用于扫描的应用程序:
paf
/ppf
文件- 文件夹扫描
准备要使用
paf
/ppf
文件扫描的应用程序- 在安装了 AppScan® 源代码 的 Linux 系统上使用 HCL®AppScan® Source for Analysis 客户机生成
paf
/ppf
文件。确保
paf
和ppf
文件位于要扫描的应用程序的根目录。 - 确保可以从 GitLab CI/CD 运行程序访问应用程序文件和
paf
/ppf
文件。例如,如果应用程序可从 GitLab CI/CD 运行程序上的根路径
/usr/user1/SampleApp
访问,则paf
/ppf
文件位于/usr/user1/SampleApp/SampleApp.paf
和/usr/user1/SampleApp/SampleApp.ppf
。 - 确定容器所看到的卷的名称。例如,将主机上的
/usr/user1
映射到容器中的cvol
。注: 在容器中运行 CLI 时指定了卷映射。 - 创建 CLI 脚本。例如,
SampleApp.script
位于 /usr/user1/SampleApp
。在本示例中,脚本指示容器使用cvol
路径访问应用程序内容。列出的命令是与 AppScan® 源代码 CLI 结合使用的命令(在没有手动干预的情况下扫描)。login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
准备用于文件夹扫描的应用程序:
- 确保可以从 GitLab CI/CD 运行程序访问应用程序文件。
例如,应用程序可从 GitLab CI/CD 运行程序上的路径 /
usr/user1/SampleApp
访问。 - 确定容器所看到的卷的名称。例如,将主机上的
/usr/user1
映射到容器中的cvol
。注: 在容器中运行 CLI 时指定了卷映射。 - 创建 CLI 脚本。例如,
SampleApp.script
位于/usr/user1/SampleApp
。login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
在 GitLab CI/CD 运行程序上准备运行时环境
要在 GitLab CI/CD 运行程序上准备运行时环境:
- 从 HCL FNO 将 AppScan® 源代码 CLI 容器下载到 GitLab 主机,或者直接从 HCL Harbor 访问。
如果已从 HCL FNO 下载,使用
docker load
命令装入 CLI 容器映像。 - 创建
yaml
脚本文件,使用 AppScan® 源代码 CLI 容器从 HCL Harbor 运行静态分析扫描。例如:# This is a basic workflow to help you get started with GitLab CI/CD variables: GIT_STRATEGY: clone build-job: stage: build script: - echo "Hello, $GITLAB_USER_LOGIN!" - chmod -R 777 $CI_PROJECT_DIR - docker run --rm --env-file $CI_PROJECT_DIR/env.list -v $CI_PROJECT_DIR/:/wa hclcr.io/appscan/appscan-src-cli:10.3.0 script /wa/CLI_jspWIKI.script - echo "Success, Scan complete" - rm -vrf $CI_PROJECT_DIR - echo "Clean up done"
使用 GitLab CI/CD 运行程序启动静态分析扫描
要启动静态分析扫描:
- 确保 GitLab CI/CD 运行程序在线。在 GitLab 中,选择 以验证状态。
- 选择
.yaml
脚本启动静态分析扫描。
,以使用分支中存在的