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_KEY 和 ASOC_SECRET 參數。記下金鑰和密碼。

  2. 在 ASoC 中建立應用程式。

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

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

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

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

  5. 將 .gitlab-ci.yaml 和 Dockerfile 複製到 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。