Microsoft SBOM工具参数详解与使用指南
什么是SBOM工具
SBOM(Software Bill of Materials)工具是由微软开发的一款开源软件,用于生成和管理软件物料清单。它能够自动扫描构建产物和组件,生成符合标准的SBOM文档,帮助开发者和企业更好地管理软件供应链安全。
工具核心功能
SBOM工具提供四大核心功能模块:
- 生成(Generate) - 为构建产物创建SBOM文档
- 验证(Validate) - 验证SBOM文档与构建产物的一致性
- 编辑(Redact) - 对SBOM文档进行脱敏处理
- 版本查询(Version) - 查看工具版本信息
参数详解
全局参数
所有命令都支持的通用参数:
-h/-?
:显示帮助信息-V
:设置日志详细级别(Verbose/Debug/Information/Warning/Error/Fatal)-P
:设置并行线程数-t
:指定详细遥测数据输出文件
生成命令(Generate)
生成SBOM文档的核心参数:
dotnet run -p src/Microsoft.Sbom.Tool generate -- -b <构建产物路径> -bc <组件路径>
关键参数说明:
-
输入路径参数
-b/--BuildDropPath
:构建产物根目录(必填)-bc/--BuildComponentPath
:组件源代码路径-bl/--BuildListFile
:指定包含文件列表的文本文件
-
输出控制参数
-m/--ManifestDirPath
:指定SBOM输出目录(默认在构建目录下创建_manifest文件夹)-D/--DeleteManifestDirIfPresent
:强制删除已有清单目录
-
包信息参数
-pn/--PackageName
:包名称(建议显式指定)-pv/--PackageVersion
:包版本-ps/--PackageSupplier
:包供应商信息
-
高级功能参数
-di/--DockerImagesToScan
:扫描指定Docker镜像-li/--FetchLicenseInformation
:从ClearlyDefined获取许可证信息-pm/--EnablePackageMetadataParsing
:从包元数据解析许可证信息-F/--FollowSymlinks
:是否跟踪符号链接(默认true)
验证命令(Validate)
验证SBOM文档与构建产物一致性的参数:
dotnet run -p src/Microsoft.Sbom.Tool validate -- -b <构建产物路径> -m <SBOM目录>
关键参数说明:
-
基本验证参数
-b/--BuildDropPath
:构建产物路径(必填)-m/--ManifestDirPath
:SBOM目录路径
-
验证模式参数
-s/--ValidateSignature
:验证清单签名-im/--IgnoreMissing
:忽略清单中存在但磁盘上缺失的文件-n/--FailIfNoPackages
:无包时验证失败
-
路径过滤参数
-r/--RootPathFilter
:指定根路径过滤器
编辑命令(Redact)
对SBOM文档进行脱敏处理的参数:
dotnet run -p src/Microsoft.Sbom.Tool redact -- -sp <SBOM文件路径> -o <输出目录>
关键参数说明:
-sp/--SbomPath
:单个SBOM文件路径-sd/--SbomDir
:包含多个SBOM的目录-o/--OutputPath
:输出目录
配置文件使用
SBOM工具支持通过JSON配置文件传递参数,特别适合在CI/CD流水线中使用。配置文件支持环境变量扩展。
示例配置文件:
{
"PackageSupplier": "Contoso",
"PackageName": "MyApplication",
"PackageVersion": "2.1.0",
"BuildDropPath": "$(BUILD_OUTPUT_DIR)",
"BuildComponentPath": "$(SOURCE_CODE_DIR)",
"FetchLicenseInformation": true
}
使用配置文件运行:
dotnet run -p src/Microsoft.Sbom.Tool generate -- -Co config.json
最佳实践建议
-
必填参数:生成SBOM时至少应指定
BuildDropPath
、PackageName
和PackageVersion
-
版本控制:建议将SBOM生成纳入构建流程,每次构建都生成对应的SBOM
-
安全考虑:
- 生产环境建议启用签名验证(
-s
) - 敏感环境可使用Redact命令对SBOM脱敏
- 生产环境建议启用签名验证(
-
性能优化:
- 大型项目可适当增加并行度(
-P
) - 频繁构建可考虑缓存组件扫描结果
- 大型项目可适当增加并行度(
-
许可证管理:
- 启用
-li
参数自动获取许可证信息 - 设置合理的
-lto
超时时间(默认30秒)
- 启用
通过合理配置SBOM工具,开发团队可以轻松实现软件供应链的透明化管理,满足日益严格的软件安全合规要求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考