ASoC 和 GitLab

将 AppScan on Cloud 与 GitLab 配合使用,针对每个合并请求上存储库中的文件运行静态分析安全测试 (SAST),从而防止漏洞到达主分支。结果存储在 AppScan on Cloud 中。

注册

如果您没有帐户,请在 HCL AppScan on Cloud (ASoC) 上注册,以生成 API 密钥和 API 密码。

设置

  1. 在 API 页面上生成 ASoC API 密钥和 API 密码。

    API 密钥和 API 密码映射到此操作的 ASOC_KEY 和 ASOC_SECRET 参数。记下密钥和密码。

  2. 在 ASoC 中创建应用程序。

    应用程序充当存储与同一项目相关的所有扫描的容器。

  3. 复制应用程序名称。

    ASoC 中的应用程序名称将映射到此集成的 APP_NAME。

  4. 在 GitLab 中创建变量。选择设置 > CI/CD > 变量,然后按以下方式设置变量:
    表 1. 所需输入(SAST 或 DAST
    变量 值
    APPSCAN_KEY API 页面中的 API 密钥。
    APPSCAN_SECRET API 页面中的 API 密码
    APP_NAME AppScan 中应用程序的名称。
    APPSCAN_ASSET AppScan 中资产组的标识。

  5. 将 .gitlab-ci.yaml 和 Dockerfile 复制到您的 GitLab 存储库根中。
  6. 设置 CI/CD 配置文件。选择设置 > CI/CD > 常规管道 > CI/CD配置文件。

  7. 构建您自己的运行程序。选择设置 > CI/CD > 运行程序,然后按照特定运行程序下的步骤执行操作。
  8. 在您正在设置 GitLab 运行程序的系统上,登录并克隆您的 GitLab 存储库(如果尚未存在)。确保该计算机上安装了 Docker 引擎。
  9. 从 Dockerfile 创建一个名为 saclient 的新 Docker 映像。将目录更改为存储库的根目录,然后运行以下命令,以构建 Docker 映像:
     docker build -t saclient . 
    重要:
    末尾的句点表示当前目录。
  10. 在 GitLab 中,要防止扫描失败时合并,在设置 > 合并请求 > 合并检查中启用管道必须成功。
  11. 在设置 > CI/CD > 管道中创建新的合并请求时,验证是否启动了新的扫描作业。

示例

扫描作业

扫描可供下载的工件

根据 maxIssuesAllowed,扫描作业已通过

其他信息

当前 yaml 脚本包含安全策略检查的样本,如果允许的安全性问题数量超过特定阈值,则扫描将失败。样本已将 maxIssuesAllowed 设置为 100。