Image: permiso.io · rights & removal
Mind the Gap: GCP serviceData in Logs Explorer vs. Exported Logs
Reporting by Permiso P0 LabsRead the original at permiso.io
Executive Summary
Investigation into GCP audit logs revealed an inconsistency regarding the `serviceData` field when moving data from native Logs Explorer to downstream analytics platforms. An event concerning the removal of audit logging across all services showed a fully populated `serviceData` structure in Logs Explorer, containing details about the policy change. However, the same event observed in the downstream analytics platform had an empty `serviceData`, suggesting data loss or stripping occurred during the export pipeline upstream of the analytics system.
The primary explanation offered is the deprecation of `serviceData`, which suggests the field's contents may no longer be populated for some events. However, observing multiple events revealed variable behavior: some `SetIamPolicy` events retained structured `serviceData`, while others had it stripped, regardless of the specific service or API method involved. This inconsistency implies that relying on documentation alone is insufficient when building detection logic.
This unpredictability poses risks for detection engineers, as a rule relying on `serviceData` might silently fail or produce false negatives if the field's presence is not guaranteed. Furthermore, the varying data fidelity means that events appearing identical in a downstream system may represent fundamentally different security states, leading to gaps in visibility and unreliable coverage assessments across the monitoring ecosystem.
Facts Only
* An event involving `SetIamPolicy` on `cloudresourcemanager.googleapis.com` service generated an entry.
* In GCP Logs Explorer, this event included a populated `serviceData` structure with a `policyDelta` sub-property detailing the action (REMOVE) and service (`allServices`).
* The same event in downstream analytics platforms showed an empty `serviceData`.
* Some events still populated `serviceData` correctly with structured `policyDelta` objects; other events produced empty `serviceData` objects.
* A different `SetIamPolicy` event from the same service did contain a fully populated `serviceData` structure in the downstream platform.
* Google documentation lists services that use `serviceData` for supplementary audit information, including App Engine, BigQuery, IAM, and Cloud Storage.
* The list of services using `serviceData` appears to change over time, as Cloud Storage was recently added.
Full Take
The core finding is that the state of a field like `serviceData` in log exports cannot be assumed based on documentation or static context; it reflects inconsistent behavior across events and pipelines. This points toward systemic fragility where observable security signals can be silently corrupted during transit, leading to detection gaps rather than obvious errors. The danger lies not just in lost data but in the erosion of trust in automated coverage.
The pattern observed is one of latent systemic failure masked by expected operational norms. An adversary exploiting a known defense evasion technique—disabling audit logging—can leverage this inconsistency: disabling auditing results in an event that fails to carry the critical signal (`serviceData`) needed for reliable detection, creating a blind spot. This demonstrates a potential vector for adversarial operations where manipulating the log pipeline introduces undetectable vulnerabilities into security monitoring.
The implication is a degradation of cognitive sovereignty for detection teams; coverage shifts from being auditable and deterministic to being probabilistic and continuously shifting based on undocumented internal variations. The focus must move beyond just fixing the field itself toward building resilience against telemetry degradation, treating the end-to-end path as an active source of potential compromise.
Bridge Questions: What testing methodology can be established to guarantee end-to-end fidelity for all log fields? How should detection engineering incorporate anomaly detection on log structure itself to flag instances where expected structured data is missing? Does relying on unified metadata patterns provide a more resilient foundation than relying on transient, potentially inconsistent supplemental fields?
From the original · Permiso P0 Labs
Hear Ye, Hear Ye Subscribe to Cloud Chronicles for the latest in cloud security! When building detection logic for Google Cloud Platform (GCP), an interesting and practically significant inconsistency surfaced around one specific field: serviceData .Read the full story at permiso.io
Sentinel — Human
This analysis presents a detailed forensic examination of inconsistent data fields within GCP logs, drawing complex implications for security detection engineering based on observed behavior rather than assumed documentation.
