Home Mapping K8s to MITRE ATT&CK IDs
Post
Cancel

Mapping K8s to MITRE ATT&CK IDs

Last year, Microsoft released the second version of the threat matrix for Kubernetes. Version 2 added new techniques that were found by Microsoft researchers and techniques that were suggested by the community, while also removing several techniques which were no longer relevant. While looking into Kubernetes detections, I needed to map them back to MITRE IDs. I started looking into the current Container framework by MITRE and realised that the framework did not include a number of the tactics presented by the Microsoft Kubernetes threat matrix. The reason is detailed within Microsoft’s blog post, but I have included an excerpt below:

ATT&CK focuses on real-world techniques that are seen in the wild. In contrast, many of the techniques in the threat matrix were observed during research work and not necessarily as part of an active attack.

While this made sense, it did not help my situation and I needed to find a way to map the events back to valid MITRE IDs. This post describes the mappings, and I have created a GitHub page which includes the mappings in a tabular format as well as a description for each TTP for quick reference.

Threat Matrix Mappings

The MITRE mappings were created by Microsoft and are not officially supported by the MITRE ATT&CK framework. Where possible, mappings from the Microsoft Kubernetes threat matrix to the existing MITRE ATT&CK techniques have been made.

Microsoft Threat Matrix NameTechnique(s)MITRE ATT&CK Mapping
Using Cloud CredentialsInitial AccessT1078.004
Compromised Images in RegistryInitial AccessT1525
Kubeconfig FileInitial AccessT1552.001
Application VulnerabilityInitial AccessT1190
Exposed Sensitive InterfacesInitial AccessT1133
Exec Into ContainerExecutionT1609
bash/cmd Inside ContainerExecutionT1609
New ContainerExecutionT1610
Application Exploit (RCE)ExecutionT1203
SSH Server Running Inside ContainerExecutionT1021.004
Sidecar InjectionExecutionT1055
Backdoor ContainerPersistenceT1053.007
Writeable hostPath MountPersistenceT1611
Kubernetes CronJobPersistenceT1053.007
Malicious Admission ControllerPersistenceT1056
Privileged ContainerPrivilege EscalationT1611
Cluster-Admin BindingPrivilege EscalationT1098
hostPath MountPrivilege EscalationT1611
Access Cloud ResourcesPrivilege EscalationT1550
Clear Container LogsDefense EvasionT1070
Delete K8s EventsDefense EvasionT1562
Pod / Container Name SimilarityDefense EvasionT1036.005
Connect From Proxy ServerDefense EvasionT1090
List K8S SecretsCredential AccessT1552.007
Mount Service PrincipalCredential AccessT1528, T1078.003
Access Container Service AccountCredential AccessT1528, T1078.003
Application Credentials in Configuration FilesCredential AccessT1552.001
Access Managed Identity CredentialCredential AccessT1552.005
Malicious Admission ControllerCredential AccessT1056
Access the K8S API ServerDiscoveryT1613
Access Kubelet APIDiscoveryT1046
Network MappingDiscoveryT1046
Access Kubernetes DashboardDiscoveryT1538
Instance Metadata APIDiscoveryT1552.005
Access Cloud ResourcesLateral MovementT1550
Container Service AccountLateral MovementT1078.003
Cluster Internal NetworkingLateral MovementT1599
Application Credentials in Configuration FilesLateral MovementT1552.001
Writeable Volume Mounts on the HostLateral MovementT1611
CoreDNS PoisoningLateral MovementT1071.004
ARP Poisoning and IP SpoofingLateral MovementT1557.002
Images from a Private RegistryCollectionT1213
Data DestructionImpactT1485
Resource HijackingImpactT1496
Denial of ServiceImpactT1499, T1498

Stratus Red Team Mappings

In addition to the Microsoft threat matrix mappings, I included mappings for the techniques outlined within the Stratus Red Team toolkit. However, Create Client Certificate Credential was not mapped as the technique does not work on AWS EKS.

Stratus Red Team NameMicrosoft Threat Matrix NameTechnique(s)MITRE ATT&CK Mapping
Dump All SecretsList K8s SecretsCredential AccessT1557.002
Steal Pod Service Account TokenAccess Container Service AccountCredential AccessT1550
Create Admin ClusterRoleCluster-Admin BindingPersistence, Privilege EscalationT1098
Create Long-Lived TokenN/APersistenceT1098.001
Container breakout via hostPath volume mountWriteable hostPath MountPrivilege EscalationT1611
Privilege escalation through node/proxy permissionsN/APrivilege EscalationT1548
Run a Privileged PodPrivileged ContainerPrivilege EscalationT1611

MITRE Containers

The MITRE ATT&CK IDs provided above were created for a specific purpose and I hope that it can be improved by the community to assist with Kubernetes MITRE mappings. However, the current MITRE Containers matrix should be the defacto for your organisation and is something that all organisations (who use MITRE) should reference. I also believe that everyone should read the Microsoft blog post referenced above, as it is a lot more comprehensive but does not include mappings to MITRE IDs.

If you enjoyed this and would like to add to it, or if you would like to collaborate to improve the mappings, pleased do reach out!

This post is licensed under CC BY 4.0 by the author.