首页/安全/漏洞与攻击面速查/SBOM 生成与依赖清单管理
扫描与验证方法50 条

SBOM 生成与依赖清单管理

SBOM(软件物料清单)记录交付物中的组件与版本;用 syft 生成、grype 比对漏洞,可在新问题披露时快速定位『哪些系统受了影响』。

漏洞与攻击面速查安全更新于 2026-10-13

SBOM 解决什么问题

SBOM(软件物料清单)记录交付物里的组件与版本,回答「这个制品里究竟有什么」。用 syft 生成清单、用 grype 依据清单比对已知漏洞,可以在新问题披露时快速定位哪些系统受影响,而不必一台台去翻。它是供应链事件响应的基础数据,也让许可证盘点与依赖治理有据可依。

基本信息

常见工具syft 生成清单,grype 依据清单比对漏洞
标准格式SPDX 与 CycloneDX 较常用
覆盖对象源码目录、容器镜像、文件系统
主要用途成分透明、供应链事件响应、许可证盘点
更新节奏每次构建重新生成,与制品一起归档
关联环节CI 构建流水线与制品仓库

环节与做法

环节做法注意
生成syft 指向目录或镜像,输出标准格式源码与镜像成分不同,按需要分别生成
归档与构建产物一起存放记录构建号与生成时间
比对grype 依据清单扫描漏洞设定失败阈值,避免只产出不判断
追溯按组件名与版本反查受影响系统需与资产台账或构建记录关联
更新每次构建重新生成只在发布节点做一次会失真

生成与比对

生成与比对
# 从源码目录生成 SPDX 清单
syft packages dir:./app -o spdx-json > sbom.json
# 从容器镜像生成 CycloneDX 清单
syft image myapp:1.0 -o cyclonedx-json > sbom-image.json
# 依据清单做漏洞比对,命中高危时返回非零退出码
grype sbom:./sbom.json --fail-on high
# CI 中把清单与制品一起归档,便于事后追溯

典型使用场景

  • 供应链事件响应:某组件爆出问题时定位影响范围
  • 上线前的成分与开源许可证核查
  • 制品归档与留痕要求的落地
  • 第三方组件引入评审的输入材料
  • 定期盘点过时依赖与废弃库
  • 客户或监管要求提供成分清单时直接输出
突发组件级事件时,有完整 SBOM 的团队可以在数分钟内定位影响范围,没有的只能按周盘点。两者的差距主要体现在响应速度和结论可信度上。
SBOM 生成一次就封存等于没有:后续构建未同步更新时,事件来临拿到的清单与实际运行版本不一致,结论会误导决策。

易错点

  • SBOM 生成一次就封存:后续构建未同步更新,事件来时数据失真
  • 只对源码生成不对镜像生成,运行时实际成分与清单不一致
  • 清单不与资产台账或构建记录关联,查到组件却定位不到具体系统
  • 只做生成不做比对,清单静静躺在仓库里没人使用
  • 不设漏洞阈值与阻断策略,CI 里跑完也不影响交付

数据来源与参考

  • syft 项目文档(SBOM 生成)
  • grype 项目文档(SBOM 扫描)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