使用 GitHub Action 和儲存器配置掃描自動化
可從 HCL Harbor 和 HCL® AppScan® Source 取得的 My HCLSoftware 入口網站 指令行介面 (CLI) 儲存器,可在以 GitHub 將靜態分析掃描自動化時使用,無須安裝完整的 AppScan® Source 實例。
使用儲存器掃描的主要步驟如下:
- 準備應用程式。
- 使用來自 My HCLSoftware 入口網站 的儲存器影像準備 GitHub Action。
- 使用 GitHub Action 起始掃描。
必要條件
開始前,請確定您的環境符合以下要求:
- GitHub Action 環境:一或多個安裝了 Podman 的 Linux RHEL 7.9 版 GitHub Action 執行程式。
這是要使用 CLI 儲存器執行靜態分析掃描的目標系統。
-
AppScan® Source for Automation 的有效授權和相關授權伺服器資訊。
-
AppScan® Source CLI 儲存器影像
從 HCL Harbor 或 AppScan® Source 下載 My HCLSoftware 入口網站 CLI 儲存器影像。擁有有效授權後,您的 HCL ID 可授予這些位置的存取權。
-
AppScan® Source CLI Script
使用 GitHub Action 透過儲存器掃描需有 Script。
- AppScan® Source 專案 (.ppf) 和應用程式 (.paf) 檔案:使用 AppScan® Source for Analysis 產生配置檔(需要在可存取掃描目標的 Linux 系統上安裝 AppScan® Source)。
- 從儲存器存取 GitHub Action 上的內容:
- 要掃描的應用程式應存在於 GitHub 中,且能從執行掃描的 GitHub Action 存取。
.paf/.ppf檔案
註: 在掃描實例化過程中,系統會將磁區對映(將儲存器主機上的路徑對映到儲存器中的路徑)用於此目的。
準備要掃描的應用程式
使用以下任一項目準備要掃描的應用程式:
.paf/.ppf檔案- 資料夾掃描
使用
paf/ppf 檔案準備要掃描的應用程式- 在已安裝 HCL® AppScan® Source for Analysis 的 Linux 系統上,使用 AppScan® Source 用戶端產生
.paf/.ppf檔案。確保
.paf和.ppf檔案位於所要掃描之應用程式的根目錄下。 - 確保應用程式檔案和
paf/ppf檔案可從 GitHub 執行程式存取。例如,如果可在根路徑
/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
準備應用程式以進行資料夾掃描:
- 確保應用程式檔案可從 GitHub Action 執行程式存取。
例如,應用程式可從 GitHub Action 執行程式上的路徑 /
usr/user1/SampleApp存取。 - 確定儲存器所看到的磁區名稱。例如,將主機上的
/usr/user1對映至儲存器中的cvol。註: 磁區對映是在儲存器中執行 CLI 時所指定的。 - 建立 CLI Script。例如,
/usr/user1/SampleApp中的SampleApp.script。login … oa /cvol/SampleApp/SampleAll.ppf scan … logout
使用 CLI 儲存器影像準備 GitHub Action
準備 GitHub Action 上的執行時期環境:
- 從 AppScan® Source 將 My HCLSoftware 入口網站 CLI 儲存器下載至 GitHub 主機,或直接從 HCL Harbor 存取。
如果是從 My HCLSoftware 入口網站 下載,請使用
podman load指令載入 CLI 儲存器影像。 - 請建立
yamlScript 檔案,以使用 HCL Harbor 的 AppScan® Source CLI 儲存器執行靜態分析掃描,並將其放到適當的分支中。例如:# This is a basic workflow to help you get started with Actions name: CI # Controls when the workflow will run on: # Triggers the workflow on push or pull request events but only for the development branch push: <name of the branch used for running SAST scan> pull_request: <name of the branch used for running SAST scan> # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" SAST_SCAN: # The type of runner that the job will run on , here we used a self-hosted runner runs-on: [ self-hosted ] # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so our job can access it - uses: actions/checkout@v2 # Displays current working path - name: Display current workspace run: echo $GITHUB_WORKSPACE . - name: podman cleanup run : podman system prune -a -f - name: podman run run : podman run --rm --env-file $GITHUB_WORKSPACE/env.list -v $GITHUB_WORKSPACE/:/wa hclcr.io/appscan/appscan-src-cli:10.1.0 script /wa/CLI.script - name: podman cleanup run : podman system prune -a -f - name: Success run: echo Scan completed successfully.
使用 GitHub Action 執行程式起始靜態分析掃描
執行靜態分析掃描:
- 確保 GitHub Action 執行程式已上線。
如果執行程式為自我託管,請手動執行從 GitHub 下載的執行 Script。
- 在 GitHub 中,選取,以使用存在於分支中的
.yamlScript 啟動靜態分析掃描。
註: 從 10.3.0 版起,AppScan® Source 支援使用 Podman 進行儲存器化。由於 Red Hat Enterprise Linux 8 和 9 不支援 Docker,如果您的主機執行 RHEL 8 或 9,請使用 Podman。Podman 支援所有主要的 Docker 指令;在本主題的範例中以 Podman 取代 Docker,即可在 Podman 環境中建立儲存器並進行掃描。