第 2 章 在 web 控制台中设置 OpenShift Pipelines 以查看软件交换链安全元素
使用 Developer 或 Administrator 视角创建或修改管道,并查看项目中的软件交换链安全元素。
设置 OpenShift Pipelines 以查看:
- 项目漏洞 :可视化表示项目中的漏洞。
- Software Bill of Materials (SBOMs): 下载或查看 PipelineRun 组件的详细列表。
另外,满足 Tekton Chains 要求的 PipelineRuns 会在其名称旁边显示签名徽标。此徽标表示管道运行执行结果安全签名并存储,例如在 OCI 镜像中。
图 2.1. 签名的徽标

只有在您配置了 Tekton 链时,PipelineRun 才会在其名称旁边显示签名徽标。有关配置 Tekton 链的详情,请参考 为 OpenShift Pipelines 提供链安全使用 Tekton 链。
2.1. 设置 OpenShift Pipelines 以查看项目漏洞
PipelineRun 详情页面提供标识的漏洞的可视化表示,它们按严重性(critical、high、medium 和低)进行分类。这种简化的视图有助于优先考虑和修复工作。
图 2.2. 查看 PipelineRun
详情页中的漏洞

您还可以查看管道运行列表视图页面中的 Vulnerabilities 列中的漏洞。
图 2.3. 查看 PipelineRun
列表视图中的漏洞

从 OpenShift Container Platform 版本 4.15 开始,提供了识别的漏洞的可视化表示。
先决条件
- 已登陆到 web 控制台。
- 在项目中拥有适当的角色和权限, 可在 OpenShift Container Platform 中创建应用程序和其他工作负载。
- 您有一个现有的漏洞扫描任务。
流程
- 在 Developer 或 Administrator 视角中,切换到您希望漏洞视觉表示的相关项目。
更新您的现有漏洞扫描任务,以确保它将输出存储在 .json 文件中,然后以以下格式提取漏洞概述:
# The format to extract vulnerability summary (adjust the jq command for different JSON structures). jq -rce \ '{vulnerabilities:{ critical: (.result.summary.CRITICAL), high: (.result.summary.IMPORTANT), medium: (.result.summary.MODERATE), low: (.result.summary.LOW) }}' scan_output.json | tee $(results.SCAN_OUTPUT.path)
注意您可能需要为不同的 JSON 结构调整 jq 命令。
(可选)如果您没有漏洞扫描任务,以以下格式创建一个:
使用 Roxctl 的漏洞扫描任务示例
apiVersion: tekton.dev/v1 kind: Task metadata: name: vulnerability-scan 1 annotations: task.output.location: results 2 task.results.format: application/json task.results.key: SCAN_OUTPUT 3 spec: params: - description: Image to be scanned name: image type: string results: - description: CVE result format 4 name: SCAN_OUTPUT steps: - name: roxctl image: 'quay.io/lrangine/crda-maven:11.0' 5 env: - name: ROX_CENTRAL_ENDPOINT valueFrom: secretKeyRef: key: rox_central_endpoint 6 name: roxsecrets - name: ROX_API_TOKEN valueFrom: secretKeyRef: key: rox_api_token 7 name: roxsecrets name: roxctl-scan script: | 8 #!/bin/sh curl -k -L -H "Authorization: Bearer $ROX_API_TOKEN" https://$ROX_CENTRAL_ENDPOINT/api/cli/download/roxctl-linux --output ./roxctl chmod +x ./roxctl ./roxctl image scan --insecure-skip-tls-verify -e $ROX_CENTRAL_ENDPOINT --image $(params.image) --output json > roxctl_output.json jq -rce \ "{vulnerabilities:{ critical: (.result.summary.CRITICAL), high: (.result.summary.IMPORTANT), medium: (.result.summary.MODERATE), low: (.result.summary.LOW) }}" roxctl_output.json | tee $(results.SCAN_OUTPUT.path)
注意这是示例配置。根据您的特定扫描工具修改值,以预期格式设置结果。
更新适当的 Pipeline 以以下格式添加漏洞规格:
... spec: results: - description: The common vulnerabilities and exposures (CVE) result name: SCAN_OUTPUT value: $(tasks.vulnerability-scan.results.SCAN_OUTPUT)
验证
-
进入
PipelineRun
详情页面,查看 Vulnerabilities 行,以了解识别的漏洞的可视化表示。 -
另外,您可以进入到
PipelineRun
list view 页面,并查看 Vulnerabilities 列。