Event type
GuardDuty EKS Protection Finding Types
Threat detection for Amazon EKS clusters
AWS GuardDuty EKS Protection finding types detecting threats against Amazon EKS clusters through Kubernetes audit logs analysis, including malicious file execution, privilege escalation, credential access, container escape, cluster deletion, and defense evasion activities
Overview
What this event covers
EKS Protection monitors Kubernetes audit logs from Amazon EKS clusters to detect malicious activity including malicious file execution, privilege escalation, credential access, container escape, cluster deletion, defense evasion, and unauthorized access attempts. Uses ML anomaly detection and threat intelligence to identify suspicious Kubernetes API activity patterns.
When generated
- ›Malicious file execution detected in EKS cluster through Kubernetes audit logs
- ›Container information discovery for defense evasion (ML-detected)
- ›Unauthorized cluster query indicating reconnaissance activity
- ›Kubernetes credential access attempts (ML-detected)
- ›Backdoor container detected in cluster
- ›Privilege escalation to cluster admin role (ML-detected)
- ›EKS cluster deletion attempt detected
- ›Namespace or workload deletion attempts
- ›Unauthorized data access from EKS cluster (ML-detected)
- ›Secret access from EKS cluster (ML-detected)
- ›Container escape attempts
- ›EKS audit logging disabled to evade detection
Security relevance
CriticalCompliance
Frequency notes
EKS Protection findings vary based on cluster activity and security posture. Production clusters typically see 10-50 findings per day. Frequency scales with Kubernetes API volume, cluster size, and workload activity. Privilege escalation and credential access findings are high-severity but lower frequency (5-20 per day). Malicious file execution and cluster deletion attempts are critical but rare (1-5 per day). Container escape and defense evasion activities indicate active attacks (5-30 per day during incidents).
Resources
Docs and tools
Generation
Configuration
- Base frequency
- 30 events/hour
- Time patterns
- business_hours night_hours weekend
- Business hours
- 2.5x
- Night hours
- 2.0x
- Weekend
- 1.5x
Schema
Field definitions
Field reference for this event type — types, requirements, examples, and allowed values.
detail.type
EKS Protection finding type indicating attack tactic and Kubernetes resource
Source: random_choice() of 15 EKS finding types
Execution:EKS/MaliciousFileExecution-
Execution:EKS/MaliciousFileExecutionMalicious file execution detected in EKS cluster -
DefenseEvasion:EKS/ContainerInfoDiscoveryContainer information discovery for defense evasion -
Discovery:EKS/ClusterQueryUnauthorized cluster query indicating reconnaissance -
InitialAccess:EKS/KubernetesCredentialAccessKubernetes credential access attempt -
Persistence:EKS/BackdoorContainerBackdoor container detected in cluster -
PrivilegeEscalation:EKS/ClusterAdminAccessPrivilege escalation to cluster admin role -
Impact:EKS/ClusterDeleteEKS cluster deletion attempt detected -
Impact:EKS/NamespaceDeleteNamespace deletion attempt detected -
Impact:EKS/WorkloadDeleteWorkload deletion attempt detected -
Exfiltration:EKS/DataAccessUnauthorized data access from EKS cluster -
CredentialAccess:EKS/SecretAccessUnauthorized access to Kubernetes secrets -
Recon:EKS/ClusterQueryReconnaissance activity against cluster -
Recon:EKS/NodeQueryReconnaissance activity against nodes -
LateralMovement:EKS/ContainerEscapeContainer escape attempt detected -
Stealth:EKS/AuditLoggingDisabledEKS audit logging disabled to evade detection
detail.resource.eksClusterDetails
Details about the EKS cluster involved in finding
Source: EKS cluster metadata from AWS
{name, arn, vpcId, subnetIds, createdAt, status, tags, kubernetesVersion}detail.resource.eksClusterDetails.name
Name of the EKS cluster
Source: random_choice() of cluster names
EKS cluster nameproduction-cluster-1234detail.resource.eksClusterDetails.arn
Amazon Resource Name (ARN) of the EKS cluster
Source: Constructed from region, account ID, and cluster name
AWS ARN formatarn:aws:eks:us-east-1:123456789012:cluster/production-cluster-1234detail.resource.eksClusterDetails.kubernetesVersion
Kubernetes version running on the cluster
Source: random_choice(['1.28', '1.27', '1.26', '1.25', '1.24'])
Semantic version (major.minor)1.28-
1.28Kubernetes version 1.28 -
1.27Kubernetes version 1.27 -
1.26Kubernetes version 1.26
detail.service.action.kubernetesApiCallAction.requestUri
Kubernetes API endpoint that was called
Source: random_choice() of common Kubernetes API paths
Kubernetes API path/api/v1/namespaces/default/secretsdetail.service.action.kubernetesApiCallAction.verb
Kubernetes API verb (HTTP method equivalent)
Source: random_choice(['get', 'list', 'create', 'update', 'patch', 'delete', 'watch', 'exec', 'portforward'])
Kubernetes API verbget-
getRetrieve a single resource -
listList multiple resources -
createCreate a new resource -
updateUpdate an existing resource -
patchPartially update a resource -
deleteDelete a resource -
watchWatch for changes to resources -
execExecute a command in a container -
portforwardForward ports to a pod
detail.service.action.kubernetesApiCallAction.userIdentity.userName
Kubernetes user or service account name that made the API call
Source: random_choice() from registry users or Kubernetes system identities
Kubernetes identity formatsystem:serviceaccount:default:defaultdetail.service.action.kubernetesApiCallAction.namespace
Kubernetes namespace where the API call was made
Source: random_choice() of common namespaces
Kubernetes namespace namedefaultdetail.service.action.kubernetesApiCallAction.resource
Kubernetes resource type that was accessed
Source: random_choice(['pods', 'secrets', 'configmaps', 'deployments', 'services', 'nodes', 'roles', 'clusterroles', 'serviceaccounts'])
Kubernetes resource type (plural)podsdetail.service.action.kubernetesApiCallAction.responseStatusCode
HTTP status code returned by the Kubernetes API
Source: random_choice([200, 201, 403, 404, 500])
HTTP status code200-
200Success (OK) -
201Success (Created) -
403Forbidden (authorization failed) -
404Not Found (resource does not exist) -
500Internal Server Error
detail.service.additionalInfo.unusual.kubernetesApiCall
ML model analysis of unusual behaviors for anomalous Kubernetes API calls
Source: Object with unusual behavior flags for ML-detected anomalies
{"verb": "anomalous", "resource": "not historical", "namespace": "infrequent"}detail.severity
Finding severity level (0-10)
Source: random_choice([2, 5, 5, 5, 8, 8, 8])
8-
2Low severity (1.0-3.9) -
5Medium severity (4.0-6.9) -
8High severity (7.0-8.9)