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. 複製應用程式名稱。

    ASoC 中的應用程式名稱對映至此整合的 APP_NAME。

  4. 在 GitLab 中建立變數。選取設定 > CI/CD > 變數,然後按照下列方式設定變數:
    表 1. 所需輸入(SAST 或 DAST
    變數 值
    APPSCAN_KEY API 頁面中的 API 金鑰
    APPSCAN_SECRET API 頁面中的 API 密碼
    APP_NAME AppScan 中的應用程式名稱。
    APPSCAN_ASSET AppScan 中的資產群組的 ID。

  5. 將 .gitlab-ci.yaml 和 Dockerfile 複製到 GitLab 儲存庫根目錄。
  6. 設定 CI/CD 配置檔。選擇設定 > CI/CD > 一般管道 > CI/CD 配置檔。

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

範例

掃描工作

掃描構件已準備就緒,可供下載

根據 maxIssuesAllowed 已通過的掃描工作

其他資訊

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