ASoC 以及 GitLab

.將 AppScan on Cloud 與 GitLab 搭配使用,在每個合併要求上,對儲存庫中的檔案執行靜態分析安全測試 (SAST),進而防止漏洞到達主要分支。結果會儲存在 AppScan on Cloud 中。

登錄

如果您沒有帳戶,請在 HCL AppScan on Cloud (ASoC) 上登錄,以產生 API 金鑰和 API 密碼。

設定

  1. API 頁面上產生 ASoC API 金鑰和 API 密碼。

    API 金鑰和 API 密碼會對映至此動作的 ASOC_KEYASOC_SECRET 參數。記下金鑰和密碼。

  2. ASoC建立應用程式

    應用程式可作為儲存器來儲存與相同專案相關的所有掃描。

  3. 複製應用程式 ID。選取應用程式 > <您的應用程式>,然後在應用程式詳細資料下的應用程式 ID 旁按一下複製

    ASoC 中的應用程式 ID 對映至此整合的 APP_ID

  4. 在 GitLab 中建立三個變數。選取設定 > CI/CD > 變數,然後按照下列方式設定變數:
    變數名稱 值(V)
    APP_ID 來自 ASoC 的應用程式 ID
    ASOC_KEY 來自 ASoC 的 API 金鑰
    ASOC_SECRET 來自 ASoC 的 API 密碼

  5. .gitlab-ci.yamlDockerfile 複製到 GitLab 儲存庫根目錄。
  6. 建置您自己的執行程式。選取設定 > CI/CD > 執行程式,然後遵循特定執行程式底下的步驟。
  7. 在您要設定 GitLab 執行程式的系統上,登入並複製 GitLab 儲存庫(若尚未存在)。確認該機器上已安裝 Docker 引擎。
  8. 從 Dockerfile 建置新的 Docker 映像檔,名稱為 saclient。將目錄變更為儲存庫的根目錄,然後執行下列指令來建置 Docker 映像檔:
     docker build -t saclient . 
    重要: 結尾的句點會指出現行目錄。
  9. 在 GitLab 中,若要防止掃描失敗時合併,請在設定 > 合併要求 > 合併檢查中啟用管線必須成功
  10. 設定 > CI/CD > 管線中建立新的合併要求時,確認已起始新的掃描工作。

例子

如果您要在 CentOS 上安裝 GitLab 執行程式,請按照下列說明建置執行程式:
  1. 下載系統的二進位檔:
    sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
  2. 設定執行權限:
    sudo chmod +x /usr/local/bin/gitlab-runner
  3. 建立 GitLab 執行程式使用者:
    sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
  4. 安裝並作為服務執行:
    sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner 
    sudo gitlab-runner start
  5. 登錄執行程式:
    sudo gitlab-runner register --url https://gitlab.com/ --registration-token $REGISTRATION_TOKEN

其他資訊

現行 yaml script 包含一個安全原則檢查範例,如果允許的安全問題數量超過特定臨界值,掃描就會失敗。該範例將 maxIssuesAllowed 設為 200