K8s attack scenario
│ ┌────────────────┐ ┌───────────────┐ ┌───────────────┐
│ Initial │ Web App ├──►│ Application ├──►│ Application │
│ Access │ running in Pod │ │ Vulnerability │ │ Exploit (RCE) │
│ └────────────────┘ └───────────────┘ └──────┬────────┘
│ │
│ │
│ ┌──────────────────────────────────────┘
│ ▼
│ ┌────────────────┐ ┌──────────────┐ ┌──────────────┐
│ │ Shell ├───►│ Conteiner ├───►│ Cluster ├───┐
│ Execution │indide container│ │ Recon │ │ REcon │ │
│ └────────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┘
│ │
│ │
│ │
│ │ ┌───────────────┐ ┌────────────────┐
│ │ │ Run │ │ Get Cluster │
│ │ ┌─►│ Priv Container├──┐ ┌─►│ Admin │
│ ▼ │ └───────────────┘ │ │ └────────────────┘
│ ┌────┐ │ │ ┌─────┐ │
│ Priv │Priv├──┤ ├──►│ Priv├─┤
│ Escalation │Esc │ │ │ │ Esc │ │
│ └────┘ │ │ └──┬──┘ │
│ │ ┌───────────────┐ │ │ │ ┌────────────────┐
│ │ │ Container │ │ │ │ │ Access │
│ └─►│ Escape ├──┘ │ └─►│ Cloud Resources│
│ └───────────────┘ │ └────────────────┘
│ │
│ ┌─────────────────┼────────────────┐
│ │ │ │
│ ▼ │ ▼
│ ┌──────────────────┐ │ ┌──────────────────┐
│ Credential │ List K8s │ │ │ Access Pod │
│ Access │ Secrets │ │ │ Service Account │
│ └──────────────────┘ │ └─────────┬────────┘
│ │ │
│ │ │
│ │ │
│ │ ▼
│ ┌──────────────────┐ │ ┌──────────────────┐
│ │ Network │◄──────┤ │ Access K8s │
│ │ Mapping │ │ │ API server │
│ └──────────────────┘ │ └─────────┬────────┘
│ │ │
│ Discovery │ ▼
│ ┌──────────────────┐ │ ┌──────────────────┐
│ │ Instance │◄──────┘ │ Access │
│ ┌────┤ Metadata API │ │ Kubelet API │
│ │ └──────────────────┘ └──────────────────┘
│ │
│ │ ┌────────────┐
│ │ ┌──►│ Data Dump/ │
│ │ │ │ Destruction│
│ ▼ │ └────────────┘
│ ┌──────────────┐ ┌─────────┐ │ ┌────────────┐
│ Laternal │ Access Cloud ├────────►│ Impact ├───┼────────────►│ Resource │
│ Movement │ Resources │ │ │ │ │ Hijacking │
│ └──────────────┘ └─────────┘ │ └────────────┘
│ │ ┌────────────┐
│ └──►│ Denial of │
│ │ Service │
│ └────────────┘