繁体   English   中英

Gitlab CI/CD 中的秘密检测

[英]Secrets Detection in Gitlab CI/CD

我在理解如何在 Gitlab CI/CD 中激活秘密检测时遇到了一些麻烦。 我从模板创建了一个新的 NodeJS Express,然后我从Settings > CI/CD激活了 auto-devops,并选中了 Auto Devops 菜单下的Default to Auto Devops pipeline复选框。 之后,我在项目文件夹中打开了 app.js 文件并插入了一个看起来像键值的变量。 这是我插入该行的一段代码:

...
var app = express();

var key = "api-12321321321321321";

// view engine setup
app.set('views', path.join(__dirname, 'views'));
...

提交更改后,我预计管道会因为秘密泄露而失败。 这是一张显示秘密检测通过的图像。 在此处输入图像描述

谁能告诉我如何使管道报告错误?

GitLab 有一篇关于在管道中进行设置的完整帖子: https://docs.gitlab.com/ee/user/application_security/secret_detection/

编辑:

给定的说明有点不清楚:

您需要在配置的“根级别”添加include标签。

例子

stages:
    - build
    - test

image: node:latest

build:
    stage: build
    script:
        - echo "Building"
        - npm install typescript
        - yarn run build
test:
    stage: test
    script:
        - echo "Testing"

include:
    - template: Security/Secret-Detection.gitlab-ci.yml

秘密检测将在测试阶段运行: Pipeline

使用GitLab 13.12 (2021 年 5 月)应该会更容易:

秘密检测配置工具

跟随GitLab SAST 配置工具的脚步,我们将在安全配置页面上添加对秘密检测的支持。
我们相信安全是一个团队的努力,这种配置经验使非 CI 专家更容易开始使用GitLab 秘密检测

该工具可帮助用户创建合并请求以启用秘密检测扫描,同时利用最佳配置实践,例如使用 GitLab 管理SAST.gitlab-ci.yml模板
配置工具可以创建一个新.gitlab-ci.yml文件(如果不存在)或更新现有的简单 GitLab CI 文件,允许该工具用于已经具有 GitLab CI 设置的项目。

https://about.gitlab.com/images/13_12/secret_config_button_13_12.png -- 秘密检测配置工具

请参阅文档史诗

当我第一次尝试时,这种行为也让我感到困惑。

但是,GitLab 似乎是故意这样做的。 这是官方文档所说的:

gitlab 文档

因此,对于免费或高级帐户,您可以只使用此报告器,但您不会看到任何结果,除非您下载 JSON 报告。

此外,没有提到这项工作会失败。 这只是我们的期望。

换句话说,如果您使用的是免费/高级帐户,则此功能几乎没有用,因为没有人会 go 去工作并手动检查它。

唯一的解决方法是覆盖secret_detection作业,解析 gl-secret-detection-report.json,检查它是通过还是失败,然后决定通过或失败作业。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM