bootlin/sbom-cve-check

GitHub: bootlin/sbom-cve-check

轻量级 SBOM CVE 分析工具,支持快速解析 SPDX 格式的软件物料清单并生成漏洞报告。

Stars: 25 | Forks: 7

# sbom-cve-check `sbom-cve-check` 是一个轻量级、独立且易于使用的工具 它解析软件物料清单 (SBOM) 文件,并利用公开的 安全漏洞数据库 (CVE),提供一份报告 详细说明哪些软件组件受到已知 安全漏洞的影响。 该工具提供的主要功能: - 接受 SBOM 文件作为输入:目前支持 SPDXv2.2 和 SPDXv3。 - 支持多种漏洞信息来源:目前支持 [NVD](https://github.com/fkie-cad/nvd-json-data-feeds) 和 [CVE List]( https://github.com/CVEProject/cvelistV5)。 - 可以使用各种注解格式,例如 OpenVEX。 - 生成多种格式的导出文件,包括 SPDX v3.0。 - 支持插件以添加额外功能。 - 根据编译源过滤受影响的 CVE:如果受 CVE 影响的源文件 未被编译进去,则该 CVE 被视为不适用。这主要用于过滤 Linux 内核 CVE。 - 依赖项极少,非常轻量级,易于设置和使用。 - 完全开源,遵循 GPLv2 协议。 有关更多详细信息,请参阅 [sbom-cve-check 文档]( https://sbom-cve-check.readthedocs.io/en/latest/index.html)。 ## 动机 该工具的启动旨在替代 Yocto 中实现的 *cve-check* 逻辑 后者需要运行完整的构建才能执行 新的 CVE 分析。`sbom-cve-check` 则可以在 Yocto Project 生成的 SBOM 上运行,并可用于在不到一分钟的时间内定期运行 CVE 分析。 ## 快速入门 假设您正在使用 Yocto Project,只需 4 个简单步骤: 1. **安装** 该工具:
`pip install sbom-cve-check[extra]`
(您可能希望在 Python 虚拟环境中执行此操作)。 2. **生成** Yocto Project 的 SBOM:
自 Yocto ProjectWalnascar (5.2) 起,默认生成 SPDXv3.0。
在您的 `local.conf` 中添加 `INHERIT += "vex"`。 3. **获取** Yocto Project `deploy` 目录中的两个工件:
`${IMAGE_NAME}.rootfs.spdx.json`:SPDX v3.0 SBOM 文件。
`${IMAGE_NAME}.rootfs.json`:由 vex.bbclass 生成的文件。 4. **运行** CVE 分析:
sbom-cve-check \ --sbom-path ${IMAGE_NAME}.rootfs.spdx.json \ --yocto-vex-manifest ${IMAGE_NAME}.rootfs.json \ --export-type yocto-cve-check-manifest --export-path out.json ## 路线图 - 增加对 Ubuntu CVE 追踪器仓库的支持。 - 自动检测补丁是否已被反向移植。 - 增加更多导出格式,例如 OpenVEX。 - 增加对 CycloneDX (CDX) SBOM 作为输入的支持。 - 允许生成 SBOM(CDX 或 SPDX 3.0)作为输出,即使 作为输入指定的 SBOM 是另一种格式。 ## 与 Yocto Project 的兼容性 与 Yocto Project 生成的 SBOM 的兼容性在 [Yocto Project SBOM]( https://sbom-cve-check.readthedocs.io/en/latest/sbom.html#yocto-project-sbom) 章节中进行了描述。
标签:CVE分析, DevSecOps, GPT, Homebrew安装, Linux内核安全, NVD, OpenVEX, Python, SBOM, SPDX, Yocto Project, 上游代理, 云安全监控, 全栈开发, 嵌入式安全, 无后门, 漏洞管理, 硬件无关, 调试插件, 轻量级工具, 逆向工具, 静态分析