gitlab - 更改 Gitlab SAST json 报告名称
问题描述
问题
注意:我的 CI 包含一个可以忽略的代码复杂性检查器。这个问题主要集中在SAST上。
我最近为我的一个 Gitlab 项目设置了一个 SAST 管道。Gitlab-ce 和 Gitlab-runner 实例是自托管的。SAST 扫描完成后,下载的 artifacts/json 报告都包含相同的名称gl-sast-report.json
。在此示例中,工件 bandit-sast 和 semgrep-sastgl-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 结果
最终目标
- 如果可能,我如何更改 bandit-sast 和 semgrep-sast 的工件名称?
- 如果问题一个是可能的,这是否意味着我必须为各种项目手动指定每个分析器。目前,基于我
.gitlab-ci.yml
的 SAST 分析器是基于项目语言自动检测的。
解决方案
如果您使用的是预构建的 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 测试,而不使用提供的图像。您可以在此 Gitlab 存储库中查看所有可用的 SAST 分析器。
以License Finder分析器为例,Dockerfile说图像的入口点是run.sh
script。
您可以在run.sh 的第 20 行看到它将文件的名称设置为'gl-license-scanning-report.json'
,但是我们可以通过手动运行 docker 映像来更改名称,所以这并没有真正的帮助。但是,我们可以看到实际分析来自scan_project
您可以复制的函数。
因此,虽然可以在没有预先构建的映像的情况下手动运行这些分析器,但要让它们工作起来要困难得多。
推荐阅读
- azure - 在 API 版本 2018-01-01-Azure Powershell 的命名空间 Microsoft.storage 中找不到资源类型
- php - 如何使用 OTP(一次性密码)登录/注册 Opencart
- reactjs - 在 react CSR 页面上使用 react-helmet 生成 2 组元标记
- dart - 如何将列表转换为飞镖中的地图?
- c - 矩阵的 MPI 错误:分段错误
- python - scikit-learn 逻辑回归求解器中的 FutureWarning
- python - 如何通过 Python 在 XML 中插入父节点?
- makefile - 如何让 make 自动响应相同源数据的其他模板?
- java - 出现软键盘时使用 Recycler View 调整布局大小
- python-3.x - 如何从下面提到的 xml 文件中获取所需的值?