
syft v1.52.0
用于从容器镜像和文件系统生成软件物料清单(SBOM)的 CLI 工具和库
Syft
一个用于从容器镜像和文件系统生成软件物料清单(SBOM)的 CLI 工具和 Go 库。与 Grype 等扫描器配合使用时,在漏洞检测方面表现卓越。

功能特性
- 为容器镜像、文件系统、归档文件生成 SBOM(完整支持的扫描目标列表请参阅文档中的支持的扫描目标)
- 支持数十种包生态系统(例如 Alpine (apk)、Debian (dpkg)、RPM、Go、Python、Java、JavaScript、Ruby、Rust、PHP、.NET 以及更多)
- 支持 OCI、Docker、Singularity 以及更多镜像格式
- 与 Grype 无缝协作进行漏洞扫描
- 多种输出格式(CycloneDX、SPDX、Syft JSON 以及更多),包括在 SBOM 格式之间进行转换的能力
- 使用 in-toto 规范创建已签名的 SBOM 证明
[!TIP] 初次使用 Syft?请查看入门指南获取完整演练!
安装
快速上手的最简单方式:
curl -sSfL https://get.anchore.io/syft | sudo sh -s -- -b /usr/local/bin
[!TIP] 更多获取 Syft 的方式请参阅安装文档,包括 Homebrew、Docker、Scoop、Chocolatey、Nix 等!
基础用法
查看容器镜像或目录中的软件包:
# container image
syft alpine:latest
# directory
syft ./my-project
要获取 SBOM,请指定一个或多个输出格式:
# SBOM to stdout
syft <image> -o cyclonedx-json
# Multiple SBOMs to files
syft <image> -o spdx-json=./spdx.json -o cyclonedx-json=./cdx.json
本地 containers-storage 镜像
在 Linux 上,syft 可以在明确要求时从本地 containers-storage 存储(例如使用 Buildah 或 Podman 构建的镜像)扫描镜像;普通的镜像引用永远不会在那里查找:
syft --from containers-storage localhost/myimage:latest
# rootless stores must be read from inside the builder's user namespace
podman unshare syft --from containers-storage localhost/myimage:latest
此功能已包含在 Linux 发行版二进制文件中。从源码构建时,请添加 -tags containers_image_openpgp,exclude_graphdriver_btrfs。
[!TIP] 查看入门指南 以探索所有能力和功能。
想了解 Syft 的所有细节? 请查看 CLI 文档、配置文档和 JSON schema。
贡献
我们鼓励用户通过提交 issue来帮助改进这些工具,无论是发现 bug 还是希望添加新功能。 如果您有兴趣提供代码贡献,请查看我们的贡献概述和开发者专属文档。
Syft 的开发由 Anchore 赞助,并在 Apache-2.0 许可证下发布。
Syft 标志由 Anchore 创作,采用 CC BY 4.0 许可协议。
如需 Syft 或 Grype 的商业支持选项,请联系 Anchore。
来和我们交流吧!
Syft 团队定期举行在线社区会议。欢迎所有人参加并带来讨论话题。