4.4. 查看安全见解


当您更新代码并推送更改时,系统会自动触发 on-push 管道。默认情况下,RHTAP 使用标准构建管道快速、容器化部署,并通过满足 软件工件(SLSA)级别 3 规格来增强供应链安全性。

图 4.1. 成功管道运行

Pipeline 运行

此可视化表示概述了每个管道任务。绿色 状态表示成功完成,简化您的工作流,而无需进行大量配置。

初始构建管道任务包括:

  • init :初始化管道,配置重建标志和身份验证,并为 PipelineRun 生成镜像存储库 secret。
  • clone-repository: 将指定的存储库克隆到工作区,为使用 git-clone 任务操作做好准备。
  • build-container :此任务使用 Buildah 将源代码转换为容器镜像,然后推送到指定的 registry。此任务的主要操作和结果包括:

    • 容器镜像创建和部署: Buildah 将源代码编译到容器镜像中。成功创建后,镜像将推送到指定的镜像 registry。
    • 软件 Bill of Materials (SBOM) Generation: 作为确保透明度和合规性的一部分,生成了 SBOM,详细说明容器镜像中包含的组件、库和依赖项。然后,此 SBOM 被嵌入到最终的容器镜像中,以便轻松访问和验证。
    • SBOM Publishing : 除了将 SBOM 合并到容器镜像外,此任务使用 Cosign 将 SBOM 推送为独立镜像。这有助于通过安全性和合规团队更轻松地管理和验证 SBOM。
    • 工件创建: 任务生成关键的安全工件,包括镜像签名(.sig)和 attestation (.att)。这些工件对于验证容器镜像及其内容的完整性和真实性至关重要,为部署管道中的信任和安全验证提供可靠的机制。
  • update-deployment :使用新构建的镜像更新部署环境。在这个版本中,在 Overlay > Development 目录的 GitOps 存储库中执行。
  • ACS 任务:对代码和部署配置进行安全评估,确保遵守已建立的安全策略和最佳实践。
  • show-sbom :创建应用程序中使用的所有软件组件和库的完整列表,提高透明度和支持漏洞管理。
  • Summary :提供 PipelineRun 的摘要,包括 PipelineRun 信息,并删除 PipelineRun 使用的镜像存储库 secret。
注意

您可以点击管道运行中的任何任务来访问任务成功完成时生成的日志和其他详情,这通过 绿色 检查表示。

4.4.1. Red Hat Advanced Cluster Security 任务

RHTAP 在管道中利用 Red Hat Advanced Cluster Security (RHACS)及其安全检查。如果安装并配置 RHACS,管道会运行 RHACS 任务(例如 roxctl 镜像扫描),并在完成后显示绿色检查。但是,如果没有安装或升级 RHACS,管道会跳过 RHACS 任务。

注意

图 4.2. 管道运行中的 RHACS 任务

ACS 任务

管道使用 roxctl 包含三个 RHACS 任务来执行全面的安全检查:

  • roxctl image scan - 返回 JSON 格式镜像中发现的组件和漏洞。
  • roxctl image check - 检查镜像中安全策略的构建时违反情况。例如,'No log4j allowed' 或者没有 curl,wim 或生产镜像中的软件包管理器。
  • roxctl deployment check - 检查 YAML 部署文件中的安全策略的 build-time 和 deploy-time 违反情况。

这些任务可确保遵循开发阶段的安全策略和配置。

视觉化 RHACS 报告

在 Red Hat Developer Hub 中,在 CI 选项卡下,Pipeline Runs 部分提供了通过结构化的弹出窗口访问和解释详细任务报告的功能。弹出由以下部分组成:

  • Red Hat Advanced Cluster Security (在 RHACS 任务可用性上显示条件): 本节显示所有 RHACS 任务,如镜像扫描、镜像检查和部署检查,并提供安全问题的初始概述。
  • 其他: 本节显示 PipelineRun 的结果,如 IMAGE_URL 和 IMAGE_DIGEST。本节只有在弹出窗口中有多个部分(例如,企业合同或 {RHRHACSLongName})时才会显示。

查看 RHACS 报告:

  1. 选择 Catalog 并打开适当的组件,您要查看 RHACS 报告
  2. 选择 CI tab > Actions 列 > View output 图标,并查看软件组件中详细的 RHACS 报告。

    图 4.3. 详细的 RHACS 报告

    ACS 报告
注意

如果您有适当的权限,您可以通过导航到 RHACS 控制台来管理漏洞、策略和查看特定镜像的详细漏洞报告。如需更多信息,请参阅 查看仪表板

解释 RHACS 报告

Red Hat Advanced Cluster Security (RHACS)任务生成的详细报告有助于提供安全见解,对于维护可靠的安全状况至关重要。

以下是如何解释 roxctl 镜像扫描 (Image Scan)报告的示例。您可以应用类似的方法来解释 roxctl 镜像检查 (Image Check)和 roxctl 部署检查 (Deployment Check)的报告。

  • 漏洞明细: RHACS 按严重性对检测到的漏洞进行分类(Critical、重要、中等、低)、状态(可修复、不可修复),并提供扫描结果概述。此分类包括分析的漏洞和组件的总数,以及识别的特定常见漏洞和暴露(CVE)。
  • 提供的详情: 对于每个识别的漏洞,报告包括:

    • CVE ID : 漏洞的唯一标识符。
    • 严重性 : 漏洞构成的威胁级别。
    • 组件 : 受这个漏洞影响的软件组件。
    • 组件版本: 受影响组件的版本。
    • 补救 Suggestions: 建议解决此漏洞,包括修复漏洞的版本(如果适用)。

4.4.2. 了解 SBOM

show-sbom 任务通过列出组件使用的所有软件库,帮助识别漏洞和安全影响,从而为供应链透明性贡献。

图 4.4. 管道运行中的 show-sbom 任务

sbom
查看 SBOM

流程

  1. 选择 Catalog 并打开适当的组件,供您查看 SBOM。
  2. 选择 CI 选项卡,然后选择链接图标。系统显示 SBOM 任务日志,您可以使用 Web 浏览器立即搜索 SBOM 的术语,以指明软件供应链中的漏洞。例如,尝试搜索 log4j

    图 4.5. SBOM 详情

    show sbom
在 CLI 中下载 SBOM

先决条件

  • 已安装 Cosign CLI 工具。
  • build-containershow-sbom 任务成功运行。

流程

  1. 展开适当的成功管道运行,然后选择 show-summary 任务。
  2. 查找并复制 SBOM 镜像 URL,并在终端中运行以下命令:

    cosign 命令示例

    $ cosign download sbom <the-sbom-url-you-copied>

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

      cosign 命令示例

      $ cosign download sbom <the-sbom-url-you-copied> > sbom.txt

阅读 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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部