2.2. SBOM을 다운로드하거나 볼 수 있도록 OpenShift Pipelines 설정
PipelineRun
세부 정보 페이지에서는 SBOM(Software bill of materials)을 다운로드하거나 볼 수 있는 옵션을 제공하여 공급망 내 투명성과 제어를 강화할 수 있습니다. SBOM은 구성 요소에서 사용하는 모든 소프트웨어 라이브러리를 나열합니다. 이러한 라이브러리는 특정 기능을 활성화하거나 개발을 용이하게 할 수 있습니다.
SBOM을 사용하여 소프트웨어의 구성을 더 잘 이해하고 취약점을 식별하고 발생할 수 있는 보안 문제의 잠재적 영향을 평가할 수 있습니다.
그림 2.4. SBOM을 다운로드하거나 볼 수 있는 옵션
사전 요구 사항
- 웹 콘솔에 로그인했습니다.
- 프로젝트에 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성할 적절한 역할과 권한이 있습니다.
프로세스
- 개발자 또는 관리자 관점에서 SBOM의 시각적 표현이 필요한 관련 프로젝트로 전환합니다.
다음 형식으로 작업을 추가하여 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
새로 생성된 SBOM 작업을 참조하도록 Pipeline을 업데이트합니다.
... spec: tasks: - name: sbom-task taskRef: name: sbom-task 1 results: - name: IMAGE_URL 2 description: url value: <oci_image_registry_url> 3
- 영향을 받는 OpenShift 파이프라인을 다시 실행합니다.
2.2.1. 웹 UI에서 SBOM 보기
사전 요구 사항
- SBOM을 다운로드하거나 볼 수 있도록 OpenShift Pipelines를 설정해야 합니다.
프로세스
-
활동
PipelineRuns 탭으로 이동합니다. - 보려는 SBOM이 있는 프로젝트의 경우 최신 파이프라인 실행을 선택합니다.
PipelineRun
세부 정보 페이지에서 SBOM 보기를 선택합니다.-
웹 브라우저를 사용하여 SBOM에서 소프트웨어 공급망의 취약점을 나타내는 용어를 즉시 검색할 수 있습니다. 예를 들어
log4j
를 검색해 보십시오. - 다운로드를 선택하여 SBOM을 다운로드하거나 Expand 를 선택하여 전체 화면을 볼 수 있습니다.
-
웹 브라우저를 사용하여 SBOM에서 소프트웨어 공급망의 취약점을 나타내는 용어를 즉시 검색할 수 있습니다. 예를 들어
2.2.2. CLI에서 SBOM 다운로드
사전 요구 사항
- Cosign CLI 툴을 설치했습니다.
- SBOM을 다운로드하거나 볼 수 있도록 OpenShift Pipelines를 설정해야 합니다.
프로세스
- 터미널을 열고 개발자 또는 관리자 화면에 로그인한 다음 관련 프로젝트로 전환합니다.
OpenShift 웹 콘솔에서
다운로드 sbom
명령을 복사하여 터미널에서 실행합니다.cosign 명령 예
$ cosign download sbom quay.io/<workspace>/user-workload@sha256
(선택 사항) 검색 가능한 형식으로 전체 SBOM을 보려면 다음 명령을 실행하여 출력을 리디렉션합니다.
cosign 명령 예
$ cosign download sbom quay.io/<workspace>/user-workload@sha256 > sbom.txt
2.2.3. SBOM 읽기
SBOM에서 다음 샘플 발췌 내용에서 볼 수 있듯이 프로젝트에서 사용하는 각 라이브러리의 4가지 특성을 확인할 수 있습니다.
- 작성자 또는 게시자
- 이름
- 해당 버전
- 라이센스
이 정보는 개별 라이브러리가 안전하게 소싱, 업데이트 및 준수하는지 확인하는 데 도움이 됩니다.
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" ...