如何使用微软的开源工具生成 SBOM

这篇具有很好参考价值的文章主要介绍了如何使用微软的开源工具生成 SBOM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何使用微软的开源工具生成 SBOM,前端,网页技术,microsoft,开源
SBOM (软件物料清单)通过列出您的代码所依赖的软件包和供应商来帮助您了解您的软件供应链。SBOM 正迅速获得发展势头,作为在现实世界供应链受到重大攻击后帮助提高安全性的一种方式。

SBOM 的主要支持者之一是微软,该公司早在 2021 年 10 月就发布了针对他们这一代的方法。今年早些时候,该公司开源了其用于在 Windows、macOS 和 Linux 上生成 SBOM 的工具。
在本文中,您将学习如何开始使用该项目来索引代码的依赖项。它生成与 SPDX 兼容的文档,列出项目中的文件、包和关系。SPDX(软件包数据交换)是 ISO 接受的 SBOM 标准,因此您可以将生成的报告直接传递到其他生态系统工具。

微软最初以 Salus 的名义宣布了该项目。由于它与起源于 Coinbase的现有Salus 代码安全项目相冲突,因此从该术语中退出。SBOM 生成器现在简称为.sbom-tool

入门

您可以从 Microsoft 的GitHub 存储库下载 SBOM 工具。发布页面上提供了预编译的二进制文件。为您的系统选择正确的下载,然后制作二进制可执行文件并将其移动到您路径中的某个位置。

以下是 Linux 的示例:

$ wget https://github.com/microsoft/sbom-tool/releases/download/v<VERSION>/sbom-tool-linux-x64
$ chmod +x sbom-tool-linux-x64
$ mv sbom-tool-linux-x64 /usr/local/bin/sbom-tool

您应该能够运行sbom-tool以在终端窗口中显示帮助信息:

$ sbom-tool
No action was specified

The Sbom tool generates a SBOM for any build artifact.

Usage - Microsoft.Sbom.Tool <action> -options

生成 SBOM

generate通过运行该工具的子命令可以创建新的 SBOM 。需要提供一些参数:

  • -b( BuildDropPath) – 将生成的 SPDX SBOM 清单保存到的文件夹。
  • -bc( BuildComponentPath) – 将被扫描以查找项目中的依赖项的文件夹。
  • -nsb( NamespaceUriBase) – 将用作 SBOM 清单的命名空间的基本路径。这应该是您的组织拥有的 URL,例如https://example.com/sbom.

SBOM Tool 还需要知道您的项目的名称和版本。它通常可以从存储库中已有的文件(例如package.json name和version字段)中推断出这一点,但在某些情况下,您可能需要手动提供信息或覆盖默认值。添加pn和pv标志来做到这一点:

  • -pn( PackageName) – 您的项目或包的名称。
  • -pv( PackageVersion) – 您正在扫描的项目版本。这应该与您的 SBOM 随附的发布版本相匹配,以便用户可以将依赖项列表与特定构建相关联。

这是为工作目录中的文件生成 SBOM 的示例。SBOM 将被放置到sbom-output子目录中。这需要在您运行该工具之前存在。

$ mkdir sbom-output
$ sbom-tool generate -b sbom-output -bc . -pn example -pv 1.0 -nsb https://example.com/sbom

扫描结果的概述将显示在您的终端中:

[INFO] Enumerated 3728 files and 607 directories in 00:00:00.5938034 

[INFO] |Component Detector Id         |Detection Time                |# Components Found            |# Explicitly Referenced                 | 
...
[INFO] |Npm                           |0.63 seconds                  |241                           |0                                       | 
...
[INFO] |Total                         |0.64 seconds                  |241                           |0                                       | 

[INFO] Detection time: 0.6374678 seconds.

这个项目使用 npm 来管理它的依赖。package.json该工具在工作目录的文件中检测到 241 个包。

