Repolode
anchore

anchore/syft

从容器镜像和文件系统生成软件物料清单(SBOM)的命令行工具与 Go 库。

Star
9,846
Fork
1,042
未关闭 Issue
698
最近提交
22小时前

这是什么?

Syft 可以检查容器镜像、目录和压缩包,列出其中包含的软件包,并将清单输出为 SBOM。支持的包管理生态较广,包括 Alpine apk、Debian dpkg、RPM,以及 Go、Python、Java、JavaScript、Ruby、Rust、PHP、.NET 等语言的依赖。

输出格式包括 CycloneDX、SPDX 和 Syft 自有的 JSON,不同 SBOM 格式之间还可以相互转换。它也支持按 in-toto 规范生成签名的 SBOM 证明(attestation)。与 Anchore 的漏洞扫描工具 Grype 配合使用时,可以基于生成的 SBOM 查找已知漏洞。

除命令行工具外,Syft 还提供 Go 库,便于其他工具内嵌 SBOM 生成能力。在 Linux 上,也可以在明确指定时读取本地 containers-storage 中的镜像。

核心功能

  • 01为容器镜像、文件系统和压缩包生成 SBOM
  • 02识别 apk、dpkg、RPM、Go、Python、Java 等多种生态的软件包
  • 03支持输出 CycloneDX、SPDX 和 Syft JSON 格式
  • 04支持在不同 SBOM 格式之间转换
  • 05可生成签名的 in-toto SBOM 证明
  • 06与 Grype 集成进行漏洞扫描

适用场景

  • 在发布容器镜像前生成其 SBOM
  • 梳理项目目录中所用的开源组件
  • 将 SBOM 交给 Grype 检查依赖中的已知漏洞
  • 通过 Go 库在自研工具中集成 SBOM 生成功能

快速上手

  1. 1

    运行 README 中的官方安装脚本

  2. 2

    扫描容器镜像中的软件包

    syft alpine:latest
  3. 3

    扫描本地目录

    syft ./my-project

使用前须知

  • 扫描本地 containers-storage 镜像功能仅适用于 Linux。
  • 漏洞检测需要配合 Grype 等单独的扫描工具。

标签

常见问题

syft 是什么?
从容器镜像和文件系统生成软件物料清单(SBOM)的命令行工具与 Go 库。 Syft 可以检查容器镜像、目录和压缩包,列出其中包含的软件包,并将清单输出为 SBOM。支持的包管理生态较广,包括 Alpine apk、Debian dpkg、RPM,以及 Go、Python、Java、JavaScript、Ruby、Rust、PHP、.NET 等语言的依赖。
syft 可以免费使用吗?用的什么许可证?
syft 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
syft 还在维护吗?
活跃维护中。syft 最近一次提交是在 2026年11月6日。
syft 适合用来做什么?
在发布容器镜像前生成其 SBOM 梳理项目目录中所用的开源组件 将 SBOM 交给 Grype 检查依赖中的已知漏洞 通过 Go 库在自研工具中集成 SBOM 生成功能
syft 怎么安装和运行?
运行 README 中的官方安装脚本 扫描容器镜像中的软件包: syft alpine:latest 扫描本地目录: syft ./my-project
在哪里获取 syft?
源代码和安装说明在 GitHub 上:https://github.com/anchore/syft

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目