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-task1 annotations: task.output.location: results2 task.results.format: application/text task.results.key: LINK_TO_SBOM3 task.results.type: external-link4 spec: results: - description: Contains the SBOM link5 name: LINK_TO_SBOM steps: - name: print-sbom-results image: quay.io/image6 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-task1 results: - name: IMAGE_URL2 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 툴을 설치했습니다. Cosign 툴 설치에 대한 자세한 내용은 Cosign의 Sigstore 설명서를 참조하십시오.
- 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"
...