2.2. 设置 OpenShift Pipelines 以下载或查看 SBOM


PipelineRun 详情页面提供了一个下载或查看 Software Bill of Materials (SBOMs)的选项,增强了您的供应链中的透明度和控制。SBOMs 列出组件使用的所有软件库。这些库可以启用特定的功能或便于开发。

您可以使用 SBOM 更好地了解软件组成,识别漏洞,并评估可能出现的任何安全问题的潜在影响。

图 2.4. 下载或查看 SBOMs 的选项

sbom

先决条件

流程

  1. DeveloperAdministrator 视角中,切换到需要 SBOM 的可视化表示的相关项目。
  2. 使用以下格式添加任务来查看或下载 SBOM 信息:

    SBOM 任务示例

    apiVersion: tekton.dev/v1
    kind: Task
    metadata:
      name: sbom-task 1
      annotations:
        task.output.location: results  2
        task.results.format: application/text
        task.results.key: LINK_TO_SBOM  3
        task.results.type: external-link  4
    spec:
      results:
        - description: Contains the SBOM link  5
          name: LINK_TO_SBOM
      steps:
        - name: print-sbom-results
          image: quay.io/image  6
          script: | 7
            #!/bin/sh
            syft version
            syft quay.io/<username>/quarkus-demo:v2 --output cyclonedx-json=sbom-image.json
            echo 'BEGIN SBOM'
            cat sbom-image.json
            echo 'END SBOM'
            echo 'quay.io/user/workloads/<namespace>/node-express/node-express:build-8e536-1692702836' | tee $(results.LINK_TO_SBOM.path) 8

    1
    任务的名称。
    2
    存储任务输出的位置。
    3
    SBOM 任务结果名称。不要更改 SBOM 结果任务的名称。
    4
    (可选) 设置以在新标签页中打开 SBOM。
    5
    结果的描述。
    6
    生成 SBOM 的镜像。
    7
    生成 SBOM 镜像的脚本。
    8
    SBOM 镜像以及路径名称。
  3. 更新 Pipeline,以引用新创建的 SBOM 任务。

    ...
    spec:
      tasks:
        - name: sbom-task
          taskRef:
            name: sbom-task 1
      results:
        - name: IMAGE_URL  2
          description: url
          value: <oci_image_registry_url> 3
    1
    与在第 2 步中创建的名称相同。
    2
    结果的名称。
    3
    包含 .sbom 镜像的 OCI 镜像存储库 URL。
  4. 重新运行受影响的 OpenShift Pipeline。

2.2.1. 在 Web UI 中查看 SBOM

先决条件

  • 您已将 OpenShift Pipelines 设置为下载或查看 SBOMs。

流程

  1. 进入到 Activity PipelineRuns 选项卡。
  2. 对于您要查看的 SBOM 的项目,请选择其最新的管道运行。
  3. PipelineRun 详情页中,选择 View SBOM

    1. 您可以使用 Web 浏览器立即搜索 SBOM 以了解软件供应链中漏洞的术语。例如,尝试搜索 log4j
    2. 您可以选择 Download 下载 SBOM 或 Expand 来查看它全屏。

2.2.2. 在 CLI 中下载 SBOM

先决条件

  • 已安装 Cosign CLI 工具。
  • 您已将 OpenShift Pipelines 设置为下载或查看 SBOMs。

流程

  1. 打开终端,登录到 DeveloperAdministrator 视角,然后切换到相关项目。
  2. 在 OpenShift web 控制台中复制 download sbom 命令,并在终端中运行它。

    cosign 命令示例

    $ cosign download sbom quay.io/<workspace>/user-workload@sha256

    1. (可选)要以可搜索格式查看完整的 SBOM,请运行以下命令来重定向输出:

      cosign 命令示例

      $ cosign download sbom quay.io/<workspace>/user-workload@sha256 > sbom.txt

2.2.3. 阅读 SBOM

在 SBOM 中,如以下示例摘录所示,您可以看到项目使用的每个库的四个特征:

  • 其作者或发布者
  • 其名称
  • 其版本
  • 其许可证

这些信息可帮助您验证单个库是否安全源、更新并合规。

SBOM 示例

{
    "bomFormat": "CycloneDX",
    "specVersion": "1.4",
    "serialNumber": "urn:uuid:89146fc4-342f-496b-9cc9-07a6a1554220",
    "version": 1,
    "metadata": {
        ...
    },
    "components": [
        {
            "bom-ref": "pkg:pypi/flask@2.1.0?package-id=d6ad7ed5aac04a8",
            "type": "library",
            "author": "Armin Ronacher <armin.ronacher@active-4.com>",
            "name": "Flask",
            "version": "2.1.0",
            "licenses": [
                {
                    "license": {
                        "id": "BSD-3-Clause"
                    }
                }
            ],
            "cpe": "cpe:2.3:a:armin-ronacher:python-Flask:2.1.0:*:*:*:*:*:*:*",
            "purl": "pkg:pypi/Flask@2.1.0",
            "properties": [
                {
                    "name": "syft:package:foundBy",
                    "value": "python-package-cataloger"
                    ...

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.