使用 Travis CI 从您的仓库生成 SBOM

分享此
分享此

越来越多的软件对开发者施加了安全要求。由于软件是使用多个库或工具构建的,开发者在最终产品中引入了许多实际上无法完全控制的依赖项。确保产品安全意味着在软件开发和 CI/CD(持续集成和部署)级别维护高安全标准。随着 SBOM(软件物料清单)等软件包附带的工件出现,开发者可以全面了解软件版本中包含的依赖项和库。

通过在 CI/CD 流程中运行安全扫描并生成 SBOM,可以更轻松地发现产品发布之前是否存在具有漏洞的组件,或者仅通过查看 SBOM 来确定是否需要在发布后出现漏洞时生成安全补丁。

SBOM 是代码库中所有组件的列表。完整的 SBOM 应包括最终软件版本中组件的版本、来源和许可证名称。它还可以包括补丁状态以及有关组件的其他有价值信息。

美国总统乔·拜登于 2021 年 5 月发布了一项安全行政命令,概述了对参与美国政府业务的机构和供应商的建议。指南规定,公司/机构必须保护软件以应对供应链网络攻击。其中一项建议是强制执行 SBOM,以确保联邦政府使用的软件安全。

SBOM 的用例可能有所不同。SBOM 用户可以包括开发者、安全和合规团队、事件响应团队、采购、投资者等等。例如,软件工程师希望拥有最新的 SBOM,以了解哪些库与底层软件依赖项相关。SBOM 也是安全团队的理想工具,他们需要了解第三方软件风险,包括其版本、许可证影响以及可能增加安全债务的其他依赖项。SBOM 帮助事件响应团队确定漏洞可能存在的位置,并评估是否已利用漏洞以通知客户和软件供应商。

Travis CI 可以根据您的仓库和使用的编程语言生成 SBOM。CycloneDX 被选为扫描和生成 SBOM 的默认标准。CycloneDX 插件可以为 Travis CIe 支持的许多流行编程语言生成 SBOM。结果以 json 或 xml 格式生成。另一个优势是能够将 SBOM 生成 SPDX 文件。SPDX 是 SBOM 的另一种格式。有关更多信息,请参阅我们的 文档

开发者应注意,由于 Travis CI 的开放结构,可以使用任何扫描程序/SBOM 生成器。Travis CI 提供了一个开箱即用的基本选项,便于使用和构建配方标准化。

Travis CI 用户可以享受 SBOM 生成的优势,在他们的 CI/CD 自动化中使用集成的 SBOM 功能,如下面的示例所示

os: linux
dist: focal
language: python
addons:
  sbom:
    on:
      branch: master
      pr: true
      condition: $OS = linux 
    run_phase: before_script
    output_format: spdx-xml
  mariadb: '10.0'
script:
  - python hello.py
  - pip install -r requirements.txt 


<hello.py>
print("hello world")


<requirements.txt>
flask

最后,SBOM 生成是安全软件供应链中众多环节之一。请记住,自动化构建、测试和部署流程的 CI/CD 工具是攻击者广泛攻击的目标。其他领域可以帮助您保护软件测试和发布流程,这些领域在我们的 文档博客 中进行了描述。

主动日志扫描以检测和隐藏机密日志访问限制 相结合
使用 Travis 改进的 CI/CD 构建作业日志安全来签署您的软件
使用 Travis CI 时最佳实践摘要

© 版权所有 2024,保留所有权利
© 版权所有 2024,保留所有权利
© 版权所有 2024,保留所有权利