[英]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 设置的项目。
当我第一次尝试时,这种行为也让我感到困惑。
但是,GitLab 似乎是故意这样做的。 这是官方文档所说的:
因此,对于免费或高级帐户,您可以只使用此报告器,但您不会看到任何结果,除非您下载 JSON 报告。
此外,没有提到这项工作会失败。 这只是我们的期望。
换句话说,如果您使用的是免费/高级帐户,则此功能几乎没有用,因为没有人会 go 去工作并手动检查它。
唯一的解决方法是覆盖secret_detection
作业,解析 gl-secret-detection-report.json,检查它是通过还是失败,然后决定通过或失败作业。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.