CIS Benchmark란, 사이버 보안 향상을 위해 활동하는 국제 조직 Center of Internet Security에서 제안하는 IT 인프라 보안 관련 우수 사례 및 가이드라인을 의미합니다. 현재 다양한 종류의 CIS Benchmark가 존재하며, 이 중 Kubernetes와 관련된 것이 CIS Kubernetes Benchmark입니다.

CIS Kubernetes Benchmark의 목적

  • Kubernetes에 적합한 보안 가이드라인을 기업과 조직에게 제공하여, 현재 알려져있는 Kubernetes 관련 취약점과 부적절한 설정(Misconfiguration)으로부터 안전한 Kubernetes 환경을 구축하는 것입니다.
  • 기업 내 엔지이너의 입장에선 일정한 툴을 사용하는 것만으로 Kubernetes 클러스터가 CIS Benchmark에서 권장하는 기준에 부합하는지 확인하고 적절한 조치를 취할 수 있게 됩니다.

CIS Kubernetes Benchmark에서 다루는 범위

  • Kubernetes 클러스터 설정
  • Worker Node 설정
  • Network Policy
  • Role-Based Access Control (RBAC)
  • Secret 관리
  • Logging 및 Monitoring
  • Pod 보안 정책
  • 컨테이너 보안

CIS Kubernetes Benchmark의 구성 요소

Benchmark는 다수의 권장 사항으로 구성되어 있습니다. 그리고 각 사항의 검토 결과는 아래 4가지 속성을 가지고 있습니다.

  • Scoring

    • Scored: 권장 사항이 Scored라면, 해당 권장 사항을 준수하지 못할 경우 최종 Benchmark 점수가 감소합니다.
    • Not Scored: 권장 사항이 Not Scored라면, 해당 권장 사항을 준수하지 못해도 최종 Benchmark 점수는 감소하지 않습니다.
  • Levels

    • Level 1: 명확한 보안 이점을 제공하거나, 기능성을 제한하지 않는 권장 사항이라는 뜻입니다.
    • Level 2: Level 1의 확장된 수준입니다. 심층적이거나 기능성에 부정적인 영향을 줄 수도 있는 권장 사항을 의미합니다.
  • Results

    • Pass: 권장 사항을 준수했음을 의미합니다.
    • Fail: 권장 사항을 준수하지 못함을 의미합니다.
  • Responsibility

    • 권장 사항을 준수해야 하는 주체를 의미합니다.
    • 주로 조직(Organization)으로 명시되지만, 특정 경우에는 서비스 제공자(vendor) 등이 명시되기도 합니다.

CIS Kubernetes Benchmark 툴

가장 보편적으로 쓰이는 툴은 kube-bench입니다.

  • kube-bench는 해당 레파지토리에서 제공하는 yaml 파일을 받아온 뒤, 검토를 원하는 Kubernetes 클러스터 안에서 Job object로 실행하는 방식입니다.
  • 실행한 Job이 완료되면 해당 Pod의 로그로 Benchmark 검토 결과를 확인할 수 있습니다.

References