Elastic medium stable kql
GKE Client Certificate Signing Request Created or Approved
Detects creation or approval of a GKE CertificateSigningRequest (CSR) by a non-system identity. This is a breadth baseline rule for human or custom automation CSR activity on GKE. Attackers with cluster access can submit and approve CSRs to obtain long-lived client certificates that survive token revocation and RBAC changes. Use companion rules to evaluate signer choice, requested identity, and self-approval behavior.
Detection Logic
data_stream.dataset:"gcp.audit" and service.name:"k8s.io" and event.outcome:"success" and
event.action:(
"io.k8s.certificates.v1.certificatesigningrequests.create" or
"io.k8s.certificates.v1.certificatesigningrequests.approval.update"
) and not client.user.email:(
"system:gcp-controller-manager" or
"system:kube-controller-manager" or
"system:serviceaccount:kube-system:certificate-controller"
) and not (
event.action:"io.k8s.certificates.v1.certificatesigningrequests.create" and
client.user.email:(
"kubelet-bootstrap" or
"kubelet-nodepool-bootstrap" or
system\:node\:*
)
) False Positives
- ⚠ Approved certificate workflows (for example cert-manager, internal PKI rotation, or node bootstrap) may create or update CSRs from identities not in the exclusion list if they run under a custom service account. Baseline automation that legitimately approves CSRs and tune exclusions for those principals.
Field Validations
Loading…
Comments (0)
Loading comments...