보안 스캔

최종 수정: 2026. 3. 30.

보안 스캔

Skuber+ Client는 Trivy와 Kubescape 듀얼 스캐너를 내장하여 클러스터의 보안 취약점과 컴플라이언스를 분석합니다. 별도의 설치 없이 앱 내에서 바로 스캔할 수 있습니다.

접근 방법

사이드바에서 Security 선택

스캐너 개요

Skuber+ Client는 두 가지 보안 스캐너를 제공합니다:

스캐너 분석 대상 주요 결과
Trivy 컨테이너 이미지 CVE 취약점 (Critical/High/Medium/Low)
Kubescape Kubernetes 설정 보안 컴플라이언스, RBAC 리스크, 네트워크 정책

두 스캐너는 서로 보완적입니다:

  • Trivy: 컨테이너 이미지에 포함된 패키지의 알려진 취약점(CVE)을 검출
  • Kubescape: Kubernetes 리소스의 보안 설정 미비(Misconfiguration)와 RBAC 과다 권한을 분석

스캔 시작

  1. Security 화면에서 Scan 버튼 클릭
  2. 스캔 모드 선택 (All / Trivy only / Kubescape only)
  3. 진행률이 0~100%로 표시됩니다
  4. 각 스캐너 완료 시점에 결과가 순차적으로 표시됩니다

스캔 취소

스캔 진행 중 Cancel 버튼을 클릭하면 즉시 중단됩니다. 부분적으로 완료된 스캐너의 결과는 유지됩니다.

타임아웃 & 재시도

  • 기본 타임아웃: 5분 (300초)
  • 일부 네임스페이스가 타임아웃되면 UI에 타임아웃된 네임스페이스가 표시됩니다
  • Retry 버튼으로 타임아웃된 네임스페이스만 재스캔 가능
  • 재시도 시 타임아웃이 자동으로 2배로 연장됩니다
  • 재시도 결과는 기존 결과와 병합됩니다

스캔 결과

Findings 타입

스캔 결과는 4가지 타입의 Findings로 분류됩니다:

1. CVE (이미지 취약점)

Trivy가 검출하는 컨테이너 이미지의 알려진 취약점입니다.

필드 설명
CVE ID 취약점 식별자 (예: CVE-2024-1234)
심각도 Critical / High / Medium / Low / Unknown
패키지명 영향받는 패키지
설치 버전 현재 설치된 버전
수정 버전 취약점이 해결된 버전 (있는 경우)
CVSS 점수 0~10 (높을수록 위험)
리소스 해당 이미지를 사용하는 K8s 리소스 (kind, name, namespace)

2. Misconfiguration (설정 미비)

Kubescape가 검출하는 보안 모범 사례 위반입니다.

필드 설명
체크 ID 컨트롤 식별자 (예: C-0013)
카테고리 Pod Security, Network 등
영향 필드 문제가 있는 spec 경로
수정 제안 권장 수정 경로 및 값
리소스 해당 K8s 리소스

주요 체크 항목 예시:

  • Non-root 컨테이너 실행 여부 (C-0013)
  • 읽기 전용 파일시스템 설정 (C-0017)
  • 리소스 제한(limits/requests) 설정 (C-0009)
  • Readiness/Liveness 프로브 설정 (C-0018, C-0056)
  • Privileged 모드 사용 여부 (C-0057)
  • 네트워크 정책 존재 여부 (C-0260)

3. RBAC (권한 리스크)

Kubescape가 검출하는 과다 RBAC 권한입니다.

필드 설명
주체 위험 권한을 가진 user/group/serviceaccount
위험 권한 부여된 위험한 permissions
리소스 관련 Role/ClusterRole

주요 체크 항목:

  • cluster-admin 역할 남용 (C-0185)
  • Secrets 접근 권한 (C-0186)
  • 와일드카드(*) 권한 사용 (C-0187)
  • 불필요한 Pod 생성 권한 (C-0188)
  • system:masters 그룹 사용 (C-0246)

4. Network Policy (네트워크 정책)

네트워크 정책 미비로 인한 리스크입니다.

  • 네트워크 정책이 없는 네임스페이스 (C-0206)
  • Ingress/Egress 미차단 Pod (C-0030)
  • 외부 노출 워크로드 (C-0256)

심각도 분류

심각도 의미 권장 조치
🔴 Critical 즉시 악용 가능한 치명적 취약점 즉시 패치
🟠 High 높은 위험의 취약점 가능한 빨리 패치
🟡 Medium 중간 위험 계획된 유지보수 시 패치
🔵 Low 낮은 위험 참고용
Unknown 심각도 미분류 개별 확인 필요

Findings 테이블

스캔 결과는 테이블 형태로 표시됩니다:

  • 필터링: 심각도, 타입(CVE/Misconfiguration/RBAC), 스캐너, 네임스페이스별 필터
  • 정렬: 심각도, 리소스 이름, CVE ID 등으로 정렬
  • 상세 보기: 항목 클릭 시 상세 정보 + 조치 가이드 표시
  • 외부 참조: CVE 링크, Kubescape 컨트롤 문서 링크 제공

클러스터별 스캔 상태

각 클러스터는 독립된 스캔 상태를 유지합니다.

스캔 상태

상태 설명
Idle 스캔 대기 중 (스캔 전 또는 완료 후)
Scanning 스캔 진행 중
Complete 스캔 완료
Error 스캔 중 오류 발생

클러스터 전환

  • 클러스터를 전환하면 해당 클러스터의 스캔 결과가 자동으로 표시됩니다
  • 다른 클러스터에서 실행 중인 스캔에는 영향을 주지 않습니다
  • 각 클러스터의 마지막 스캔 시간과 상태가 개별적으로 관리됩니다

스캔 캐시

스캔 결과는 로컬에 자동 캐시됩니다:

  • 자동 저장: 스캔 완료 시 결과가 디스크에 저장
  • 앱 재시작 시 복원: 앱을 다시 시작해도 캐시된 결과 유지
  • 멀티 클러스터 캐시: 여러 클러스터의 캐시를 동시에 복원
  • TTL: 기본 7일 (7일 이상 된 캐시는 자동 만료)
  • 캐시 삭제: 특정 클러스터의 캐시를 수동 삭제 가능

## 문제 해결

| 증상 | 원인 | 해결 |
|------|------|------|
| 스캔 시작 안 됨 | 클러스터 미연결 | 클러스터 연결 상태 확인 |
| Trivy 결과 없음 | 이미지 pull 권한 부족 | 레지스트리 접근 권한 확인 |
| 특정 네임스페이스 타임아웃 | 리소스가 많은 네임스페이스 | Retry로 해당 네임스페이스만 재스캔 |
| 결과 불완전 (일부 스캐너만) | 스캐너 타임아웃 | 타임아웃된 스캐너 표시 확인, 개별 재실행 |
| 이전 결과가 안 보임 | 캐시 만료 (7일) | 다시 스캔 실행 |
| 스캔이 느림 | 대규모 클러스터 + Parallel 미사용 | Parallel 모드 또는 네임스페이스 지정 스캔 |