검색

2장. 소프트웨어 공급망 보안 요소를 보려면 웹 콘솔에서 OpenShift Pipelines 설정

download PDF

개발자 또는 관리자 화면을 사용하여 파이프라인을 생성하거나 수정하고 프로젝트 내의 주요 소프트웨어 공급망 보안 요소를 확인합니다.

다음을 볼 OpenShift Pipelines를 설정합니다.

  • 프로젝트 취약점: 프로젝트 내에서 확인된 취약점을 보여줍니다.
  • Software bill of materials (SBOMs): PipelineRun 구성 요소의 자세한 목록을 다운로드하거나 봅니다.

또한 Tekton Chains 요구 사항을 충족하는 PipelineRuns는 이름 옆에 서명된 배지가 표시됩니다. 이 배지는 파이프라인 실행 실행 결과가 암호화 방식으로 서명되어 OCI 이미지와 같이 안전하게 저장됨을 나타냅니다.

그림 2.1. 서명된 배지

badge

PipelineRun은 Tekton Chain을 구성한 경우에만 해당 이름 옆에 서명된 배지를 표시합니다. Tekton 체인 구성에 대한 자세한 내용은 OpenShift Pipelines 공급망 보안에 Tekton 체인 사용을 참조하십시오.

2.1. 프로젝트 취약점을 보기 위해 OpenShift Pipelines 설정

PipelineRun 세부 정보 페이지에는 심각도(심각, 높음, 중간 및 낮음)로 분류된 확인된 취약점이 시각적으로 표시됩니다. 이렇게 간소화된 뷰를 통해 우선 순위 지정 및 수정 작업을 쉽게 수행할 수 있습니다.

그림 2.2. PipelineRun 세부 정보 페이지의 취약점 보기

취약점 세부 정보

파이프라인 실행 목록 보기 페이지의 취약점 열에서 취약점 을 검토할 수도 있습니다.

그림 2.3. PipelineRun 목록 보기의 취약점 보기

취약점 목록
참고

확인된 취약점의 시각적 표현은 OpenShift Container Platform 버전 4.15 릴리스에서 사용할 수 있습니다.

사전 요구 사항

프로시저

  1. 개발자 또는 관리자 관점에서 취약점을 시각적으로 표시하려는 관련 프로젝트로 전환합니다.
  2. 기존 취약점 검사 작업을 업데이트하여 출력을 .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 명령을 조정해야 할 수도 있습니다.

    1. (선택 사항) 취약점 검사 작업이 없는 경우 다음 형식으로 생성합니다.

      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:
        results:
          - description: CVE result format  4
            name: SCAN_OUTPUT
        steps:
          - name: roxctl  5
            image: quay.io/roxctl-tool-image  6
            env:
              - name: ENV_VAR_NAME_1  7
                valueFrom:
                  secretKeyRef:
                    key: secret_key_1
                    name: secret_name_1
            env:
              - name: ENV_VAR_NAME_2
                valueFrom:
                  secretKeyRef:
                    key: secret_key_2
                    name: secret_name_2
            script: | 8
              #!/bin/sh
      
              # Sample shell script
      
              echo "ENV_VAR_NAME_1: " $ENV_VAR_NAME_1
              echo "ENV_VAR_NAME_2: " $ENV_VAR_NAME_2
              jq --version (adjust the jq command for different JSON structures)
              curl -k -L -H "Authorization: Bearer $ENV_VAR_NAME_1" https://$ENV_VAR_NAME_2/api/cli/download/roxctl-linux --output ./roxctl
              chmod +x ./roxctl
              echo "roxctl version"
              ./roxctl version
              echo "image from pipeline: "
      
              # Replace the following line with your dynamic image logic
              DYNAMIC_IMAGE=$(get_dynamic_image_logic_here)
              echo "Dynamic image: $DYNAMIC_IMAGE"
              ./roxctl image scan --insecure-skip-tls-verify -e $ENV_VAR_NAME_2 --image $DYNAMIC_IMAGE --output json  > roxctl_output.json
              more roxctl_output.json
              jq -rce \  9
                '{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)
      1
      작업 이름입니다.
      2
      작업 출력을 저장하는 위치입니다.
      3
      검사 작업 결과의 이름 지정 규칙입니다. 유효한 명명 규칙은 SCAN_OUTPUT 문자열로 끝나야 합니다. 예를 들어 SCAN_OUTPUT, MY_CUSTOM_SCAN_OUTPUT 또는 ACS_SCAN_OUTPUT.
      4
      결과에 대한 설명입니다.
      5
      사용한 취약점 검사 도구의 이름입니다.
      6
      검사 도구가 포함된 실제 이미지의 위치입니다.
      7
      툴별 환경 변수입니다.
      8
      json 출력으로 실행할 쉘 스크립트입니다. 예를 들면 scan_output.json입니다.
      9
      취약점 요약을 추출하는 형식(다른 JSON 구조에 대해 jq 명령 조정).
      참고

      이는 구성의 예입니다. 특정 검사 도구에 따라 값을 수정하여 예상 형식으로 결과를 설정합니다.

  3. 적절한 Pipeline을 업데이트하여 다음 형식으로 취약점 사양을 추가합니다.

    ...
    spec:
      results:
        - description: The common vulnerabilities and exposures (CVE) result
          name: SCAN_OUTPUT
          value: $(tasks.vulnerability-scan.results.SCAN_OUTPUT)

검증

  • PipelineRun 세부 정보 페이지로 이동하여 확인된 취약점 의 시각적 표현에 대한 취약점 행을 검토합니다.
  • 또는 PipelineRun 목록 보기 페이지로 이동하여 Vulnerabilities 열을 검토할 수 있습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.