Amazon EKS Kubernetes cluster scan detection

Original Source: [splunk source]
Name:Amazon EKS Kubernetes cluster scan detection
id:294c4686-63dd-4fe6-93a2-ca807626704a
version:3
date:2024-10-17
author:Rod Soto, Splunk
status:experimental
type:Hunting
Description:The following analytic detects unauthenticated requests to an Amazon EKS Kubernetes cluster, specifically identifying actions by the "system:anonymous" user. It leverages AWS CloudWatch Logs data, focusing on user agents and authentication details. This activity is significant as it may indicate unauthorized scanning or probing of the Kubernetes cluster, which could be a precursor to an attack. If confirmed malicious, this could lead to unauthorized access, data exfiltration, or disruption of services within the Kubernetes environment.
Data_source:
search:`aws_cloudwatchlogs_eks` "user.username"="system:anonymous" userAgent!="AWS Security Scanner"
| rename sourceIPs{} as src_ip
| stats count min(_time) as firstTime max(_time) as lastTime values(responseStatus.reason) values(source) as cluster_name values(responseStatus.code) values(userAgent) as http_user_agent values(verb) values(requestURI) by src_ip user.username user.groups{}
| `security_content_ctime(lastTime)`
| `security_content_ctime(firstTime)` |`amazon_eks_kubernetes_cluster_scan_detection_filter`


how_to_implement:You must install the AWS App for Splunk (version 5.1.0 or later) and Splunk Add-on for AWS (version 4.4.0 or later), then configure your CloudWatch EKS Logs inputs.
known_false_positives:Not all unauthenticated requests are malicious, but frequency, UA and source IPs will provide context.
References:
drilldown_searches:
  :
tags:
  analytic_story:
    - 'Kubernetes Scanning Activity'
  asset_type:Amazon EKS Kubernetes cluster
  confidence:50
  impact:50
  message:tbd
  mitre_attack_id:
    - 'T1526'
  observable:
    name:'user'
    type:'User'
    - role:
      - 'Victim'
  product:
    - 'Splunk Enterprise'
    - 'Splunk Enterprise Security'
    - 'Splunk Cloud'
  required_fields:
    - '_time'
    - 'user.username'
    - 'userAgent'
    - 'sourceIPs{}'
    - 'responseStatus.reason'
    - 'source'
    - 'responseStatus.code'
    - 'verb'
    - 'requestURI'
    - 'src_ip'
    - 'user.groups{}'
  risk_score:25
  security_domain:threat

tests:
  :
manual_test:None

Related Analytic Stories


Kubernetes Scanning Activity