SBOM Tool 目前支持 19 种不同的编程语言和包格式。该列表包括npm、NuGet、PyPi、Maven、Rust Crates 和 Ruby gem,以及 Docker 映像中存在的 Linux 包。还支持对远程 GitHub 存储库的引用。

SBOM 内容

生成的 SBOM 将写入_manifest/spdx_2.2/manifest.spdx.json您指定的构建输出目录中。SBOM 是一个相当冗长的 JSON 文件,旨在供其他软件使用。

{
  "files": [],
  "packages": [
    {
      "name": "color-convert",
      "SPDXID": "SPDXRef-Package-A72B0922E46D9828746F346D7FD11B7F81EDEB15B92BEEDAE087F5F7407FECDC",
      ...
    }

报告中有四种主要类型的信息:

  • 该files部分- 这列出了包含您在项目中编写的源代码的所有文件。SBOM 工具仅在扫描某些项目类型(例如 C# 解决方案)时才会填充此部分。
  • 该packages部分- 项目中存在的所有第三方依赖项的完整目录,其中包含对其源包管理器的引用、使用的版本以及适用的许可证类型。
  • 该relationships部分- 这详细说明了 SBOM 中列出的组件之间的所有关系。您将看到的最常见的关系是DEPENDS_ON,它将packages节中的一项声明为项目的依赖项之一。还存在几种其他类型的关系,例如CREATED_BY、DEPENDENCY_OF和PATCH_FOR。
  • 报告元数据详细信息– 、 、等字段name,documentNamespace并spdxVersion标识creationInfoSBOM、用于创建它的工具以及适用的SPDX 清单修订。

现在您已经有了一个 SBOM,您可以开始将它与其他工具一起使用来进行漏洞扫描和管理许可证合规性。您可以考虑将 SBOM 与您的软件版本一起分发,以便消费者能够检查每个新版本的内容。SBOM 最好作为构建管道的一部分生成,以便它们保持最新状态。
当出现重大的新供应链问题时,访问 SBOM 是非常宝贵的。例如,使用 SBOM 的组织可以更好地响应 Log4j。他们可以检查他们的报告以根据易受攻击的库快速找到项目,而不是手动审核包列表。

扫描 Docker 图像

作为报告生成的一部分,SBOM 工具能够扫描现有的 Docker 映像。要使用此功能,您需要添加-di标志并指定要扫描的图像标签或摘要。其余的论点保持不变。

$ sbom-tool generate -di ubuntu:latest -b sbom-output -bc . -pn demo -pv 1.0 -nsb https://demo.com/demo

将分析 Docker 映像以识别它包含的包。它们将与源文件夹中的依赖项一起添加到 SBOM 报告中。您可以在单个操作中扫描多个 Docker 映像,方法是用逗号分隔它们的标签或摘要哈希。

概括

SBOM Tool 是 Microsoft 开发的一个年轻的开源 SBOM 生成实用程序。它支持几种领先的包格式并产生与 SPDX 兼容的输出。这意味着您可以将生成的 SBOM 直接输入到 Grype 等其他工具中,以自动查找安全漏洞和过时的依赖项。

SBOM 是提高软件供应链意识和发现潜在问题的有效方法。制作和分发 SBOM 有助于用户了解他们的项目中默默包含的内容。SBOM 工具是使用单个命令生成行业标准报告的一种方法,可以更轻松地为每个版本提供 SBOM。文章来源地址https://www.toymoban.com/news/detail-781604.html

到了这里,关于如何使用微软的开源工具生成 SBOM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Midreal AI 互动小说文本生成工具游戏更新了网页版本,不需要在 Discord 里面使用了

    Midreal AI是一款革命性的AI小说生成工具,它不仅能够生成具有逻辑性和创造力的小说,还具备高度的互动能力。用户在使用过程中可以在关键节点选择剧情走向,甚至还能生成配图,使得整个创作过程更加丰富和个性化。Midreal AI的开发背后是MIT、NYU、剑桥、普林斯顿等顶尖大

    2024年04月16日
    浏览(91)
  • 微软最热门的10款前端开源项目!

    本文来盘点微软开源的十大前端项目,这些项目在 Github 上获得了超过 45 万 Star! Visual Studio Code 是一款由微软开发的开源的代码编辑器。它支持多种编程语言,如C、C++、C#、Python、JavaScript 和 TypeScript 等,并提供丰富的插件生态系统来扩展功能。VS Code具有丰富的编辑功能,包

    2024年02月08日
    浏览(31)
  • 如何使用内网穿透工具,将Tomcat网页发布到公共互联网上

    Tomcat作为一个轻量级的服务器,不仅名字很有趣(让人想起童年),也拥有强大功能,由于其可以实现JavaWeb程序的装载,就成为配置JSP和Java系统必备的环境软件,也是开发调试JSP程序的首选。Tomcat运行稳定且开源免费,加上apache和Sun的加持即免费和开源的特性,使其广泛应

    2024年02月06日
    浏览(43)
  • 如何使用Python自动化测试工具Selenium进行网页自动化?

    Selenium 是一个流行的Web自动化测试框架, 它支持多种编程语言和浏览器,并提供了丰富的API和工具来模拟用户在浏览器中的行为 。 Selenium可以通过代码驱动浏览器自动化测试流程,包括页面导航、元素查找、数据填充、点击操作等。 与PyAutoGUI和AutoIt相比, Selenium更适合于处

    2023年04月09日
    浏览(120)
  • CSS教程:如何在网页中设置字体为微软雅黑

    在网页设计和开发中,字体选择是非常重要的,因为它直接影响到网页的可读性和视觉效果。本教程将向您展示如何使用CSS在网页中将字体设置为微软雅黑。 引入字体文件: 首先,您需要在网页中引入微软雅黑字体文件。可以从您自己的服务器上托管字体文件,或者使用来

    2024年02月04日
    浏览(70)
  • 微软开源AI修图工具让老照片重现生机

    GitHub - microsoft/Bringing-Old-Photos-Back-to-Life: Bringing Old Photo Back to Life (CVPR 2020 oral) 支持划痕修复,以及模型训练。 Project Page | Paper (CVPR version) | Paper (Journal version) | Pretrained Model | Colab Demo | Replicate Demo Docker Image 🔥 Bringing Old Photos Back to Life, CVPR2020 (Oral) Old Photo Restoration via Deep Laten

    2024年02月05日
    浏览(38)
  • 使用AI工具如何生成文字图片?其实可以这样生成

    在最近几年,自媒体的风头逐渐兴起,许多人都会选择当一个自媒体博主来当作自己的副业。当我们在进行内容创作的时候,难免会遇到一些需要给文章进行配图的情况,但有时我们会对图片的内容完全没有头绪,其实我们可以使用AI工具来帮助我们生成配图,那你知道如何

    2024年02月13日
    浏览(46)
  • 微软官方发布的C#开源、免费、实用的Windows工具箱

    今天分享一款由微软官方发布的C#开源、免费、实用的Windows工具箱(帮助用户调整和简化Windows系统的体验,从而提高工作效率):Microsoft PowerToys。 Microsoft PowerToys 是使用 C++ 和 C# 编程语言开发的。它利用了 Windows 操作系统的底层功能和 API,以及 Microsoft 开发的一些开源库和

    2024年02月04日
    浏览(79)
  • 离线环境下安装微软Visual Studio 2022 生成工具

    最近,在学习cython的时候,需要安装windows下的C/C++编译、链接工具。开始觉得传统的msvc太大了,想要尝试Mingw,但是都是编译错误。无奈之下,还是要安装msvc。 微软提供了Visual Studio 2022 Build Tools ,其可以独立于vs2022安装,总算是可以减少点体积。 注意:MSbuild和msvc的关系,

    2024年02月16日
    浏览(45)
  • 如何在嘉立创EDA客户端中离线使用立创平台的开源项目(将网页版项目本地化)

    创建项目时会生成一个空原理图,可以删掉 导入原理图同理 ————end————

    2024年02月12日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包