配置 Syft 和 Grype 扫描
概述
随着 Code Risk Analyzer(CRA)被 废弃,Syft 和 Grype 扫描作为替代方案,提供了 CRA 的大部分功能。
此扫描是 PR(应用预览版)、CI 和 CC 管道中“合规性检查”阶段的一部分。
Syft
Syft 是一款用于从容器镜像和文件系统生成 SBOM 的命令行工具。
软件物料清单(SBOM)是构成软件的所有库和组件的详细列表。
如需进一步了解 SBOM,请参阅“软件物料清单”。
Grype
Grype 是一款命令行工具,用于扫描容器镜像、文件系统和 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 命令行工具,根据阶段日志中显示的信息,从证据存储库下载您的扫描结果。 有关更多信息,请参阅以下资源: