欢迎光临散文网 会员登陆 & 注册

使用 ESP-IDF-SBOM 生成软件物料清单

2023-11-13 15:32 作者:乐鑫信息科技  | 我要投稿

概述

“软件物料清单” (SBOM) 已经成为软件安全和软件供应链风险管理的关键组成部分。SBOM 是与应用程序相关的所有软件组件、依赖项和元数据的详尽清单。

乐鑫认为,SBOM 信息是确保联网设备安全性的关键。因此,我们现在提供了相关工具和解决方案,便于跟踪和分析这些信息。

在这篇博文中,我们将介绍乐鑫的 SBOM 生成和分析工具——ESP-IDF-SBOM

SBOM

美国国家电信和信息管理局 (NTIA) 的 SBOM FAQ 对 SBOM 的官方定义如下:

软件物料清单 (SBOM) 是一个完整的、正式结构化的组件、库和模块列表,这些组件、库和模块是构建(即编译和链接)给定软件以及它们之间的供应链关系所需的。这些组件可以是开源的或专有的,免费的或付费的,可以广泛使用或限制访问。

每个组件的关键数据字段包括:

  • 供应商名称

  • 组件名称

  • 组件版本

  • 其他唯一标识符

  • 依赖关系

  • SBOM 数据作者

  • 时间戳

SBOM 数据需要通过一致易懂的格式呈现,SPDX、CycloneDX 等都是数据表示的格式。

ESP-IDF wifi_provisioning 组件的简单概念化 SBOM 树如下:

SPDX

软件包数据交换 (SPDX) 是用于传递 SBOM 信息的开放标准,支持准确识别软件组件、明确映射组件关系,以及将安全和许可信息与每个组件关联起来。

下图概述了可在 SPDX 文档中找到的数据。

(图片来源 SPDX website)

ESP-IDF-SBOM

ESP-IDF-SBOM 是一个 SBOM 生成工具,为基于 ESP-IDF 的应用程序生成 SPDX 格式的 SBOM。该工具还可以对比美国国家漏洞数据库 (NVD),检查生成的 SBOM 中是否存在已知安全漏洞。

SBOM 生成器工作流程


工具工作流程大致如下:

  • 从依赖组件中收集 sbom.yml 文件(manifest 文件

  • 解析 ESP-IDF 构建系统生成的项目描述文件

  • 生成 SPDX 报告

  • 扫描生成的 SPDX 报告,检查是否存在已知安全漏洞,之后生成最终报告

入门指南

安装工具并查看帮助文档:

生成 SBOM 文件:

<project description file> 指位于项目 build 目录中由 ESP-IDF 构建系统默认创建的 project_description.json 文件路径。

检查 SBOM,排查安全漏洞:

SBOM 漏洞检查的相关说明如下:

  • 以上示例使用的是 ESP-IDF v5.2-dev 的 wifi_prov_mgr 应用程序

  • 在 check 命令中添加 --check-all-packages 选项,可以扫描未链接到最终可执行文件中的组件

  • 也可以为 ESP-IDF 引导加载程序生成 SBOM 报告,在项目的 build/bootloader 目录中能够找到引导加载程序的构建描述文件

  • 上述输出结果中标记了 RTOS、网络栈、TLS 栈等具有通用平台枚举项的关键组件

  • 该工具还提供了构建过程中其他组件和库的信息(上述输出结果中未显示)

报告格式

该工具支持生成 JSON、CSV 等多种格式的输出报告。获取更多信息,请查阅工具的帮助文档。

兼容性

SPDX 是 SBOM 的标准格式,并且兼容外部工具。esp-idf-sbom 生成的 SBOM 文件可以使用 cve-bin-tool 等工具扫描。如您已在系统中集成了外部工具并希望使用某些特定功能(例如,对比不同 CVE 数据库进行更全面的扫描),同样可以使用 esp-idf-sbom 生成的 SBOM 文件。

总结

SBOM 的主要优势总结如下:

  • 生成构建软件构件的组件清单

  • 列出软件许可、组件版本信息,协助进行版本更新

  • 协助执行安全漏洞分析

  • 成为许多安全相关认证的必要条件

ESP-IDF-SBOM 工具有助于为基于 ESP-IDF 的项目生成 SBOM,还可以进一步帮助建立项目的安全漏洞持续扫描流程。

乐鑫正在努力使 SBOM 覆盖更多的软件解决方案,我们期待收到 ESP-IDF-SBOM 工具的反馈。

欢迎尝试使用并分享您的体验!


相关资源

  • 软件供应链

    https://zh.wikipedia.org/zh-cn/%E8%BB%9F%E9%AB%94%E4%BE%9B%E6%87%89%E9%8F%88

  • ESP-IDF-SBOM

    https://github.com/espressif/esp-idf-sbom

  • 软件包数据交换

    https://spdx.github.io/spdx-spec/v2.3/

  • 美国国家漏洞数据库

    https://nvd.nist.gov/

  • manifest 文件

    https://github.com/espressif/esp-idf-sbom#manifest-file

  • 通用平台枚举项

    https://nvd.nist.gov/products/cpe/search

  • cve-bin-tool

    https://github.com/intel/cve-bin-tool

使用 ESP-IDF-SBOM 生成软件物料清单的评论 (共 条)

分享到微博请遵守国家法律