D012F3
Compute
🖥️ Honey Container/Pod
Fake K8s pods or Docker containers in clusters.
What it is
A pod or container deployed among real workloads, with a plausible image and labels but no service-account rights, no host access and no route out. Attackers who reach a cluster exec into running containers to look for secrets and move on. Exec, attach and port-forward on the decoy pod are recorded by the Kubernetes audit log and runtime sensors.
Implementation requirements
- Deploy a Deployment in a namespace named like real ones, with a plausible image, labels and resource requests. Minimal CPU and memory
- Set
automountServiceAccountToken: false, or use a service account bound to no roles. NohostPath, no privileged mode, no real secrets mounted - Add a NetworkPolicy that denies egress except to your collector (it only takes effect if the cluster's network plugin enforces NetworkPolicy)
- Monitoring: an audit-policy rule that records the decoy pod's
pods/exec,pods/attachandpods/portforwardsubresources. Add a runtime sensor (Falco or Tetragon) rule for a shell spawned in the container - Managed clusters, check before relying on it: EKS, turn on the
auditcontrol-plane log type (off by default). AKS, add a diagnostic setting with categorykube-audit; the cheaperkube-audit-adminleaves outgetandlist. GKE, writes go to Admin Activity logs (always on) butgetandlistgo to Data Access logs, which are off by default. Self-managed, the API server logs nothing until it is started with an audit policy. Confirm with the test below that the exec, attach and port-forward events actually arrive - On managed clusters, test with a real
kubectl execthat the event reaches your log. Newer kubectl versions change the request type used for exec, which can change which log category records it - OPSEC: the image, labels and restart history should match neighbouring workloads
- Rollback: Delete the Deployment, its NetworkPolicy and the audit-policy rule. Delete the decoy namespace if it was created for this.
- Upkeep: Bump the image alongside neighbouring workloads. Monthly proof-of-life
kubectl exec.
Technologies
ContainerKubernetesAWSAzureGCP
ATT&CK coverage 15
| Technique | Tactic | Status | Confidence | Tier |
|---|---|---|---|---|
| T1552.007 Container API |
Credential Access | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1613 Container and Resource Discovery |
Discovery | confirmed | strong | T1 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1059 Command and Scripting Interpreter |
Execution | confirmed | strong | T2 |
| ↳ Detection point: seen once the attacker is working inside a high-fidelity decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1059.004 Unix Shell |
Execution | confirmed | strong | T2 |
| ↳ Detection point: seen once the attacker is working inside a high-fidelity decoy | ||||
↳ Evidence (3 sources)
| ||||
| T1059.006 Python |
Execution | theoretical | moderate | T2 |
| ↳ Detection point: seen once the attacker is working inside a high-fidelity decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1204.003 Malicious Image |
Execution | theoretical | weak | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (1 source)
No source shows a decoy observing a user running a malicious image. | ||||
| T1609 Container Administration Command |
Execution | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (1 source)
Backed by D008 (honey kubeconfig). Honeypot studies checked so far do not document kubectl exec specifically. | ||||
| T1610 Deploy Container |
Execution | confirmed | strong | T3 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (3 sources)
| ||||
| T1496 Resource Hijacking |
Impact | confirmed | strong | T3 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (4 sources)
| ||||
| T1496.001 Compute Hijacking |
Impact | confirmed | strong | T3 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (4 sources)
| ||||
| T1098.006 Additional Container Cluster Roles |
Persistence | confirmed | strong | T3 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1543.005 Container Service |
Persistence | theoretical | moderate | T2 |
| ↳ Detection point: seen once the attacker is working inside a high-fidelity decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1053.007 Container Orchestration Job |
Privilege Escalation | theoretical | moderate | T2 |
| ↳ Detection point: seen once the attacker is working inside a high-fidelity decoy | ||||
↳ Evidence (2 sources)
Workload creation is documented on the honeypot; a CronJob specifically is not. | ||||
| T1068 Exploitation for Privilege Escalation |
Privilege Escalation | theoretical | moderate | T3 |
| ↳ Detection point: seen once the attacker is working inside a high-fidelity decoy | ||||
↳ Evidence (3 sources)
| ||||
| T1611 Escape to Host |
Privilege Escalation | confirmed | strong | T3 |
| ↳ Detection point: seen once the attacker is working inside a high-fidelity decoy | ||||
↳ Evidence (1 source)
| ||||
Evidence
- Decoy Environment (D3-DE) — MITRE D3FEND standard
- MITRE ATT&CK Enterprise v20.0 — MITRE 2026 standard
- Container Orchestration Honeypot: Observing Attacks in the Wild — Spahn, N.; Hanke, N.; Holz, T.; Kruegel, C.; Vigna, G., RAID 2023 peer-reviewed
- MITRE Engage — adversary engagement matrix and ATT&CK mapping — MITRE 2022 standard