【问题标题】:Changing Gitlab SAST json report names更改 Gitlab SAST json 报告名称
【发布时间】:2021-11-07 13:44:27
【问题描述】:

问题

注意:我的 CI 包含一个可以忽略的代码复杂性检查器。本题主要关注SAST。

我最近为我的一个 Gitlab 项目设置了一个 SAST 管道。 Gitlab-ce 和 Gitlab-runner 实例是自托管的。当 SAST 扫描完成时,下载的 artifacts/json 报告都包含相同的名称 gl-sast-report.json。在此示例中,工件 bandit-sast 和 semgrep-sast 均在下载时生成 gl-sast-report.json

SAST 配置

stages:
- CodeScan
- CodeComplexity

sast:
  stage: CodeScan
  tags:
    - sast

code_quality:
  stage: CodeComplexity
  artifacts:
    paths: [gl-code-quality-report.json]
  services:
  tags:
    - cq-sans-dind

include:
- template: Security/SAST.gitlab-ci.yml
- template: Code-Quality.gitlab-ci.yml

完成的 SAST 结果


最终目标

  1. 如果可能,我如何更改 bandit-sast 和 semgrep-sast 的工件名称?
  2. 如果问题一是可能的,这是否意味着我必须为各种项目手动指定每个分析器。目前,根据我的.gitlab-ci.yml,SAST 分析器会根据项目语言自动检测。

【问题讨论】:

    标签: gitlab gitlab-ci gitlab-ci-runner gitlab-ce


    【解决方案1】:

    如果您使用的是预构建的 SAST 映像,则这是不可能的,即使您像这样手动运行 docker 命令:

    docker run --volume "$PWD":/code --env=LM_REPORT_VERSION="2.1" --env=CI_PROJECT_DIR=/code registry.gitlab.com/gitlab-org/security-products/analyzers/license-finder:latest
    

    使用这些 SAST(和 DAST)图像时,报告文件将始终具有文档中的名称,但是如果您像上面一样手动运行 docker 命令,您可以在文件作为工件上传之前重命名文件,但它仍将具有相同的 json 结构/内容。

    Run License Scanning Analyzer:
      stage: sast
      script:
        - docker run --volume "$PWD":/code --env=LM_REPORT_VERSION="2.1" --env=CI_PROJECT_DIR=/code registry.gitlab.com/gitlab-org/security-products/analyzers/license-finder:latest
        - mv gl-license-scanning-report.json license-scanning-report.json
      artifacts:
        reports:
          license_scanning: license-scanning-report.json
    

    更改 json 结构/内容的唯一方法是手动实施 SAST 测试,而不使用提供的图像。您可以在this Gitlab repo 中查看所有可用的 SAST 分析器。

    License Finder 分析器为例,Dockerfile 表示图像的入口点是run.sh script

    您可以在line 20 of run.sh 上看到它将文件的名称设置为'gl-license-scanning-report.json',但我们可以通过手动运行 docker 映像来更改名称,所以这并没有真正的帮助。但是,我们可以看到实际分析来自scan_project 函数,您可以复制该函数。

    因此,虽然可以在没有预构建图像的情况下手动运行这些分析器,但要让它们工作起来会困难得多。

    【讨论】:

    • 嗨,亚当,感谢您的详细回复!这让我对这些预先构建的图像如何工作有了很多了解。感谢您的努力。
    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多