10장. Pod에서 취약점 스캔

CSO(Container Security Operator)를 사용하면 OpenShift Container Platform 웹 콘솔에서 클러스터의 활성 Pod에 사용된 컨테이너 이미지의 취약점 스캔 결과에 액세스할 수 있습니다. CSV:

  • 모든 네임스페이스 또는 지정된 네임스페이스에서 Pod와 관련된 컨테이너 감시
  • 이미지의 레지스트리에서 이미지 스캔(예: Clair 스캔을 사용하는 Quay.io 또는 Red Hat Quay 레지스트리)이 실행 중인 경우 컨테이너가 있는 컨테이너 레지스트리에서 취약점 정보를 조회합니다.
  • Kubernetes API의 ImageManifestVuln 오브젝트를 통해 취약점 노출

여기 지침을 사용하여 CSO는 openshift-operators 네임스페이스에 설치되므로 OpenShift 클러스터의 모든 네임스페이스에서 사용할 수 있습니다.

10.1. Container Security Operator 실행

여기에 설명된 대로 Operator Hub에서 Operator를 선택하고 설치하여OpenShift Container Platform 웹 콘솔에서 Container Security Operator를 시작할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 대한 관리자 권한 보유
  • 클러스터에서 실행 중인 Red Hat Quay 또는 Quay.io 레지스트리의 컨테이너 보유

프로세스

  1. OperatorsOperatorHub로 이동하여 보안을 선택합니다.
  2. 컨테이너 보안 Operator를 선택한 후 설치를 선택하여 Operator 서브스크립션 생성 페이지로 이동합니다.
  3. 설정을 확인합니다. 기본적으로 모든 네임스페이스 및 자동 승인 전략이 선택됩니다.
  4. 설치를 선택합니다. 컨테이너 보안 Operator가 설치된 Operator 화면에 잠시 후에 나타납니다.
  5. 선택적으로 CSO에 사용자 정의 인증서를 추가할 수 있습니다. 이 예에서는 현재 디렉터리에 quay.crt라는 인증서를 생성합니다. 그런 후 다음 명령을 실행하여 CSO에 인증서를 추가합니다.

    $ oc create secret generic container-security-operator-extra-certs --from-file=quay.crt -n openshift-operators
  6. 사용자 정의 인증서를 추가한 경우 새 인증서가 적용되도록 Operator Pod를 다시 시작합니다.
  7. OpenShift 대시보드(개요)를 엽니다. Quay Image Security의 링크가 지금까지 발견된 취약점 수와 함께 상태 섹션에 표시됩니다. 다음 그림과 같이 링크를 선택하여 Quay Image Security 분석을 확인합니다.

    Access image scanning data from OpenShift Container Platform dashboard

  8. 이 시점에서 두 가지 중 하나를 수행하여 탐지된 취약점을 추적할 수 있습니다.

    • 취약점의 링크를 선택합니다. 컨테이너가 제공된 컨테이너 레지스트리로 이동하여 취약점에 관한 정보를 볼 수 있습니다. 다음 그림은 Quay.io 레지스트리에서 발견된 취약점의 예를 보여줍니다.

      The CSO points you to a registry containing the vulnerable image

    • 네임스페이스 링크를 선택하여 ImageManifestVuln 화면으로 이동합니다. 여기서 선택한 이미지의 이름과 해당 이미지가 실행 중인 모든 네임스페이스를 볼 수 있습니다. 다음 그림은 취약한 특정 이미지가 quay-enterprise 네임스페이스에서 실행 중임을 나타냅니다.

      View namespaces a vulnerable image is running in

이 시점에서 취약한 이미지, 해당 취약점을 수정하기 위해 수행해야 할 작업 및 이미지가 실행된 모든 네임스페이스를 알 수 있습니다. 따라서 다음을 수행할 수 있습니다.

  • 이미지를 실행하는 모든 사람에게 취약점을 수정해야 함을 경고합니다.
  • 이미지가 있는 Pod를 시작한 배포 또는 기타 오브젝트를 삭제하여 이미지 실행을 중지합니다.

Pod를 삭제하면 대시보드에서 취약점이 재설정되는 데 몇 분이 걸릴 수 있습니다.