취약점분석 (Blue Team)/Cloud

[k8s-goat] 6.Kubernetes CIS benchmarks analysis

poiri3r 2026. 6. 25. 16:59

이번엔 6번째 시나리오입니다.

kubernetes CIS benchmarks analysis라는 제목입니다.

5번이랑 6번이랑 같은 문제인데 5번은 제 환경에 안맞아서 바로 6번으로 진행하였습니다.

 

K8s 노드에서 보안 기준에 맞게 설정 되어 있는지 점검하는 문제입니다.

이번에는 좀 특이한 문제네요.

kubectl apply -f scenarios/kube-bench-security/node-job.yaml
kubectl apply -f scenarios/kube-bench-security/master-job.yaml

포트가 아니라 명령어가 들어 있습니다.

 

 

kube-bench master랑 node가 들어있습니다.

둘 다 한번 실행되고 끝나는 작업용 리소스입니다.

 

bench-master는 컨트롤 플레인 노드 점검용

bench-node는 일반 노드/kubelet 점검용입니다.

 

실행 후에는 logs를 확인하면 됩니다.

kubectl logs -n default kube-bench-master-lk54t
kubectl logs -n default kube-bench-node-jzxf8

kube-bench-master입니다

요약을 보면 10개가 FAIL 11개가 WARN을 띄어져 있네요.

1.1.12 etcd data directory ownership이 etcd:etcd가 아님
1.2.5 API Server에 --kubelet-certificate-authority 설정 없음
1.2.15 API Server profiling이 false가 아님
1.2.16 audit-log-path 설정 없음
1.2.17 audit-log-maxage 설정 없음
1.2.18 audit-log-maxbackup 설정 없음
1.2.19 audit-log-maxsize 설정 없음
1.2.30 service-account-extend-token-expiration이 false가 아님
1.3.2 Controller Manager profiling이 false가 아님
1.4.1 Scheduler profiling이 false가 아님

각 항목 별 해결 방안도 알려주긴 합니다/

 

마찬가지로 node도 봐주겠습니다.

4.2.9 kubelet TLS 인증서/개인키 설정 확인 필요
4.2.12 강한 TLS cipher suite 사용 여부 확인 필요
4.2.13 Pod PID 제한 설정 필요
4.2.14 seccomp default 활성화 필요
4.2.15 kubelet 접근 허용 IP 제한 필요

이렇게 나오네요.

 

이렇게 쉽게 검사되는게 신기하긴 합니다.

CIS에 어떤 기준이 있는지도 한번 다 확인해봐야겠네요./

 

1. Control Plane Security Configuration

API server, Controller Manager, scheduler, etcd 같은 구성요소를 검사하는 부분입니다.

1-1은 control plane 관련 설정 파일 권한을 확인합니다.

1-2는 API Server를 검사하는 부분으로, kubectl, Pod, Controller 등이 요청을 보내는 진입점을 검사합니다.

1-3은 Controller Manager를 검사합니다

1-4는 Scheduler를 검사합니다 

 

4. Worker Node Security Configuration

Pod이 실행되는 워커 노드를 검사합니다. 주로 kublet 설정을 검사하는 부분입니다.

4.1 워커 노드의 설정 파일 권한과 소유자를 점검합니다.

4.2 kublet에 대한 부분을 검사합니다. 

4.3 kube-proxy에 관한 부분을 검사합니다.

 

일단 여기까지 해보도록하겠습니다.

읽어주셔서 감사합니다