用途
该技能面向安全工程师,用于使用 Syft(Anchore)生成软件物料清单(SBOM),以实现供应链可见性与合规。适用场景包括:被要求生成 SBOM、盘点依赖清单,或为供应链合规(EO 14028、SLSA 等)做准备。
主要能力
- 从文件系统目录生成 SBOM。
- 从容器镜像生成 SBOM。
- 支持多种输出格式:CycloneDX(cyclonedx-json)、SPDX(spdx-json)、表格(table)以及 Syft 原生 JSON(json)。
- 支持同时输出多个格式。
- 对 SBOM 进行分析并呈现汇总信息,包括包名、版本、类型、许可证、生态,以及按生态统计的包数量、许可证分布、未固定版本的包(供应链风险)。
- 建议将 SBOM 交由 Grype 进行漏洞扫描。
使用方式
前置条件:需先安装 Syft,安装命令为 curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin,并通过 syft version 验证。
操作步骤:
- 确定目标:目录或容器镜像。
- 生成 SBOM:
- 文件系统:
syft dir:<target-path> -o cyclonedx-json > sbom-cyclonedx.json - 容器镜像:
syft <image>:<tag> -o spdx-json > sbom-spdx.json - CycloneDX 格式:
-o cyclonedx-json - SPDX 格式:
-o spdx-json - 表格格式(人类可读):
-o table - 多格式输出:
-o cyclonedx-json=sbom.cdx.json -o spdx-json=sbom.spdx.json
- 文件系统:
- 分析 SBOM:以表格形式呈现汇总(列包括序号、包、版本、类型、许可证、生态)。
- 总结:提供按生态(npm、pip、go 等)统计的总包数、许可证分布、未固定版本的包(供应链风险),并建议将 SBOM 交由 Grype 进行漏洞扫描。
SBOM 格式对照
- cyclonedx-json:标准为 OWASP CycloneDX,工具兼容性最强、元数据丰富。
- spdx-json:标准为 Linux Foundation SPDX,适用于政府/监管合规。
- table:人类可读,适合快速审查。
- json:Syft 原生,适用于 Syft 特定工具链。
限制
资料中未提供关于该技能的具体限制、支持范围或性能约束等信息。