使用 Red Hat Trusted Profile Analyzer 检查您的 SBOM
了解如何扫描 SBOM,以获取有关应用程序安全状态的可操作信息。
摘要
前言 复制链接链接已复制到粘贴板!
当 Red Hat Advanced Developer Suite - 软件供应链构建应用程序镜像时,它还提供软件材料清单(SBOM)。SBOM 列出镜像使用的所有软件库。您可以使用 SBOM 来识别安全漏洞。
但是,SBOM 很长,难以阅读。要将原始 SBOM 转换为可操作的信息,您可以使用 Trusted Profile Analyzer (TPA)。例如,TPA 可以识别镜像中是已知常见漏洞和漏洞(CVE)的目标的依赖关系。
第 1 章 下载、转换和分析您的 SBOM 复制链接链接已复制到粘贴板!
以下流程解释了如何使用 RHTPA 检查 SBOM。具体来说,它概述了如何下载 SBOM,将 SBOM 转换为兼容格式,并分析带有 RHTPA 的 SBOM。
因为 RHADS - SSC 1.7 在构建应用程序时使用任何受支持的 CI 供应商时,您不需要这个过程,因为 RHADS - SSC 1.7 会自动发布您的 SBOM 到 RHTPA。
如果您希望手动提取 SBOM 并保留本地副本,请按照以下步骤操作。
流程
在容器 registry 中,找到您要检查其 SBOM 的容器镜像的完整地址。该地址的格式是 registry/namespace/image:tag。例如: quay.io/app/app-image:ff59e21cc…
注意不要使用 SBOM 镜像的地址,该镜像以
.sbom结尾。将镜像的地址用于实际应用。在 CLI 中,使用
cosign来下载 SBOM。将输出重定向到稍后可以引用的文件。确保新文件名以.json结尾。cosign download sbom quay.io/redhat/rhtap-app:8d34c03188cf294a77339b2a733b1f6811263a369b309e6b170d9b489abc0334 > /tmp/sbom.json
cosign download sbom quay.io/redhat/rhtap-app:8d34c03188cf294a77339b2a733b1f6811263a369b309e6b170d9b489abc0334 > /tmp/sbom.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)您的 SBOM 最终会出现在 RHTPA UI 中,其名称列在此
.json文件中。默认情况下,Syft 根据 SBOM 的文件路径创建该名称。如果您希望您的 SBOM 出现在带有更有意义的名称的 RHTPA UI 中,您必须在您刚才下载的.json文件中手动更改它。具体来说,您必须替换.metadata.component对象中的名称。如果需要,您可以选择在此处添加version字段。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将 Bombastic API URL 存储为环境变量:
bombastic_api_url="https://$(oc -n rhtap-tpa get route --selector app.kubernetes.io/name=bombastic-api -o jsonpath='{.items[].spec.host}')"$ bombastic_api_url="https://$(oc -n rhtap-tpa get route --selector app.kubernetes.io/name=bombastic-api -o jsonpath='{.items[].spec.host}')"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在这个命令和下一个命令后,请务必输入安装 RHADS - SSC 的命名空间。
示例假设您使用了名为rhtap的命名空间。在 CLI 中,使用以下值创建新的
token_issuer_url环境变量:token_issuer_url=https://$(oc -n rhtap-keycloak get route --selector app=keycloak -o jsonpath='{.items[].spec.host}')/realms/chicken/protocol/openid-connect/token$ token_issuer_url=https://$(oc -n rhtap-keycloak get route --selector app=keycloak -o jsonpath='{.items[].spec.host}')/realms/chicken/protocol/openid-connect/tokenCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
TPA__OIDC__WALKER_CLIENT_SECRET环境变量,并提供您的 TPA OIDC Walker 客户端 secret 作为其值:TPA__OIDC__WALKER_CLIENT_SECRET=$(kubectl get -n rhtap secrets/rhtap-trustification-integration --template={{.data.oidc_client_secret}} | base64 -d)$ TPA__OIDC__WALKER_CLIENT_SECRET=$(kubectl get -n rhtap secrets/rhtap-trustification-integration --template={{.data.oidc_client_secret}} | base64 -d)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,以获取 BOMbastic API 的令牌。令牌允许您上传 SBOM。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 尝试上传 SBOM。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您收到错误消息
storage error: invalid storage content,请使用 Syft 将 SBOM 转换为更早的 CycloneDX 1.4。您可以忽略与不同 pURLs 合并软件包的警告;它们表示 Syft 可能会丢弃原始 SBOM 中的一些数据,但这些数据并不重要。syft convert /tmp/sbom.json -o cyclonedx-json@1.4=/tmp/sbom-1-4.json
$ syft convert /tmp/sbom.json -o cyclonedx-json@1.4=/tmp/sbom-1-4.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 然后尝试再次上传 SBOM:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 通过 OpenShift 控制台访问运行 RHADS - SSC 的集群。
-
在 rhtap 项目中,导航到 Networking > Routes。打开在
spog-ui服务所在的同一行中列出的 URL。 - 使用 Register 按钮创建新帐户并对 RHTPA 进行身份验证。
选择 SBOM (最新上传)并查看 insights RHTPA 根据 SBOM 提供的应用程序。
- 进入 Dependency Analytics Report 选项卡来查看漏洞和补救。
更新于 2025-09-07