CycloneDX/cyclonedx-buildroot

GitHub: CycloneDX/cyclonedx-buildroot

为 Buildroot 嵌入式项目生成符合 CycloneDX 标准的软件物料清单(SBOM)的 Python 命令行工具。

Stars: 17 | Forks: 7

# CycloneDX Buildroot [![shield_pypi-version]][link_pypi] [![shield_gh-workflow-test]][link_gh-workflow-test] [![shield_coverage]][link_codacy] [![shield_license]][license_file] [![shield_website]][link_website] [![shield_slack]][link_slack] [![shield_groups]][link_discussion] [![shield_twitter-follow]][link_twitter] 此 Python 应用程序用于生成 [CycloneDX][CDX_homepage] 软件物料清单 (SBOM),其中包含由 [Buildroot][Buildroot_homepage] 生成的项目的所有直接依赖项。 它也支持提供逗号分隔值 (.csv) 文件作为软件物料清单的项目。 因此,任何包含以下列信息的 CSV 文件的嵌入式项目或其他项目,都可以与本项目配合使用。 PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,DEPENDENCIES WITH LICENSES OWASP CycloneDX 是一个全栈物料清单 (BOM) 标准,可为降低网络风险提供高级供应链功能。 Buildroot 提供了一个名为 "legal-info" 的构建目标,它会生成一组包含 manifest.csv 的文件。该 legal-info 是 Buildroot 项目的一个通用 "make" 目标。此外,Buildroot 还可选择支持一个名为 "show-info" 的 "make" 目标,以针对您的构建生成 CPE 数据。 ## 环境要求 * `python >= 3.8` ## 安装说明 请使用您首选的 Python 包管理器,从 [Python Package Index (PyPI)][link_pypi] 安装此工具。 通过以下命令之一进行安装: ``` python -m pip install CycloneDX-Buildroot # install via pip pipx install CycloneDX-Buildroot # install via pipx poetry add CycloneDX-Buildroot # install via poetry uv tool install CycloneDX-Buildroot # install via uv # ... 慢慢就习惯了 ``` ## 使用说明 通过以下命令之一进行调用: ``` cyclonedx-buildroot # call script python -m cyclonedx_buildroot # call python module CLI ``` ### 帮助页面 ``` $ cyclonedx-buildroot --help usage: cyclonedx-buildroot [-h] [-i INPUT_FILE] [-o OUTPUT_FILE] [-n PRODUCT_NAME] [-v PRODUCT_VERSION] [-m MANUFACTURER_NAME] [-c CPE_INPUT_FILE] CycloneDX BOM Generator options: -h, --help show this help message and exit -i INPUT_FILE comma separated value (csv) file of buildroot manifest data -o OUTPUT_FILE SBOM output file name for json and xml -n PRODUCT_NAME name of the product -v PRODUCT_VERSION product version string -m MANUFACTURER_NAME name of product manufacturer -s SUPPLIER_NAME name of SBOM Supplier -a AUTHOR_NAME name of SBOM Author -c CPE_INPUT_FILE cpe file from make show-info ``` ### 示例 默认情况下,将从当前工作目录中读取 `manifest.csv`, 并且生成的 `bom.json` 也将创建在当前工作目录中。 可以按如下方式覆盖此行为: ``` cyclonedx-buildroot -i /manifest.csv -n "My Project" -v "1.2.3.4" -m "your manufacturing company name" -c cpe.json ``` ## 集成 下图描绘了本项目在安全开发活动 pipeline 中的位置。请注意,虽然该图描绘的是一个线性的活动序列, 但整个序列通常是循环的。SBOM 管理的最终状态会接收产品版本的 SBOM 文件,以便妥善管理随时间推移而产生的漏洞状态。 ![CycloneDX logo](https://github.com/CycloneDX/cyclonedx-buildroot/blob/main/build-Page-2.drawio.png) ## CycloneDX Schema 支持 下表提供了有关此模块的版本、受支持的 CycloneDX schema 版本以及输出格式选项的信息。 请在目标系统支持的 CycloneDX 版本兼容的前提下,使用本模块的最新版本。 | 版本 | Schema 版本 | 格式 | |---------|----------------|-----------| | 2.x | CycloneDX v1.6 | XML/JSON | | 1.x | CycloneDX v1.4 | XML/JSON | ## 内部实现 此工具利用 [CycloneDX Python 库][cyclonedx-library] 来生成实际的数据结构,并对其进行序列化和验证。 此工具**不会**暴露任何额外的_公共_ API 或符号——所有代码均被视为内部代码,可能会在版本升级时发生变更且不作另行通知。 不过,CLI 是稳定的——您可以像下面这样以编程方式调用它: ``` from sys import executable from subprocess import run run((executable, '-m', 'cyclonedx_buildroot', '--help')) ``` ## 版权与许可 CycloneDX Buildroot 的版权归 OWASP Foundation 所有。保留所有权利。 在 Apache 2.0 许可证的条款下,授予修改和重新分发的权限。有关完整的许可证内容,请参阅 [LICENSE 文件][license_file]。
标签:Buildroot, CycloneDX, Python, SBOM, WebSocket, 依赖分析, 无后门, 硬件无关, 逆向工具