Events
| Operation | Description | Sample | Rule |
|---|---|---|---|
| get-events | Reads a single Kubernetes Event (a routine status or warning record). Elastic's new-terms user-agent rule alerts on a not-previously-seen identity fetching it. | Y | N |
| list-events | Lists Events across a namespace, a low-cost way to reconstruct recent cluster activity. Elastic's new-terms user-agent rule covers a first-seen client doing this. | Y | N |
| watch-events | Opens a long-lived watch on Event creation, effectively tailing the cluster's activity log. Elastic's new-terms user-agent rule flags a first-seen client doing this. | Y | N |
| create-events | Y | N | |
| update-events | Y | N | |
| patch-events | Modifies an existing Event record. Unlike deleting an Event (a dedicated anti-forensics detection), patching one can quietly alter its recorded message or count. | Y | N |
| delete-events | Events deleted (defense evasion: clearing audit trail / event history). | Y | Y |
| deletecollection-events | Y | Y | |
| any-events | Synthetic aggregation for rules that filter the events resource with no specific verb. Not a distinct audit record; hosts rule listings that key on objectRef.resource alone. | N | Y |
get events
#Description
Reads a single Kubernetes Event (a routine status or warning record). Elastic's new-terms user-agent rule alerts on a not-previously-seen identity fetching it.
Example Audit Event #
{
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"level": "Metadata",
"auditID": "00000000-0000-0000-0000-000000000000",
"stage": "ResponseComplete",
"requestURI": "/api/v1/namespaces/dw-harn/events/dw-harn-events",
"verb": "get",
"user": {
"username": "kubernetes-admin",
"groups": [
"kubeadm:cluster-admins",
"system:authenticated"
],
"extra": {
"authentication.kubernetes.io/credential-id": [
"X509SHA256=97ca5ec05d5b7c1923d58d85f4449a4c26b2df61defa2a59b4045149ffed589e"
]
}
},
"sourceIPs": [
"203.0.113.10"
],
"userAgent": "kubectl/v1.36.2 (linux/amd64) kubernetes/24e2b02",
"objectRef": {
"resource": "events",
"namespace": "dw-harn",
"name": "dw-harn-events",
"apiVersion": "v1"
},
"responseStatus": {
"metadata": {},
"code": 200
},
"requestReceivedTimestamp": "2026-07-02T22:47:04.167980Z",
"stageTimestamp": "2026-07-02T22:47:04.169881Z",
"annotations": {
"authorization.k8s.io/decision": "allow",
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"kubeadm:cluster-admins\" of ClusterRole \"cluster-admin\" to Group \"kubeadm:cluster-admins\""
}
}
References #
list events
#Description
Lists Events across a namespace, a low-cost way to reconstruct recent cluster activity. Elastic's new-terms user-agent rule covers a first-seen client doing this.
Example Audit Event #
{
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"level": "Metadata",
"auditID": "00000000-0000-0000-0000-000000000000",
"stage": "ResponseComplete",
"requestURI": "/api/v1/namespaces/dw-harn/events?fieldSelector=metadata.name%3Ddw-harn-events",
"verb": "list",
"user": {
"username": "kubernetes-admin",
"groups": [
"kubeadm:cluster-admins",
"system:authenticated"
],
"extra": {
"authentication.kubernetes.io/credential-id": [
"X509SHA256=97ca5ec05d5b7c1923d58d85f4449a4c26b2df61defa2a59b4045149ffed589e"
]
}
},
"sourceIPs": [
"203.0.113.10"
],
"userAgent": "kubectl/v1.36.2 (linux/amd64) kubernetes/24e2b02",
"objectRef": {
"resource": "events",
"namespace": "dw-harn",
"name": "dw-harn-events",
"apiVersion": "v1"
},
"responseStatus": {
"metadata": {},
"code": 200
},
"requestReceivedTimestamp": "2026-07-02T22:47:07.701926Z",
"stageTimestamp": "2026-07-02T22:47:07.704129Z",
"annotations": {
"authorization.k8s.io/decision": "allow",
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"kubeadm:cluster-admins\" of ClusterRole \"cluster-admin\" to Group \"kubeadm:cluster-admins\""
}
}
References #
watch events
#Description
Opens a long-lived watch on Event creation, effectively tailing the cluster's activity log. Elastic's new-terms user-agent rule flags a first-seen client doing this.
Example Audit Event #
{
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"level": "Metadata",
"auditID": "00000000-0000-0000-0000-000000000000",
"stage": "ResponseComplete",
"requestURI": "/api/v1/namespaces/dw-harn/events?resourceVersion=1033&timeout=3s&watch=true",
"verb": "watch",
"user": {
"username": "kubernetes-admin",
"groups": [
"kubeadm:cluster-admins",
"system:authenticated"
],
"extra": {
"authentication.kubernetes.io/credential-id": [
"X509SHA256=97ca5ec05d5b7c1923d58d85f4449a4c26b2df61defa2a59b4045149ffed589e"
]
}
},
"sourceIPs": [
"203.0.113.10"
],
"userAgent": "kubectl/v1.36.2 (linux/amd64) kubernetes/24e2b02",
"objectRef": {
"resource": "events",
"namespace": "dw-harn",
"apiVersion": "v1"
},
"responseStatus": {
"metadata": {},
"code": 200
},
"requestReceivedTimestamp": "2026-07-02T22:47:04.329871Z",
"stageTimestamp": "2026-07-02T22:47:07.344565Z",
"annotations": {
"authorization.k8s.io/decision": "allow",
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"kubeadm:cluster-admins\" of ClusterRole \"cluster-admin\" to Group \"kubeadm:cluster-admins\""
}
}
References #
create events
#Example Audit Event #
{
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"level": "RequestResponse",
"auditID": "96a0f5db-6839-49a3-8d05-ade7c2cbe9a3",
"stage": "ResponseComplete",
"requestURI": "/api/v1/namespaces/default/events",
"verb": "create",
"user": {
"username": "system:node:ip-192-168-39-110.us-west-2.compute.internal",
"uid": "aws-iam-authenticator:591511147606:AROAYTOGP2RLF3VUCKG6C",
"groups": [
"system:bootstrappers",
"system:nodes",
"system:authenticated"
]
},
"sourceIPs": [
"203.0.113.10"
],
"userAgent": "kubelet/v1.27.7 (linux/amd64) kubernetes/bef43c9",
"objectRef": {
"resource": "events",
"namespace": "default",
"name": "alpine.179deef411c7c67e",
"apiVersion": "v1"
},
"responseStatus": {
"metadata": {},
"code": 201
},
"requestObject": {
"kind": "Event",
"apiVersion": "v1",
"metadata": {
"name": "alpine.179deef411c7c67e",
"namespace": "default",
"creationTimestamp": null
},
"involvedObject": {
"kind": "Pod",
"namespace": "default",
"name": "alpine",
"uid": "e1ccaa7d-3b12-4bbd-a662-427b01217947",
"apiVersion": "v1",
"resourceVersion": "857090",
"fieldPath": "spec.containers{alpine}"
},
"reason": "Pulling",
"message": "Pulling image \"alpine\"",
"source": {
"component": "kubelet",
"host": "ip-192-168-39-110.us-west-2.compute.internal"
},
"firstTimestamp": "2023-12-05T12:22:46Z",
"lastTimestamp": "2023-12-05T12:22:46Z",
"count": 1,
"type": "Normal",
"eventTime": null,
"reportingComponent": "kubelet",
"reportingInstance": "ip-192-168-39-110.us-west-2.compute.internal"
},
"responseObject": {
"kind": "Event",
"apiVersion": "v1",
"metadata": {
"name": "alpine.179deef411c7c67e",
"namespace": "default",
"uid": "a9d00852-ede3-4bb4-9672-014ac14fcc1e",
"resourceVersion": "857093",
"creationTimestamp": "2023-12-05T12:22:46Z"
},
"involvedObject": {
"kind": "Pod",
"namespace": "default",
"name": "alpine",
"uid": "e1ccaa7d-3b12-4bbd-a662-427b01217947",
"apiVersion": "v1",
"resourceVersion": "857090",
"fieldPath": "spec.containers{alpine}"
},
"reason": "Pulling",
"message": "Pulling image \"alpine\"",
"source": {
"component": "kubelet",
"host": "ip-192-168-39-110.us-west-2.compute.internal"
},
"firstTimestamp": "2023-12-05T12:22:46Z",
"lastTimestamp": "2023-12-05T12:22:46Z",
"count": 1,
"type": "Normal",
"eventTime": null,
"reportingComponent": "kubelet",
"reportingInstance": "ip-192-168-39-110.us-west-2.compute.internal"
},
"requestReceivedTimestamp": "2023-12-05T12:22:46.254365Z",
"stageTimestamp": "2023-12-05T12:22:46.262400Z",
"annotations": {
"authorization.k8s.io/decision": "allow",
"authorization.k8s.io/reason": ""
}
}
References #
update events
#Example Audit Event #
{
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"level": "RequestResponse",
"auditID": "00000000-0000-0000-0000-000000000000",
"stage": "ResponseComplete",
"requestURI": "/api/v1/namespaces/dw-harn/events/dw-harn-events?fieldManager=kubectl-replace&fieldValidation=Strict",
"verb": "update",
"user": {
"username": "kubernetes-admin",
"groups": [
"kubeadm:cluster-admins",
"system:authenticated"
],
"extra": {
"authentication.kubernetes.io/credential-id": [
"X509SHA256=97ca5ec05d5b7c1923d58d85f4449a4c26b2df61defa2a59b4045149ffed589e"
]
}
},
"sourceIPs": [
"203.0.113.10"
],
"userAgent": "kubectl/v1.36.2 (linux/amd64) kubernetes/24e2b02",
"objectRef": {
"resource": "events",
"namespace": "dw-harn",
"name": "dw-harn-events",
"uid": "00000000-0000-0000-0000-000000000000",
"apiVersion": "v1",
"resourceVersion": "1041"
},
"responseStatus": {
"metadata": {},
"code": 200
},
"requestObject": {
"kind": "Event",
"apiVersion": "v1",
"metadata": {
"name": "dw-harn-events",
"namespace": "dw-harn",
"uid": "00000000-0000-0000-0000-000000000000",
"resourceVersion": "1041",
"creationTimestamp": "2026-07-02T22:47:04Z",
"labels": {
"dw-harn-patched": "1"
}
},
"involvedObject": {
"kind": "Pod",
"namespace": "dw-harn",
"name": "dw-harn-event-target",
"apiVersion": "v1"
},
"reason": "DwHarnProbe",
"message": "detection.wiki harness synthetic event",
"source": {
"component": "dw-harn"
},
"firstTimestamp": "2024-01-01T00:00:00Z",
"lastTimestamp": "2024-01-01T00:00:00Z",
"count": 1,
"type": "Normal",
"eventTime": null,
"reportingComponent": "",
"reportingInstance": ""
},
"responseObject": {
"kind": "Event",
"apiVersion": "v1",
"metadata": {
"name": "dw-harn-events",
"namespace": "dw-harn",
"uid": "00000000-0000-0000-0000-000000000000",
"resourceVersion": "1041",
"creationTimestamp": "2026-07-02T22:47:04Z",
"labels": {
"dw-harn-patched": "1"
}
},
"involvedObject": {
"kind": "Pod",
"namespace": "dw-harn",
"name": "dw-harn-event-target",
"apiVersion": "v1"
},
"reason": "DwHarnProbe",
"message": "detection.wiki harness synthetic event",
"source": {
"component": "dw-harn"
},
"firstTimestamp": "2024-01-01T00:00:00Z",
"lastTimestamp": "2024-01-01T00:00:00Z",
"count": 1,
"type": "Normal",
"eventTime": null,
"reportingComponent": "",
"reportingInstance": ""
},
"requestReceivedTimestamp": "2026-07-02T22:47:07.625825Z",
"stageTimestamp": "2026-07-02T22:47:07.628589Z",
"annotations": {
"authorization.k8s.io/decision": "allow",
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"kubeadm:cluster-admins\" of ClusterRole \"cluster-admin\" to Group \"kubeadm:cluster-admins\""
}
}
References #
patch events
#Description
Modifies an existing Event record. Unlike deleting an Event (a dedicated anti-forensics detection), patching one can quietly alter its recorded message or count.
Example Audit Event #
{
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"level": "RequestResponse",
"auditID": "00000000-0000-0000-0000-000000000000",
"stage": "ResponseComplete",
"requestURI": "/api/v1/namespaces/dw-harn/events/dw-harn-events?fieldManager=kubectl-patch",
"verb": "patch",
"user": {
"username": "kubernetes-admin",
"groups": [
"kubeadm:cluster-admins",
"system:authenticated"
],
"extra": {
"authentication.kubernetes.io/credential-id": [
"X509SHA256=97ca5ec05d5b7c1923d58d85f4449a4c26b2df61defa2a59b4045149ffed589e"
]
}
},
"sourceIPs": [
"203.0.113.10"
],
"userAgent": "kubectl/v1.36.2 (linux/amd64) kubernetes/24e2b02",
"objectRef": {
"resource": "events",
"namespace": "dw-harn",
"name": "dw-harn-events",
"apiVersion": "v1"
},
"responseStatus": {
"metadata": {},
"code": 200
},
"requestObject": {
"metadata": {
"labels": {
"dw-harn-patched": "1"
}
}
},
"responseObject": {
"kind": "Event",
"apiVersion": "v1",
"metadata": {
"name": "dw-harn-events",
"namespace": "dw-harn",
"uid": "00000000-0000-0000-0000-000000000000",
"resourceVersion": "1041",
"creationTimestamp": "2026-07-02T22:47:04Z",
"labels": {
"dw-harn-patched": "1"
}
},
"involvedObject": {
"kind": "Pod",
"namespace": "dw-harn",
"name": "dw-harn-event-target",
"apiVersion": "v1"
},
"reason": "DwHarnProbe",
"message": "detection.wiki harness synthetic event",
"source": {
"component": "dw-harn"
},
"firstTimestamp": "2024-01-01T00:00:00Z",
"lastTimestamp": "2024-01-01T00:00:00Z",
"count": 1,
"type": "Normal",
"eventTime": null,
"reportingComponent": "",
"reportingInstance": ""
},
"requestReceivedTimestamp": "2026-07-02T22:47:07.417915Z",
"stageTimestamp": "2026-07-02T22:47:07.422315Z",
"annotations": {
"authorization.k8s.io/decision": "allow",
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"kubeadm:cluster-admins\" of ClusterRole \"cluster-admin\" to Group \"kubeadm:cluster-admins\""
}
}
References #
delete events
#Description
Events deleted (defense evasion: clearing audit trail / event history).
Example Audit Event #
{
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"level": "RequestResponse",
"auditID": "00000000-0000-0000-0000-000000000000",
"stage": "ResponseComplete",
"requestURI": "/api/v1/namespaces/dw-harn/events/dw-harn-events",
"verb": "delete",
"user": {
"username": "kubernetes-admin",
"groups": [
"kubeadm:cluster-admins",
"system:authenticated"
],
"extra": {
"authentication.kubernetes.io/credential-id": [
"X509SHA256=97ca5ec05d5b7c1923d58d85f4449a4c26b2df61defa2a59b4045149ffed589e"
]
}
},
"sourceIPs": [
"203.0.113.10"
],
"userAgent": "kubectl/v1.36.2 (linux/amd64) kubernetes/24e2b02",
"objectRef": {
"resource": "events",
"namespace": "dw-harn",
"name": "dw-harn-events",
"apiVersion": "v1"
},
"responseStatus": {
"metadata": {},
"status": "Success",
"details": {
"name": "dw-harn-events",
"kind": "events",
"uid": "00000000-0000-0000-0000-000000000000"
},
"code": 200
},
"requestObject": {
"kind": "DeleteOptions",
"apiVersion": "meta.k8s.io/__internal",
"propagationPolicy": "Background"
},
"responseObject": {
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Success",
"details": {
"name": "dw-harn-events",
"kind": "events",
"uid": "00000000-0000-0000-0000-000000000000"
}
},
"requestReceivedTimestamp": "2026-07-02T22:47:07.705576Z",
"stageTimestamp": "2026-07-02T22:47:07.717419Z",
"annotations": {
"authorization.k8s.io/decision": "allow",
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"kubeadm:cluster-admins\" of ClusterRole \"cluster-admin\" to Group \"kubeadm:cluster-admins\""
}
}
Common Indicators #
Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
azure.platformlogs.properties.log.verb (elastic rule field) | in | delete | 1 rule | elastic |
kubernetes.audit.stage (elastic rule field) | eq | ResponseComplete | 1 rule | elastic |
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries → AKS kube-audit events are carried under the flattened Sigma #
T1070Elastic #
T1070↳ also matches deletecollection-events: deletecollection events Investigation guide
Triage and analysis#
Investigating Azure AKS Kubernetes Events Deleted#
azure.platformlogs.properties.log.* subtree and share the ARM operation event.action: Microsoft.ContainerService/managedClusters/diagnosticLogs/Read. Kubernetes events record pod scheduling, image pulls, and other cluster activity. Deleting them (individually with delete, or in bulk with deletecollection) outside of known AKS control-plane and platform identities is a defense-evasion step to erase evidence of prior actions.Possible investigation steps#
azure.platformlogs.properties.log.user.username (and its groups in azure.platformlogs.properties.log.user.groups) and whether it should delete events. A username of masterclient (system:masters) is the AKS local cluster-admin certificate; workload service accounts (system:serviceaccount:<ns>:<sa>) deleting events are the higher-concern case.azure.platformlogs.properties.log.verb: deletecollection is a bulk wipe (e.g. kubectl delete events --all), while delete removes a single event. Review the target scope in azure.platformlogs.properties.log.objectRef.namespace / azure.platformlogs.properties.log.objectRef.name.azure.platformlogs.properties.log.userAgent to distinguish interactive tooling (kubectl) from automation or custom clients, and pivot on azure.platformlogs.properties.log.sourceIPs for the activity the deletion may be concealing (pod creation, exec, RBAC changes).False positive analysis#
system:*, which would blind the rule to compromised workload service accounts.Response and remediation#
References #
deletecollection events
#Example Audit Event #
{
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"level": "RequestResponse",
"auditID": "00000000-0000-0000-0000-000000000000",
"stage": "ResponseComplete",
"requestURI": "/api/v1/namespaces/dw-harn/events?labelSelector=dw-harn-patched",
"verb": "deletecollection",
"user": {
"username": "kubernetes-admin",
"groups": [
"kubeadm:cluster-admins",
"system:authenticated"
],
"extra": {
"authentication.kubernetes.io/credential-id": [
"X509SHA256=3ffde68ef687218e01296d94b0aa59c81cc98de2bd73ab70e21510c8cd4b9cec"
]
}
},
"sourceIPs": [
"203.0.113.10"
],
"userAgent": "kubectl/v1.36.2 (linux/amd64) kubernetes/24e2b02",
"objectRef": {
"resource": "events",
"namespace": "dw-harn",
"apiVersion": "v1"
},
"responseStatus": {
"metadata": {},
"code": 200
},
"responseObject": {
"kind": "EventList",
"apiVersion": "v1",
"metadata": {
"resourceVersion": "1040"
},
"items": [
{
"metadata": {
"name": "dw-harn-events",
"namespace": "dw-harn",
"uid": "00000000-0000-0000-0000-000000000000",
"resourceVersion": "1039",
"creationTimestamp": "2026-07-02T23:13:54Z",
"labels": {
"dw-harn-patched": "1"
}
},
"involvedObject": {
"kind": "Pod",
"namespace": "dw-harn",
"name": "dw-harn-event-target",
"apiVersion": "v1"
},
"reason": "DwHarnProbe",
"message": "detection.wiki harness synthetic event",
"source": {
"component": "dw-harn"
},
"firstTimestamp": "2024-01-01T00:00:00Z",
"lastTimestamp": "2024-01-01T00:00:00Z",
"count": 1,
"type": "Normal",
"eventTime": null,
"reportingComponent": "",
"reportingInstance": ""
}
]
},
"requestReceivedTimestamp": "2026-07-02T23:13:58.215865Z",
"stageTimestamp": "2026-07-02T23:13:58.221755Z",
"annotations": {
"authorization.k8s.io/decision": "allow",
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"kubeadm:cluster-admins\" of ClusterRole \"cluster-admin\" to Group \"kubeadm:cluster-admins\""
}
}
Common Indicators #
Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
azure.platformlogs.properties.log.verb (elastic rule field) | in | delete | 1 rule | elastic |
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries → AKS kube-audit events are carried under the flattened Elastic #
T1070↳ also matches delete-events: delete events Investigation guide
Triage and analysis#
Investigating Azure AKS Kubernetes Events Deleted#
azure.platformlogs.properties.log.* subtree and share the ARM operation event.action: Microsoft.ContainerService/managedClusters/diagnosticLogs/Read. Kubernetes events record pod scheduling, image pulls, and other cluster activity. Deleting them (individually with delete, or in bulk with deletecollection) outside of known AKS control-plane and platform identities is a defense-evasion step to erase evidence of prior actions.Possible investigation steps#
azure.platformlogs.properties.log.user.username (and its groups in azure.platformlogs.properties.log.user.groups) and whether it should delete events. A username of masterclient (system:masters) is the AKS local cluster-admin certificate; workload service accounts (system:serviceaccount:<ns>:<sa>) deleting events are the higher-concern case.azure.platformlogs.properties.log.verb: deletecollection is a bulk wipe (e.g. kubectl delete events --all), while delete removes a single event. Review the target scope in azure.platformlogs.properties.log.objectRef.namespace / azure.platformlogs.properties.log.objectRef.name.azure.platformlogs.properties.log.userAgent to distinguish interactive tooling (kubectl) from automation or custom clients, and pivot on azure.platformlogs.properties.log.sourceIPs for the activity the deletion may be concealing (pod creation, exec, RBAC changes).False positive analysis#
system:*, which would blind the rule to compromised workload service accounts.Response and remediation#
References #
any verb on events (synthetic aggregation)
#Description
Synthetic aggregation for rules that filter the events resource with no specific verb. Not a distinct audit record; hosts rule listings that key on objectRef.resource alone.
Common Indicators #
Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
kubernetes.audit.stage (elastic rule field) | eq | responsecomplete | 1 rule | elastic |
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Elastic #
T1078