Detection rules › Panther
GCP K8s New Daemonset Deployed
Detects Daemonset creation in GCP Kubernetes clusters.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Execution | T1610 Deploy Container |
Rule body yaml
AnalysisType: rule
RuleID: "GCP.K8s.New.Daemonset.Deployed"
DisplayName: "GCP K8s New Daemonset Deployed"
Description: "Detects Daemonset creation in GCP Kubernetes clusters."
Enabled: false
Status: Deprecated
Filename: gcp_k8s_new_daemonset_deployed.py
LogTypes:
- GCP.AuditLog
Severity: Medium
Tags:
- Deprecated
DedupPeriodMinutes: 60
Threshold: 1
Reference: https://medium.com/snowflake/from-logs-to-detection-using-snowflake-and-panther-to-detect-k8s-threats-d72f70a504d7
Runbook: Investigate a reason of creating Daemonset. Create ticket if appropriate.
Reports:
MITRE ATT&CK:
- TA0002:T1610 # Deploy Container
Tests:
- Name: privilege-escalation
ExpectedResult: true
Log:
protoPayload:
authorizationInfo:
- granted: true
permission: io.k8s.apps.v1.daemonsets.create
methodName: v2.deploymentmanager.deployments.insert
serviceName: deploymentmanager.googleapis.com
receiveTimestamp: "2024-01-19 13:47:19.465856238"
resource:
labels:
name: test-vm-deployment
project_id: panther-threat-research
type: deployment
severity: NOTICE
timestamp: "2024-01-19 13:47:18.279921000"
- Name: fail
ExpectedResult: false
Log:
protoPayload:
authorizationInfo:
- granted: false
permission: io.k8s.apps.v1.daemonsets.create
methodName: v2.deploymentmanager.deployments.insert
serviceName: deploymentmanager.googleapis.com
receiveTimestamp: "2024-01-19 13:47:19.465856238"
resource:
labels:
name: test-vm-deployment
project_id: panther-threat-research
type: deployment
severity: NOTICE
timestamp: "2024-01-19 13:47:18.279921000"
Detection logic
Condition
protoPayload.authorizationInfo is_not_null
protoPayload.authorizationInfo array_any
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
protoPayload.authorizationInfo | is_not_null |
Output fields
Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.
| Field | Source |
|---|---|
project | resource.labels.project_id |
principal | protoPayload.authenticationInfo.principalEmail |
caller_ip | protoPayload.requestMetadata.callerIP |
methodName | protoPayload.methodName |
resourceName | protoPayload.resourceName |
serviceName | protoPayload.serviceName |