Kubernetes pod escape

Só leitura — não altera nada no alvo. Só em alvo seu ou autorizado por escrito.

O vetor

Vetor: pod privilegiado, hostPath, service account com RBAC amplo → escapar do pod para o nó/cluster. O que testamos (se houver K8s): securityContext, RBAC, NetworkPolicy.

Os passos

Passo 1 (🟢) — auditar contexto de segurança:

kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{" priv="}{.spec.containers[*].securityContext.privileged}{"\n"}{end}'
kubectl auth can-i --list   # o que este service account pode fazer

O que esperar

  • VULNERÁVEL: privileged=true, hostPath montado, SA com cluster-admin, sem NetworkPolicy.
  • SEGURO: Pod Security "restricted" (runAsNonRoot, readOnlyRootFilesystem, drop ALL), RBAC mínimo, NetworkPolicy deny-all.

Como corrigir

Correção (P2): aplicar Pod Security Standards; RBAC por papel; kube-bench/kube-hunter no pipeline. (DOCUMENTACAO §4.6.) Limpeza: nenhuma.

PurpleLab // plataforma de treino ofensivo + defensivo // Fase 1 — portal dinamico