Kubernetes 위협 모델
클러스터가 공격받는 지점을 알아봅니다.
Kubernetes 위협 모델은(는) CoddyKit의 무료 Cyber Security Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cyber Security Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
Kubernetes가 표적이 되는 이유
Kubernetes는 여러 노드에 걸쳐 컨테이너를 관리합니다. 비밀 정보, 네트워킹, 컴퓨팅을 중앙에서 관리하므로 클러스터를 침해하면 클러스터가 실행하는 모든 워크로드를 침해할 수 있습니다.
- 하나의 API 서버가 전체 클러스터를 제어합니다.
- 노드는 여러 테넌트의 워크로드를 나란히 실행합니다.
- 핵심 CVE보다 잘못된 구성이 훨씬 더 흔합니다.
클러스터 아키텍처 복습
위협 모델링을 하려면 구성 요소를 알아야 합니다.
- 제어 평면: API 서버, etcd, 스케줄러, 컨트롤러 관리자.
- 노드: kubelet, 컨테이너 런타임, kube-proxy, 파드.
- etcd는 모든 클러스터 상태와 비밀 정보를 저장합니다.
API 서버는 단일 진입점이며, etcd는 가장 중요한 데이터 자산입니다.
공격 표면 지도
공격은 서로 다른 계층을 대상으로 합니다.
- 외부: 노출된 API 서버, 대시보드, 인그레스.
- 워크로드: 파드 내부의 침해된 애플리케이션.
- 신원: 서비스 계정 토큰과 RBAC.
- 노드: kubelet API, 호스트로의 컨테이너 탈출.
- 공급망: 악성 이미지와 종속성.
노출된 제어 평면
인터넷에서 접근 가능한 API 서버 또는 인증이 취약한 kubelet은 클러스터를 직접 장악할 수 있는 경로입니다.
- API 서버에서 익명 액세스가 활성화됨.
- kubelet 읽기/쓰기 API(포트 10250)가 노출됨.
- 관리자 바인딩이 설정된 공개 Kubernetes 대시보드.
# Probe an exposed kubelet for running pods
curl -sk https://NODE_IP:10250/pods
# Test anonymous API access
kubectl --insecure-skip-tls-verify --server https://API:6443 get pods파드 내부 거점
가장 일반적인 시작점은 파드에서 실행되는 애플리케이션의 RCE입니다. 파드 내부에서 공격자는 다음을 찾습니다:
/var/run/secrets/...에 탑재된 서비스 계정 토큰.- 연결할 수 있는 내부 서비스(네트워크 정책 없음).
- API 서버(대개
kubernetes.default로 이름을 해석할 수 있음).
# From inside a pod: read the mounted SA token
cat /var/run/secrets/kubernetes.io/serviceaccount/token
# Use it against the API
curl -sk -H "Authorization: Bearer $(cat .../token)" https://kubernetes.default/api/v1/namespaces/default/pods컨테이너 탈출
컨테이너에서 노드로 탈출하면 해당 호스트에서 실행 중인 모든 워크로드에 접근할 수 있습니다.
- 특권 컨테이너는 호스트 장치에 액세스하고 탈출할 수 있습니다.
- hostPID/hostNetwork/hostPath 마운트는 피해 범위를 넓힙니다.
- 탑재된 Docker 소켓을 사용하면 특권 컨테이너를 시작할 수 있습니다.
- 위험한 기능(
SYS_ADMIN)은 탈출을 가능하게 합니다.
# A privileged pod can mount the host filesystem and chroot to it
mount /dev/sda1 /mnt && chroot /mnt shetcd: 비밀 저장소
etcd는 Secret을 포함한 전체 클러스터 상태를 보관하며, Secret은 기본적으로 base64로만 인코딩됩니다. etcd에 직접 접근하면(잘못 구성된 클러스터에서는 인증 없이 접근 가능한 경우가 많음) 모든 비밀 정보가 유출됩니다.
# Read all secrets from an exposed etcd
etcdctl --endpoints=https://NODE:2379 get / --prefix --keys-only클러스터 내 측면 이동
내부에 들어오면 공격자는 클러스터 신원과 네트워킹을 이용해 이동 경로를 전환합니다.
- 권한이 과도하게 허용된 서비스 계정은 권한이 높은 파드를 생성할 수 있게 합니다.
- 평탄한 파드 네트워크(NetworkPolicy 없음)에서는 모든 서비스에 접근할 수 있습니다.
- 대상 노드에 파드를 배치하면 노드를 침해할 수 있습니다.
파드에서 클라우드 메타데이터 접근
관리형 클러스터(EKS/GKE/AKS)에서는 파드가 노드의 클라우드 메타데이터 서비스에 접근해 노드의 IAM/역할 자격 증명을 탈취할 수 있으며, 이를 통해 클러스터 침해가 클라우드 계정 침해로 이어질 수 있습니다.
방어 방법으로는 IMDSv2 사용, 네트워크 계층에서 메타데이터 차단, 노드 역할 대신 워크로드 신원 사용 등이 있습니다.
도구를 사용한 매핑
도구는 클러스터 위협 평가를 자동화합니다.
- kube-hunter는 노출된 구성 요소를 탐색합니다.
- kube-bench는 CIS 벤치마크 준수 여부를 점검합니다.
- Peirates / kubeletctl은 클러스터 내부 공격 경로를 실험합니다.
# Assess attack surface
kube-hunter --remote API_IP
# CIS benchmark check on a node
kube-bench run --targets node방어 우선순위
위협 모델은 명확한 방어 우선순위를 제시합니다. API 서버를 잠그고, RBAC를 제한하며, 파드를 격리하고, 노드를 강화하고, 공급망을 보호해야 합니다. 다음 수업에서 각각 자세히 다룹니다.
테스트할 때는 권한을 부여받은 클러스터만 공격하고, 프로덕션 워크로드를 불안정하게 만들지 마십시오.
빠른 확인
Kubernetes 위협 모델의 기본 사항을 확인합니다.
복습
Kubernetes 클러스터가 공격받는 지점을 매핑했습니다.
- API 서버와 etcd는 중앙에 위치한 가장 가치 높은 표적입니다.
- 파드 내부 거점은 탑재된 SA 토큰과 평탄한 네트워크를 활용합니다.
- 특권 파드 또는 hostPath 파드는 노드로의 컨테이너 탈출을 가능하게 합니다.
- 관리형 클러스터에서는 메타데이터를 이용한 클라우드 이동이 위험합니다.
다음 주제: RBAC 및 서비스 계정.
자주 묻는 질문
“Kubernetes 위협 모델” 강의는 무료인가요?
네 — “Kubernetes 위협 모델” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cyber Security Academy 강의 전체를 잠금 해제할 수 있습니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“Kubernetes 위협 모델”에서 뭘 배우나요?
클러스터가 공격받는 지점을 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cyber Security Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“Kubernetes 위협 모델” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cyber Security Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cyber Security Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Kubernetes 위협 모델
- RBAC와 서비스 계정
- Pod 보안과 네트워크 정책
- 공급망과 비밀 정보 보호