Kubernetes 이야기

KubeClarity 본문

Kubernetes/보안

KubeClarity

kmaster 2022. 8. 25. 15:44
반응형

 

KubeClarity는 K8 런타임의 세분화된 보안 스캔은 물론 컨테이너 이미지 스캔 및 사전 배포 CI/CD 스캔 기능을 수행할 수 있는 차세대 보안 스캔 도구 중 하나이다. KubeClarity는 SBOM(Software Bill Of Materials)과 컨테이너 이미지 및 파일 시스템의 취약점을 감지하고 관리하기 위한 도구이다. 향상된 소프트웨어 공급망 보안을 위해 런타임 K8 클러스터와 CI/CD 파이프라인을 모두 스캔한다.

 

SBOM은 소프트웨어 자재 명세셔라는 뜻으로 발송물의 포장 목록과 유사하다.  소프트웨어를 구성하거나 소프트웨어를 구축하는 데 사용된 모든 구성 요소가 나열된다. . 
컨테이너 이미지의 경우 여기에는 소프트웨어가 의존하는 언어별 패키지(예: Log4j)와 함께 설치된 운영 체제 패키지(예: ca-certificates)가 포함된다.  
SBOM에는 이 정보의 하위 집합이나 구성 요소 버전 및 해당 소스와 같은 세부 정보가 포함될 수 있다.

 

KubeClarity는 현재 보안 상태에 대한 통찰력과 누출을 막는 데 필요한 단계에 대한 통찰력을 제공하는 포괄적인 취약점 및 수정 목록을 보여준다.

 

주요특징은 아래와 같다.

  • Dashboard
    • 심각도별 수정 가능한 취약점
    • 상위 5개 취약 요소(애플리케이션, 리소스, 패키지)
    • 새로운 취약점 동향
    • 라이선스 유형별 패키지 수
    • 프로그래밍 언어당 패키지 수
    • 일반 카운터
  • 애플리케이션
    • K8s 런타임에서 자동 애플리케이션 감지
    • 애플리케이션 생성/편집/삭제
    • 애플리케이션별로 관련 항목으로 이동:
      • 리소스(이미지/디렉토리)
      • 패키지
      • 취약점
      • 리소스에서 사용 중인 라이선스
  • 애플리케이션 리소스(이미지/디렉토리)
    • 리소스별로 관련 항목으로 이동:
      • 애플리케이션
      • 패키지
      • 취약점
  • 패키지
    • 패키지별로 관련 항목으로 이동:
      • 애플리케이션
      • 연결 가능한 리소스 목록 및 감지 SBOM 분석기
      • 취약점
  • 취약점
    • 취약점별로 관련 항목으로 이동:
      • 애플리케이션
      • 자원
      • 감지 스캐너 목록
  • K8s 런타임 스캔
    • 주문형 또는 예약 검색
    • 대상 네임스페이스 자동 감지
    • 영향을 받는 요소(응용 프로그램, 리소스, 패키지, 취약성)별로 진행 상황 및 결과 탐색 검사
    • CIS 도커 벤치마크
  • CLI(CI/CD)
    • 다중 통합 콘텐츠 분석기를 사용한 SBOM 생성(Syft, cyclonedx-gomod)
    • 다중 통합 스캐너(Grype, Dependency-track)를 사용한 SBOM/이미지/디렉토리 취약점 스캔
    • 다양한 CI/CD 단계에서 SBOM 및 취약점 병합
    • KubeClarity 백엔드로 결과 내보내기
  • API
    • KubeClarity용 API 지원

아키텍처

 

출처 : https://github.com/openclarity/kubeclarity

 

설치

 

# helm repo add kubeclarity https://openclarity.github.io/kubeclarity

chart values 를 파일로 저장한다.

# helm show values kubeclarity/kubeclarity > values.yaml

values.yaml 에서 구성에 필요한 값을 업데이트 한다.

# helm install --values values.yaml --create-namespace kubeclarity kubeclarity/kubeclarity -n kubeclarity
NAME: kubeclarity
LAST DEPLOYED: Wed Aug 24 10:49:04 2022
NAMESPACE: kubeclarity
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thank you for installing KUBECLARITY.

Your release is named kubeclarity.

Here is how to access the KubeClarity UI:

    $ kubectl port-forward --namespace kubeclarity svc/kubeclarity-kubeclarity 9999:8080
    $ Open KubeClarity UI in the browser: http://localhost:9999/

설치된 내역은 다음과 같다.

# k get all -n kubeclarity
NAME                                                        READY   STATUS    RESTARTS   AGE
pod/kubeclarity-kubeclarity-7c4f65db55-4pvlb                1/1     Running   0          7m34s
pod/kubeclarity-kubeclarity-grype-server-546976bdc6-sxdjp   1/1     Running   0          7m34s
pod/kubeclarity-kubeclarity-postgresql-0                    1/1     Running   0          7m34s
pod/kubeclarity-kubeclarity-sbom-db-545f7c4865-bg6rt        1/1     Running   0          7m34s

NAME                                                  TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                         AGE
service/kubeclarity-kubeclarity                       NodePort    10.96.90.121    <none>        8080:30006/TCP,8888:31420/TCP   7m34s
service/kubeclarity-kubeclarity-grype-server          ClusterIP   10.111.52.20    <none>        8080/TCP,9991/TCP               7m34s
service/kubeclarity-kubeclarity-postgresql            ClusterIP   10.100.108.79   <none>        5432/TCP                        7m34s
service/kubeclarity-kubeclarity-postgresql-headless   ClusterIP   None            <none>        5432/TCP                        7m34s
service/kubeclarity-kubeclarity-sbom-db               ClusterIP   10.102.87.248   <none>        8081/TCP,8080/TCP               7m34s

NAME                                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kubeclarity-kubeclarity                1/1     1            1           7m34s
deployment.apps/kubeclarity-kubeclarity-grype-server   1/1     1            1           7m34s
deployment.apps/kubeclarity-kubeclarity-sbom-db        1/1     1            1           7m34s

NAME                                                              DESIRED   CURRENT   READY   AGE
replicaset.apps/kubeclarity-kubeclarity-7c4f65db55                1         1         1       7m34s
replicaset.apps/kubeclarity-kubeclarity-grype-server-546976bdc6   1         1         1       7m34s
replicaset.apps/kubeclarity-kubeclarity-sbom-db-545f7c4865        1         1         1       7m34s

NAME                                                  READY   AGE
statefulset.apps/kubeclarity-kubeclarity-postgresql   1/1     7m34s

 

콘솔화면에 접근해 보자.

대시보드

Runtime Scan

namespace 별로 scan을 실행할 수 있다.

Runtime Scan
application 취약점 보기
패키지 리스트
CVE 개요
CVE 상세정보

 

반응형

'Kubernetes > 보안' 카테고리의 다른 글

NGINX WAF  (0) 2022.09.24
pod security admission  (0) 2022.08.31
Container/Kubernetes Compliance ( 컨테이너/쿠베네티스 규정 준수 )  (0) 2022.06.17
Kubernetes scan 도구 - popeye  (0) 2022.05.15
Network Policy  (0) 2022.05.08
Comments