設定 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 除外)。
啟用此功能後,將執行由合規性檢查腳本觸發的 Syft 和 Grype 腳本,詳見「Commons Scripts Library」文件。 如果系統中尚未安裝 Syft 和 Grype,這些腳本會自動進行安裝。
Syft 參數
下列表格中所列的管道環境屬性,用於自訂 Syft SBOM 的產生。
| 參數名稱 | 說明 |
|---|---|
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 流程會將證據上傳至儲存庫,並將該證據納入變更請求的證據摘要中。
| 欄位 | 值 |
|---|---|
tool type |
syft |
evidence type |
com.ibm.code_bom_check |
asset type |
repo |
attachments |
syft_sbom.json ( CycloneDX JSON 格式) |
Grype 參數
下列表格中所列的管道環境屬性,用於自訂 Grype 漏洞掃描。
| 參數名稱 | 說明 |
|---|---|
grype-<XXX> |
任何以 grype- 為前綴的管道或觸發器文字屬性(上述保留屬性除外),都會被匯出為 Grype 配置環境變數 GRYPE_XXX。 例如,grype-db-auto-update 會變成 GRYPE_DB_AUTO_UPDATE。 請參閱 Grype 設定 以了解可用選項。 |
Grype 證據及附件
DevSecOps 流程會將證據上傳至儲存庫,並將該證據納入變更請求的證據摘要中。 系統會針對掃描過程中發現的漏洞建立合規事件。
| 欄位 | 值 |
|---|---|
tool type |
grype |
evidence type |
com.ibm.code_vulnerability_scan |
asset type |
repo |
attachments |
<repo-key>_grype_report_extended.json (附有 SBOM 依賴項的 Grype 漏洞報告) |
查閱您的掃描結果
您可以透過以下方式查看您的掃描結果:
- 使用 DevSecOps/CoCoa CLI 命令列工具,依據階段日誌中顯示的資訊,從證據儲存庫下載您的掃描結果。 如需相關資訊,請參閱下列資源: