Azure AKS Certificate Signing Request Created or Approved
Detects an identity creating a client-authentication CertificateSigningRequest (signer kubernetes.io/kube-apiserver-client) or approving a CSR on AKS (Azure Kubernetes Service), excluding node bootstrap and platform…
Description
Detects an identity creating a client-authentication CertificateSigningRequest (signer kubernetes.io/kube-apiserver-client) or approving a CSR on AKS (Azure Kubernetes Service), excluding node bootstrap and platform controllers. Adversaries submit and self-approve a CSR against the kube-apiserver-client signer to mint a long-lived client certificate for an arbitrary subject (for example a Common Name in system:masters), giving durable authenticated access that survives token revocation. Coverage includes workload service accounts (system:serviceaccount:*), so a compromised in-cluster token forging a certificate is not excluded.
Detection logic
Its licence does not clear it for publishing here
Sunturai publishes a detection's own text where the licence it arrived under has been reviewed and permits it, and Elastic License 2.0 has not. The query as its source wrote it, its canonical form and the hash that pins this revision are in the workspace record.
Detection requirements
- Platform
- Identity ProviderLinuxmacOSWindows
The rule states no platform. This is derived from the ATT&CK technique it maps to.
- Log source category
- event_index
Known benign triggers
- Node bootstrap, cert-manager, and platform controllers legitimately create and approve CSRs. Validate the requesting identity and the certificate subject, and add exclusions for verified automation.
MITRE ATT&CK mappings
0 exclusive techniques.This is coverage no other published rule has; it is not this rule's total technique count.
References
| Reference | Cited by |
|---|---|
| cloud.google.com/blog/topics/threat-intelligence/escalating-privileges-azure-kubernetes-services | 5 |
| github.com/inguardians/peirates | 6 |
| kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/ | 6 |
| microsoft.github.io/Threat-Matrix-for-Kubernetes/ | 15 |
| raesene.github.io/blog/2022/12/21/Kubernetes-persistence-with-Tocan-and-Teisteanas/ | 4 |
| www.aquasec.com/blog/kubernetes-rbac-privilige-escalation/ | 4 |
From the source
- At source
- Open at source
- Upstream identifier
- 3f6c636a-1ca5-410c-bdad-f8b59a1f2b49
- Tagged by the source as
- Data Source: AzureData Source: Azure Platform LogsData Source: KubernetesDomain: CloudDomain: ContainersDomain: KubernetesNoise: UnknownPerformance: FastPlatform: AzurePlatform: KubernetesResources: Investigation GuideRule Type: Custom Query (KQL)Tactic: Credential AccessUse Case: Threat Detection
Licence
- Published under
- Elastic License 2.0Read the licence
- Attribution
- Required
Authorship
- Written by
- Published
- Sep 20, 2026
- Version
- 3