Exfiltration: Cloud SQL Restore Backup to External Organization
Stay organized with collections
Save and categorize content based on your preferences.
This document describes a threat finding type in Security Command Center. Threat findings are generated by
threat detectors when they detect
a potential threat in your cloud resources. For a full list of available threat findings, see Threat findings index.
Overview
Data exfiltration from a Cloud SQL backup is detected by examining
audit logs to determine whether data from the backup has been restored to a
Cloud SQL instance outside the organization or project. All
Cloud SQL instance and backup types are supported.
How to respond
To respond to this finding, do the following:
Step 1: Review finding details
Open an Exfiltration: Cloud SQL Restore Backup to External Organization
finding, as directed in Reviewing findings.
On the Summary tab of the finding details panel, review the
information in the following sections:
What was detected, especially the following fields:
Principal email: the account used to exfiltrate the data.
Exfiltration sources: details about the Cloud SQL instance
the backup was created from.
Exfiltration targets: details about the Cloud SQL instance
the backup data was restored to.
Affected resource, especially the following fields:
Resource full name: the resource name of the backup that was
restored.
Project full name: the Google Cloud project that contains
the Cloud SQL instance that the backup was created from.
Related links, especially the following fields:
Cloud Logging URI: link to Logging entries.
MITRE ATT&CK method: link to the MITRE ATT&CK documentation.
Related findings: links to any related findings.
Click the JSON tab.
In the JSON, note the following fields.
resource:
parent_name: the resource name of the Cloud SQL
instance the backup was created from
evidence:
sourceLogId:
projectId: the Google Cloud project that
contains the source BigQuery dataset.
properties:
restoreToExternalInstance:
backupId: the ID of the backup run that was restored
If necessary, select the project of the instance that is listed in the
projectId field in the finding JSON
(from Step 1).
On the page that appears, in the Filter box, enter the email address
listed in Principal email (from Step 1) and
check what permissions are assigned to the account.
Step 3: Check logs
In the Google Cloud console, go to Logs Explorer by clicking
the link in Cloud Logging URI (from
Step 1).
The Logs Explorer page includes all logs related to the relevant
Cloud SQL instance.
Review related findings by clicking the link on the Related findings row. (from
Step 1). Related findings have the same finding type on
the same Cloud SQL instance.
To develop a response plan, combine your investigation results with MITRE
research.
Step 5: Implement your response
The following response plan might be appropriate for this finding, but might also impact operations.
Carefully evaluate the information you gather in your investigation to determine the best way to
resolve findings.
Contact the owner of the project with exfiltrated data.
Consider revoking permissions the principal
that is listed on the Principal email row in the Summary tab of the finding details until the investigation is completed.
To stop further exfiltration, add restrictive IAM policies to
the impacted Cloud SQL instances.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["| Premium and Enterprise [service tiers](/security-command-center/docs/service-tiers)\n\nThis document describes a threat finding type in Security Command Center. Threat findings are generated by\n[threat detectors](/security-command-center/docs/concepts-security-sources#threats) when they detect\na potential threat in your cloud resources. For a full list of available threat findings, see [Threat findings index](/security-command-center/docs/threat-findings-index).\n\nOverview\n\nData exfiltration from a Cloud SQL backup is detected by examining\naudit logs to determine whether data from the backup has been restored to a\nCloud SQL instance outside the organization or project. All\nCloud SQL instance and backup types are supported.\n\nHow to respond\n\nTo respond to this finding, do the following:\n\nStep 1: Review finding details\n\n1. Open an `Exfiltration: Cloud SQL Restore Backup to External Organization` finding, as directed in [Reviewing findings](/security-command-center/docs/how-to-investigate-threats#reviewing_findings).\n2. On the **Summary** tab of the finding details panel, review the\n information in the following sections:\n\n - **What was detected** , especially the following fields:\n - **Principal email**: the account used to exfiltrate the data.\n - **Exfiltration sources**: details about the Cloud SQL instance the backup was created from.\n - **Exfiltration targets**: details about the Cloud SQL instance the backup data was restored to.\n - **Affected resource** , especially the following fields:\n - **Resource full name**: the resource name of the backup that was restored.\n - **Project full name**: the Google Cloud project that contains the Cloud SQL instance that the backup was created from.\n3. **Related links**, especially the following fields:\n\n - **Cloud Logging URI**: link to Logging entries.\n - **MITRE ATT\\&CK method**: link to the MITRE ATT\\&CK documentation.\n - **Related findings**: links to any related findings.\n4. Click the **JSON** tab.\n\n5. In the JSON, note the following fields.\n\n - `resource`:\n - `parent_name`: the resource name of the Cloud SQL instance the backup was created from\n - `evidence`:\n - `sourceLogId`:\n - `projectId`: the Google Cloud project that contains the source BigQuery dataset.\n - `properties`:\n - `restoreToExternalInstance`:\n - `backupId`: the ID of the backup run that was restored\n\nStep 2: Review permissions and settings\n\n1. In the Google Cloud console, go to the **IAM** page.\n\n \u003cbr /\u003e\n\n [Go to IAM](https://console.cloud.google.com/iam-admin/iam)\n\n \u003cbr /\u003e\n\n2. If necessary, select the project of the instance that is listed in the\n `projectId` field in the finding JSON\n (from [Step 1](#cloudsql_findings_backuprestore)).\n\n3. On the page that appears, in the **Filter** box, enter the email address\n listed in **Principal email** (from [Step 1](#cloudsql_findings)) and\n check what permissions are assigned to the account.\n\nStep 3: Check logs\n\n1. In the Google Cloud console, go to **Logs Explorer** by clicking the link in **Cloud Logging URI** (from [Step 1](#cloudsql_findings_backuprestore)). The **Logs Explorer** page includes all logs related to the relevant Cloud SQL instance.\n\nStep 4: Research attack and response methods\n\n1. Review the MITRE ATT\\&CK framework entry for this finding type: [Exfiltration Over Web Service: Exfiltration to Cloud Storage](https://attack.mitre.org/techniques/T1567/002/).\n2. Review related findings by clicking the link on the **Related findings** row. (from [Step 1](#cloudsql_findings_backuprestore)). Related findings have the same finding type on the same Cloud SQL instance.\n3. To develop a response plan, combine your investigation results with MITRE research.\n\nStep 5: Implement your response\n\n\nThe following response plan might be appropriate for this finding, but might also impact operations.\nCarefully evaluate the information you gather in your investigation to determine the best way to\nresolve findings.\n\n- Contact the owner of the project with exfiltrated data.\n- Consider [revoking permissions](/iam/docs/granting-changing-revoking-access#revoking-console) the principal that is listed on the **Principal email** row in the **Summary** tab of the finding details until the investigation is completed.\n- To stop further exfiltration, add restrictive IAM policies to the impacted Cloud SQL instances.\n - [MySQL](/sql/docs/mysql/instance-access-control)\n - [PostgreSQL](/sql/docs/postgres/instance-access-control)\n - [SQL Server](/sql/docs/sqlserver/instance-access-control)\n- To limit access to the Cloud SQL Admin API, [use\n VPC Service Controls](/vpc-service-controls/docs/overview).\n- To identify and fix overly permissive roles, use [IAM\n Recommender](/iam/docs/recommender-overview).\n\nWhat's next\n\n- Learn [how to work with threat\n findings in Security Command Center](/security-command-center/docs/how-to-investigate-threats).\n- Refer to the [Threat findings index](/security-command-center/docs/threat-findings-index).\n- Learn how to [review a\n finding](/security-command-center/docs/how-to-investigate-threats#reviewing_findings) through the Google Cloud console.\n- Learn about the [services that\n generate threat findings](/security-command-center/docs/concepts-security-sources#threats)."]]