使用 Azure 和儲存器配置掃描自動化
可從 HCL Harbor 和 HCL Software License Management Portal 取得的 HCL® AppScan® Source 指令行介面 (CLI) 儲存器,可在以 Azure 將靜態分析掃描自動化時使用,無須安裝完整的 AppScan® Source 實例。
- 準備應用程式。
- 準備 Azure DevOps 管道環境。
- 從儲存器影像啟動掃描。
必要條件
- Azure 環境,包括另一個已安裝 Docker 的 Linux 代理程式/主機。
這是要使用 CLI 儲存器執行靜態分析掃描的目標系統。
-
AppScan® Source for Automation 的有效授權和相關授權伺服器資訊。
-
AppScan® Source CLI 儲存器影像
從 HCL Harbor 或 HCL 軟體授權管理入口網站 下載 AppScan® Source CLI 儲存器影像。擁有有效授權後,您的 HCL ID 可授予這些位置的存取權。
-
AppScan® Source CLI Script
使用 Jenkins 管道中的儲存器掃描需有 Script。
-
從儲存器存取 Azure 主機/代理程式上的內容:
要掃描的應用程式必須可從執行掃描的 Azure 主機存取。
註: 在掃描實例化過程中,系統會將磁區對映(將儲存器主機上的路徑對映到儲存器中的路徑)用於此目的。
準備要掃描的應用程式
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 … oa /cvol/SampleApp/SampleAll.ppf scan … logout
準備 Azure DevOps 管道環境
- 使用採用傳統編輯器之 HCL Software License Management Portal 的儲存器影像。
- 使用採用傳統編輯器之 HCL Harbor 的儲存器影像。
- 使用採用 YAML 配置檔之 HCL Harbor 的儲存器影像。
- 從 HCL 軟體授權管理入口網站 將 AppScan® Source CLI 儲存器下載至 Azure VM。
- 使用
docker load
指令載入 CLI 儲存器影像。 - 在 Azure DevOps 組織中,使用傳統編輯器建立新管道。按一下使用傳統編輯器。
- 選取儲存待掃描專案和 CLI Script 的儲存庫和分支,然後按一下繼續。
- 選取 Azure Repos Git 作為來源。
- 選取團隊專案。
- 選取儲存庫。
- 選取 Azure 代理程式儲存區,其中有以 AppScan® Source CLI 儲存器配置的 Azure VM。
- 新增新的 Docker 作業以載入影像。包括下列規格:
- 作業版本:0
- 顯示名稱:指定名稱或使用預設值。
- 儲存器登錄類型:指定登錄類型或使用預設值。
- Docker 登錄服務連線:指定連線或使用預設值。
- 動作:執行 Docker 指令
- 指令:load -i /usr/user1/appscan-src-cli-10.2.0.tar.gz
- 新增新的 Docker 作業以執行具有下列規格的影像:
- 作業版本:1
- 顯示名稱:指定名稱或使用預設值。
- 儲存器登錄類型:指定登錄類型或使用預設值。
- Docker 登錄服務連線:指定連線或使用預設值。
- 指令:run
- 引數:--rm
- 影像名稱:appscan/appscan-src-cli:10.2.0
- 磁區:/usr/user1:/wa
- 環境變數:
- AS_INSTALL_MODE=standalone
- AS_LICENSE_TYPE=CLS
- AS_LICENSE_SERVER_ID=<the license server ID>
- AS_LICENSE_SERVER=hclsoftware
- 儲存器指令:appscan/appscan-src-cli:10.2.0
- 新增新的 Docker 作業,以使用下列規格進行清理:
- 作業版本:0
- 顯示名稱:指定名稱或使用預設值。
- 儲存器登錄類型:指定登錄類型或使用預設值。
- Docker 登錄服務連線:指定連線或使用預設值。
- 動作:執行 Docker 指令
- 指令:rmi appscan/appscan-src-cli:10.2.0
- 建立包含掃描期間必須提供給 CLI 儲存器之環境變數的檔案(例如
env.list
)。包含下列必要資訊:-
AS_INSTALL_MODE=standalone
-
AS_LICENSE_TYPE=CLS
-
AS_LICENSE_SERVER_ID=<the license server ID>
完整的參數清單可在此處找到。
-
- 在 Azure DevOps 組織中,使用傳統編輯器建立新管道。按一下使用傳統編輯器。
- 選取儲存待掃描專案和 CLI Script 的儲存庫和分支,然後按一下繼續。
- 選取 Azure Repos Git 作為來源。
- 選取團隊專案。
- 選取儲存庫。
- 選取 Azure 代理程式儲存區,其中有以 AppScan® Source CLI 儲存器配置的 Azure VM。
- 新增新的 Docker 作業以執行具有下列規格的影像:
- 作業版本:2
- 顯示名稱:指定名稱或使用預設值。
- 儲存器登錄:指定登錄類型或使用預設值。
- 動作:執行 Docker 指令
- 指令:run
- 引數:--rm --env-file /usr/user1/env.list -v $(Agent.BuildDirectory)/s:/wa hclcr.io/appscan/appscan-src-cli:10.2.0 script /wa/cli.script
- 新增新的 Docker 作業,以使用下列規格進行清理:
- 作業版本:0
- 顯示名稱:指定名稱或使用預設值。
- 儲存器登錄類型:指定登錄類型或使用預設值。
- Docker 登錄服務連線:指定登錄類型或使用預設值。
- 動作:執行 Docker 指令
- 指令:rmi appscan/appscan-src-cli:10.2.0
若要使用採用 YAML 之 HCL Harbor 的儲存器影像來準備 Azure DevOps 管道
使用下列範例 Script 作為指南,以使用來自 HCL Harbor 的 AppScan Source CLI 儲存器執行靜態分析掃描。
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
- main
pool:
name: Ubuntu-VM-pool
#vmImage: ubuntu-latest
#steps:
#- script: echo Hello, world!
# displayName: 'Run a one-line script'
steps:
- task: CmdLine@2
inputs:
script: |
- task: Docker@1
displayName: 'Run an image'
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: 'MyConnection’
command: 'Run an image'
arguments: '--rm'
imageName: 'hclcr.io/appscan/appscan-src-cli:10.2.0 '
volumes: '$(Agent.WorkFolder)<path to downloaded source files>:/wa'
envVars: |
AS_INSTALL_MODE=standalone
AS_LICENSE_TYPE=CLS
AS_LICENSE_SERVER_ID=<specify the license server ID>
AS_LICENSE_SERVER=<specify the license server name>
containerCommand: 'script /wa/cli.script'
runInBackground: false
- task: Docker@0
displayName: Clean
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryConnection: 'MyConnection'
action: 'Run a Docker command'
customCommand: ' rmi hclcr.io/appscan/appscan-src-cli:10.2.0'
使用儲存器影像啟動靜態分析掃描
若要使用管道啟動掃描:
- 在 Azure 中,確認 Azure 代理程式儲存區中的 Azure VM 已上線。
- 從「管道」頁面,選取要執行的管道。
- 選取執行管道以開始靜態分析掃描。