mirror of
https://github.com/splunk/security_content
synced 2026-06-08 17:32:49 +00:00
70 lines
2.9 KiB
YAML
70 lines
2.9 KiB
YAML
name: Kubernetes DaemonSet Deployed
|
|
id: bf39c3a3-b191-4d42-8738-9d9797bd0c3a
|
|
version: 1
|
|
date: '2023-12-14'
|
|
author: Patrick Bareiss, Splunk
|
|
status: production
|
|
type: Anomaly
|
|
description: The following analytic detects the creation of a DaemonSet in a Kubernetes cluster.
|
|
A DaemonSet ensures the presence of a specific pod on every node in the cluster, making it an ideal avenue for persistent access.
|
|
This behavior is identified by monitoring Kubernetes Audit logs for the creation of a DaemonSet.
|
|
The identified behavior is worth noting for a SOC as it could potentially allow an attacker to maintain persistent access to the Kubernetes infrastructure.
|
|
The impact of such an attack could be severe, leading to persistent attacks, service disruptions, or unauthorized access to sensitive information.
|
|
data_source: []
|
|
search: '`kube_audit` "objectRef.resource"=daemonsets verb=create
|
|
| fillnull
|
|
| stats count values(user.groups{}) as user_groups by kind objectRef.name objectRef.namespace objectRef.resource
|
|
requestObject.kind responseStatus.code sourceIPs{} stage user.username userAgent verb
|
|
| rename sourceIPs{} as src_ip, user.username as user
|
|
| `kubernetes_daemonset_deployed_filter` '
|
|
how_to_implement: The detection is based on data that originates from Kubernetes Audit logs. Ensure that audit logging is enabled in your Kubernetes cluster.
|
|
Kubernetes audit logs provide a record of the requests made to the Kubernetes API server, which is crucial for monitoring and detecting suspicious activities.
|
|
Configure the audit policy in Kubernetes to determine what kind of activities are logged. This is done by creating an Audit Policy and providing it to the API server.
|
|
Use the Splunk OpenTelemetry Collector for Kubernetes to collect the logs. This doc will describe how to collect the audit log file https://github.com/signalfx/splunk-otel-collector-chart/blob/main/docs/migration-from-sck.md.
|
|
known_false_positives: unknown
|
|
references:
|
|
- https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/
|
|
tags:
|
|
analytic_story:
|
|
- Kubernetes Security
|
|
asset_type: Kubernetes
|
|
confidence: 70
|
|
impact: 70
|
|
message: DaemonSet deployed to Kubernetes by user $user$
|
|
mitre_attack_id:
|
|
- T1204
|
|
observable:
|
|
- name: user
|
|
type: User
|
|
role:
|
|
- Attacker
|
|
- name: src_ip
|
|
type: IP Address
|
|
role:
|
|
- Attacker
|
|
product:
|
|
- Splunk Enterprise
|
|
- Splunk Enterprise Security
|
|
- Splunk Cloud
|
|
required_fields:
|
|
- user.groups{}
|
|
- kind
|
|
- objectRef.name
|
|
- objectRef.namespace
|
|
- objectRef.resource
|
|
- requestObject.kind
|
|
- responseStatus.code
|
|
- sourceIPs{}
|
|
- stage
|
|
- user.username
|
|
- userAgent
|
|
- verb
|
|
risk_score: 49
|
|
security_domain: network
|
|
tests:
|
|
- name: True Positive Test
|
|
attack_data:
|
|
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1204/kubernetes_audit_daemonset_created/kubernetes_audit_daemonset_created.json
|
|
sourcetype: _json
|
|
source: kubernetes
|