使用 Jenkins 和儲存器配置掃描自動化
可從 HCL Harbor 和 HCL® AppScan® Source (MHS) 取得的 My HCLSoftware 入口網站 指令行介面 (CLI) 儲存器,可在以 Jenkins 將靜態分析掃描自動化時使用,無須安裝完整的 AppScan® Source 實例。
必要條件
- Jenkins 環境,包括另一個已安裝 Podman 的 Linux 代理程式/主機。
這是要使用 CLI 儲存器執行靜態分析掃描的目標系統。
-
AppScan® Source for Automation 的有效授權和相關授權伺服器資訊。
-
AppScan® Source CLI 儲存器影像
從 HCL Harbor 或 AppScan® Source 下載 My HCLSoftware 入口網站 CLI 儲存器影像。擁有有效授權後,您的 HCL ID 可授予這些位置的存取權。
-
AppScan® Source CLI Script
使用 Jenkins 管道中的儲存器掃描需有 Script。
-
從儲存器存取 Jenkins 主機/代理程式上的內容:
要掃描的應用程式必須可從執行掃描的 Jenkins 主機存取。
註: 在掃描實例化過程中,系統會將磁區對映(將儲存器主機上的路徑對映到儲存器中的路徑)用於此目的。
準備要掃描的應用程式
paf/ppf檔案- 資料夾掃描
paf/ppf 檔案準備要掃描的應用程式- 在已安裝 HCL® AppScan® Source for Analysis 的 Linux 系統上,使用 AppScan® Source 用戶端產生
paf/ppf檔案。確保
paf和ppf檔案位於所要掃描之應用程式的根目錄下。 - 確保應用程式檔案和
paf/ppf檔案可從 Jenkins 主機/代理程式存取。例如,如果可在 Jenkins 主機/代理程式上的根路徑
/usr/user1/SampleApp存取應用程式,則paf/ppf檔案會位於/usr/user1/SampleApp/SampleApp.paf和/usr/user1/SampleApp/SampleApp.ppf。 - 確定儲存器所看到的磁區名稱。例如,將主機上的
/usr/user1對映至儲存器中的cvol。註: 磁區對映是在儲存器中執行 CLI 時所指定的。 - 建立 CLI Script。例如,/
usr/user1/SampleApp中的SampleApp.script。就此範例而言,Script 會告訴儲存器使用cvol路徑存取應用程式內容。所列出的指令是與 AppScan® Source CLI 一起使用的指令(不需手動介入的掃描)。login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
- 確保應用程式檔案可從 Jenkins 主機/代理程式存取。
例如,應用程式可從 Jenkins 主機/代理程式上的路徑 /
usr/user1/SampleApp存取。 - 確定儲存器所看到的磁區名稱。例如,將主機上的
/usr/user1對映至儲存器中的cvol。註: 磁區對映是在儲存器中執行 CLI 時所指定的。 - 建立 CLI Script。例如,
/usr/user1/SampleApp中的SampleApp.script。login … of /cvol/SampleApp/SampleAll scan … logout
在 Jenkins 主機/代理程式上準備執行時期環境
- 從 AppScan® Source 將 My HCLSoftware 入口網站 CLI 儲存器下載至 Jenkins 主機,或直接從 HCL Harbor 存取。
如果是從 MHS 下載,請使用
podman load指令載入 CLI 儲存器影像。 - 建立包含掃描期間必須提供給 CLI 儲存器之環境變數清單的檔案(例如
env.list)。一些必要資訊包括:
完整的參數清單可在此處找到。AS_INSTALL_MODE=standalone AS_LICENSE_URL=<license server url>
使用儲存器影像啟動靜態分析掃描
- 使用 HCL Harbor 的儲存器影像
- 使用 My HCLSoftware 入口網站 的儲存器影像
使用 HCL Harbor 的儲存器影像啟動掃描
- Linux將下列殼層指令整合至 Jenkins 管道中,以掃描 SampleApp。請注意,Jenkins 主機/代理程式上的
/usr/user1會對映至儲存器中的cvol。根據所需的 CLI 儲存器版本調整版本字串。sh "podman run --rm --volume /usr/user1:/cvol --env-file /cvol/SampleApp/ env.list hclcr.io/appscan/appscan-src-cli:10.10.0 script /cvol/SampleApp/SampleApp.script - Podman Jenkins 外掛程式將下列 Podman Jenkins 外掛程式 API 整合至 Jenkins 管道,以掃描 SampleApp。請注意,Jenkins 主機/代理程式上的
/usr/user1會對映至儲存器中的cvol。根據所需的 CLI 儲存器版本調整版本字串。podman.image('hclcr.io/appscan/appscan-src-cli:10.10.0').run('--name container-SampleApp --rm –-volume /usr/user1:/cvol --env-file /cvol/SampleApp/env.list script /cvol/SampleApp/SampleApp.script') sh "podman logs --follow container-SampleApp"
使用 My HCLSoftware 入口網站 的儲存器影像啟動掃描
tar.gz) 取得。用於掃描前必須先載入儲存器影像。- 下載儲存器影像至 Jenkins 主機/代理程式。例如
/appscansrc/appscan-src-cli-10.10.0.tar.gz。使用前必須先載入儲存器影像。
- 使用 Linux 殼層指令或 Podman Linux 外掛程式執行掃描:
- Linux將下列殼層指令整合至 Jenkins 管道中,以掃描 SampleApp。請注意,Jenkins 主機/代理程式上的
/usr/user1會對映至儲存器中的cvol。根據所需的 CLI 儲存器版本調整版本字串。podman load -i /appscansrc/appscan-src-cli-10.10.0.tar.gz sh "podman run --rm --env-file /cvol/SampleApp/env.list --volume /usr/user1:/cvol appscansrc/appscan-src-cli:10.10.0 script /cvol/SampleApp/cli.script" - Podman Jenkins 外掛程式將下列 Podman Jenkins 外掛程式 API 整合至 Jenkins 管道,以掃描 SampleApp。請注意,Jenkins 主機/代理程式上的
/usr/user1會對映至儲存器中的cvol。根據所需的 CLI 儲存器版本調整版本字串。podman.image(‘appscan-src-cli:10.10.0').run('--name container-SampleApp --rm –-volume /usr/user1:/cvol --env-file /cvol/SampleApp/env.list script /cvol/SampleApp/SampleApp.script') sh "podman logs --follow container-SampleApp"
- Linux