設定 Syft 和 Grype 的掃描

概觀

隨著 Code Risk Analyzer (CRA) 即將 停用,Syft 和 Grype 掃描工具可作為替代方案,提供 CRA 的大部分功能。

此掃描屬於 PR(應用程式預覽版)、CI 和 CC 管道中提供的合規性檢查階段的一部分。

Syft

Syft 是一款用於從容器映像檔和檔案系統生成 SBOM 的命令列工具。

軟體物料清單(SBOM)是構成軟體的所有函式庫與元件的詳細清單。

如欲進一步了解 SBOM,請參閱「軟體物料清單」。

Grype

Grype 是一款命令列介面 (CLI) 工具,用於掃描容器映像檔、檔案系統及軟體物料清單 (SBOM),以偵測已知漏洞。

漏洞掃描是指識別軟體套件及其依賴項中已知安全漏洞的過程。

啟用並設定 Syft 和 Grype 掃描

若要啟用 Syft SBOM 生成及 Grype SBOM 驗證功能,請將 opt-in-syft-grype 作為文字屬性新增至您的管線或觸發器屬性中,並將其值設定為非空字串( 0 除外)。

啟用此功能後,將執行由合規性檢查腳本觸發的 SyftGrype 腳本,詳見「Commons Scripts Library」文件。 如果系統中尚未安裝 Syft 和 Grype,這些腳本會自動進行安裝。

Syft 參數

下列表格中所列的管道環境屬性,用於自訂 Syft SBOM 的產生。

Syft 參數
參數名稱 說明
app-name Syft 正在分析的目標名稱。 此值將用作生成的 SBOM 中的來源名稱。
syft-exclude 需從 SBOM 生成中排除的路徑清單,以逗號分隔。 範例:node_modules,test,*.log
syft-print-summary-as-table 設定為任何非空字串,即可在日誌輸出中以表格形式列印 Syft 掃描摘要。
syft-<XXX> 任何以 syft- 為前綴的管道或觸發器文字屬性(上述保留屬性除外),都會被匯出為 Syft 配置環境變數 SYFT_XXX。 例如,syft-file-metadata-cataloger-enabled 會變成 SYFT_FILE_METADATA_CATALOGER_ENABLED。 請參閱 Syft 設定 以了解可用選項。

Syft 證據及附件

DevSecOps 流程會將證據上傳至儲存庫,並將該證據納入變更請求的證據摘要中。

Syft 證據欄位與值
欄位
tool type syft
evidence type com.ibm.code_bom_check
asset type repo
attachments syft_sbom.json ( CycloneDX JSON 格式)

Grype 參數

下列表格中所列的管道環境屬性,用於自訂 Grype 漏洞掃描。

Grype 參數
參數名稱 說明
grype-<XXX> 任何以 grype- 為前綴的管道或觸發器文字屬性(上述保留屬性除外),都會被匯出為 Grype 配置環境變數 GRYPE_XXX。 例如,grype-db-auto-update 會變成 GRYPE_DB_AUTO_UPDATE。 請參閱 Grype 設定 以了解可用選項。

Grype 證據及附件

DevSecOps 流程會將證據上傳至儲存庫,並將該證據納入變更請求的證據摘要中。 系統會針對掃描過程中發現的漏洞建立合規事件。

Grype 證據欄位與值
欄位
tool type grype
evidence type com.ibm.code_vulnerability_scan
asset type repo
attachments <repo-key>_grype_report_extended.json (附有 SBOM 依賴項的 Grype 漏洞報告)

查閱您的掃描結果

您可以透過以下方式查看您的掃描結果: