§ 01
What this tool does
GCP Forensics answers the first question of a cloud incident: was our Google Cloud project compromised, and how? It reads Cloud Audit Logs — the who-did-what-where record Google Cloud keeps for every API call — and VPC Flow Logs, then runs a set of detections written for the way real Google Cloud intrusions unfold.
You get a verdict (Clean, Suspicious or Compromised) with its reasons, the findings with their MITRE ATT&CK techniques and evidence entries, an incident timeline, a pivot on principals, service-account keys, IP addresses, projects and resources, and a prioritized remediation checklist.
Everything runs in your browser: a Rust parser compiled to WebAssembly streams the files in a Web Worker. Your logs, which contain e-mail addresses, IPs and resource names, never leave your machine.
§ 02
What it detects
- Stolen credentials: service-account keys created or uploaded, keys used from Internet IPs and from new IPs, impersonation (actAs, Token Creator), bursts of permission-denied calls.
- IAM takeover: Owner / Editor / IAM admin grants, personal gmail.com accounts and unknown domains added to IAM policies, organization-policy and custom-role changes.
- Compute abuse: startup-script backdoors, SSH keys injected in metadata, OS Login disabled, GPU instances, bursts of VM creations, VMs in never-used regions, firewalls opened to 0.0.0.0/0.
- Data theft: buckets and other resources made public (allUsers), bulk storage.objects.get, BigQuery copies to other projects, shared images and snapshots, large transfers to Internet IPs in VPC Flow Logs.
- Anti-forensics: log sinks deleted or modified, exclusions, log buckets and logs deleted, Data Access logging disabled, Security Command Center notifications removed, KMS key versions destroyed.
- Correlation: the same IP or principal moving from suspicious access to takeover actions is raised as a critical attack chain.
§ 03
Before the next incident
Collecting logs for the current incident? Use the collection guide under the drop zone.
To make sure the next investigation has the evidence it needs:
- No sink yet? Create one now (Logging → Log Router → Create sink → Cloud Storage) so the next events are preserved even if logs are deleted.
- Enable Data Access audit logs (IAM & Admin → Audit Logs) at least for Cloud Storage, IAM and Secret Manager: without them, data theft is invisible.
- Route audit logs of the whole organization to a locked bucket in a separate project that project owners cannot modify.
- Enable VPC Flow Logs on sensitive subnets.
§ 04
Limits
- No detection is not proof of absence: the verdict only covers the logs you dropped, and Data Access logs are off by default for most services.
- Heuristics point, they do not prove: a key used from a CI provider's IP or an owner granted to a consultant can be legitimate. Confirm each finding with its owner.
- GKE / Kubernetes API audit entries are handed to Kubernetes Forensics, and Google Workspace audit entries to Google Workspace Forensics.
- Up to 100,000 routine events are listed in the table (flagged ones are always kept); detections and entities cover every entry. Very large exports are limited by the browser's memory for the result, not for the input, which is streamed.
- BigQuery Avro / Parquet exports and Logs Explorer CSV downloads are not read: export as JSON.