秘密检测管道故障-Gitlab



我正在尝试实现一个gitlab管道,用于在提交被推送之前检测提交的机密,并阻止提交生效。检测部分工作正常。然而,管道总是将工作标记为成功,即使我添加的假秘密被检测到,并让提交公开。

我已经尝试过扫描检测报告:如果它不是空的,就会显示一条警告用户的消息,并返回一个退出代码。但由于某些原因,上述退出代码被忽略。

这是我正在使用的yml配置:

include:
- template: Jobs/Secret-Detection.gitlab-ci.yml
secret_detection:
variables:
SECRET_DETECTION_HISTORIC_SCAN: "true" 
SECRET_DETECTION_IMAGE_SUFFIX: "-fips"

after_script:
- |
reportFile="gl-secret-detection-report.json"
$a: wc -l gl-secret-detection-report.json
$b: 0
if [ $a -gt $b ]; then
echo "VULN FOUND. SEE $reportFile FOR MORE DETAILS." && exit 1
fi

我在这里很不知所措,任何帮助都很感激。谢谢

只有当作业失败时,您才能在json报告中获得"成功"或"失败"的状态。作业不会失败,以防发现任何漏洞。

以下是gitlab文档中的信息:

如果作业能够完成扫描,则通过。通过的结果并不表明他们是否确定了调查结果。唯一的例外是覆盖模糊,如果它识别出结果,它就会失败

如果作业无法完成扫描,则会失败。您可以查看管道日志以获取更多信息。

默认情况下,允许所有作业失败。这意味着,如果它们失败了,就不会使管道失败。

如果您想防止漏洞被合并,您应该在合并请求中添加安全审批,以防止在未经您选择的特定人群批准的情况下合并未知、高度或关键的发现

我们不建议更改作业allow_failure设置,因为这会使整个管道失败。

最新更新