簡體   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