SBOM生成之CycloneDX

SBOM是一份信息详尽、机器可读的形式化清单,其中囊括了软件所有组件的详尽信息及它们之间的层级关系。

  • 主流SBOM格式标准分别是SPDX、CycloneDX和SWID
  • CycloneDX格式:是一种轻量级的标准,专为应用安全和供应链组件分析而设计,专注于提供快速、可靠的软件组件信息,而不是提供信息详尽的元数据。这使得CycloneDX在处理大型、复杂的软件项目时具有较高的性能

安装CycloneDX

PHP项目

composer global require --dev cyclonedx/cyclonedx-php-composer

# 若报错In PluginManager.php line 752:                                          
#  cyclonedx/cyclonedx-php-composer (installed globally) contains a Composer p  
#  lugin which is blocked by your allow-plugins config. You may add it to the   
#  list if you consider it safe.
# 运行以下命令解决
# composer global config --no-plugins allow-plugins.cyclonedx/cyclonedx-php-composer true

# 获取帮助
composer CycloneDX:make-sbom --help

# 生成sbom文件
composer CycloneDX:make-sbom --output-file=/workspace/projectname/reports/sbom.xml -d /workspace/projectname/
# --output-file sbom文件生成地址
# -d 指定项目目录,也就是composer.json所在目录

Node项目

# 安装
# npm方式
npm install -g @cyclonedx/cdxgen

# 获取帮助
cdxgen --help

# 生成sbom
cdxgen -r -o /workspace/projectname/reports/sbom.json

go项目

# 安装
go install github.com/CycloneDX/cyclonedx-gomod/cmd/cyclonedx-gomod@latest
#将会在gopath/bin/ 目录下生成cyclonedx-gomod可执行文件
# 生成sbom
cyclonedx-gomod app --output ./xxx.xml

cyclonedx-gomod参数介绍
参数一
app生成仅包含目标应用实际依赖的 SBOM,特别适用于跟踪最终产品的具体组成
mod提供了一个全局视角,包括了所有包所需的模块,适合用于维护和监控整个模块的依赖情况。
bin支持从二进制文件反向生成 SBOM,对于验证已有二进制发布物的成分十分有用
参数二
-output将结果输出到文件,而不是打印到控制台,默认为xml格式,
可以使用参数-json=true来输出json格式的文件

其他语言

cyclonedx全部语言库https://github.com/orgs/CycloneDX/repositories?type=all

要在 Android 项目中生成 SBOM (Software Bill of Materials) XML,你可以使用一些工具和技术来实现。下面是一种常见的方法: 1. 使用构建工具:在 Android 项目中,你可以使用构建工具 Gradle 来生成 SBOM XML。Gradle 是 Android 开发中常用的构建工具,它支持插件和扩展来集成 SBOM 生成功能。 2. 集成依赖分析插件:为了生成 SBOM,你需要将一个依赖分析插件集成到你的 Gradle 配置中。一个常用的插件是 "dependency-check-gradle",它可以分析项目的依赖关系并生成相应的 SBOM。 在你的项目根目录下的 `build.gradle` 文件中,添加以下内容: ```groovy buildscript { repositories { mavenCentral() } dependencies { classpath 'org.owasp:dependency-check-gradle:6.1.6' } } apply plugin: 'org.owasp.dependencycheck' ``` 3. 配置插件和生成任务:在你的模块级 `build.gradle` 文件中,配置插件和生成任务。添加以下内容: ```groovy dependencyCheck { format = "XML" outputDirectory = file("$buildDir/reports/dependency-check") } tasks.named("check") { finalizedBy("dependencyCheckAnalyze") } ``` 4. 运行构建任务:在终端或命令行中,使用 Gradle 命令运行构建任务。执行以下命令: ``` ./gradlew clean check ``` 这将触发构建任务和 SBOM 生成任务。生成SBOM XML 文件将位于 `app/build/reports/dependency-check/dependency-check-report.xml`。 通过以上步骤,你就可以在 Android 项目中生成 SBOM XML 文件。这个文件将包含你的项目的依赖关系和相关信息,有助于跟踪和管理组件的安全性。请注意,具体的步骤可能因你的项目结构和配置而有所不同,可以根据需要进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值