Last updated: April 16, 2026
This document identifies potential attack vectors and mitigation strategies for data confidentiality, integrity, and availability for BigQuery. The scope of this report is limited to your perspective, focusing on risks that you can manage within your BigQuery environment.
These threat models are a probabilistic assessment based on currently known attack vectors, architectural assumptions, and the system's specified scope at the time of publication. These models are not exhaustive and are intended to serve as a baseline for Google Cloud customers' security and risk assessments and to guide risk reduction decisions.
The following threats were identified for this service:
- Data destruction using schema tampering
- Privilege escalation using IAM allow policy tampering
- Confused-deputy abuse using BigQuery-triggered downstream services
- Data exfiltration using unrestricted network egress
- Data integrity drift using poisoned reference or lookup tables
- Data tampering using malicious load jobs
- Excessive IAM permissions leading to information disclosure
- Exfiltration using a transfer to attacker-controlled cloud project or account
- Information disclosure using misconfigured authorized views or row-level security logic
- Information disclosure using public or cross-project dataset exposure
- Insider misuse of authorized BigQuery access (legitimate queries used for malicious collection)
- Persistence using stealth BigQuery IAM bindings on datasets, authorized views, or scheduled queries
- Spoofing using compromised service account credentials or OAuth token used for BigQuery access
- Cost-based denial of service using expensive queries
Threat details
The following sections provide information about each threat, their manifestations, and their recommended mitigations.
Data destruction using schema tampering
An attacker with permissions to modify a table's schema can cause potential data loss or render the table unusable for downstream applications. This form of tampering targets the metadata and structure of the data, which can be as destructive as modifying the data itself.
| STRIDE category | Tampering |
|---|---|
| MITRE ATT&CK tactic | Impact |
| Manifestations |
Malicious schema update: A principal with the |
| Mitigations |
Strictly limit the |
Privilege escalation using IAM allow policy tampering
An attacker who compromises a principal with permissions to modify BigQuery IAM allow policies can escalate their privileges to gain full control over data resources. This threat lets the attacker grant access to read, modify, or delete sensitive data, bypassing existing access controls.
| STRIDE category | Elevation of Privilege |
|---|---|
| MITRE ATT&CK tactic | Privilege Escalation |
| Manifestations |
|
| Mitigations |
Strictly limit permissions that allow IAM allow policy modification (for example, |
Confused-deputy abuse using BigQuery-triggered downstream services
An attacker with limited BigQuery permissions creates a job or query that triggers a downstream service (for example, Cloud Function, Dataflow job, or Cloud Composer DAG), which runs with higher privileges. The downstream service, while thinking it's performing a legitimate action on behalf of BigQuery, is tricked into performing an action on a different resource or with different data than intended by the system designers.
| STRIDE category | Elevation of Privilege |
|---|---|
| MITRE ATT&CK tactic | Privilege Escalation |
| Manifestations |
|
| Mitigations |
Apply the principle of least privilege to service accounts used by downstream services triggered by BigQuery. Ensure that these services validate and sanitize any inputs or parameters received from BigQuery jobs. Use VPC Service Controls to restrict the network pathways and service interactions. Design downstream services to not inherently trust inputs from BigQuery without verification. |
Data exfiltration using unrestricted network egress
If network-level security controls aren't in place, a compromised internal principal can access BigQuery and exfiltrate sensitive data to an arbitrary location on the internet. Even with strong IAM controls, the absence of a network perimeter lets an attacker who has obtained valid credentials bypass location-based defenses and transfer data outside the trusted environment.
| STRIDE category | Information Disclosure |
|---|---|
| MITRE ATT&CK tactic | Exfiltration |
| Manifestations |
|
| Mitigations |
Implement network egress controls to mitigate data exfiltration to arbitrary external services. Implement a VPC Service Controls perimeter around the project that contains the BigQuery resources. This perimeter helps to restrict data exfiltration to Google Cloud services outside of the perimeter. Configure access levels for the perimeter to only allow API requests originating from trusted IP ranges or specific VPC networks, effectively preventing data from being accessed or moved outside the defined security boundary. |
Data integrity drift using poisoned reference or lookup tables
An attacker with write access to reference or lookup tables (for example, dimension tables) subtly modifies their content. Queries joining with these poisoned tables produce incorrect, misleading results, compromising the integrity of analytics and business decisions downstream, potentially without any obvious errors.
| STRIDE category | Tampering |
|---|---|
| MITRE ATT&CK tactic | Impact |
| Manifestations |
|
| Mitigations |
Strictly limit write access ( |
Data tampering using malicious load jobs
An attacker with sufficient permissions can intentionally corrupt or overwrite critical data in a BigQuery table by executing a malicious load job. This threat compromises the integrity of the data, which can lead to incorrect business analytics, application failures, and loss of customer trust.
| STRIDE category | Tampering |
|---|---|
| MITRE ATT&CK tactic | Impact |
| Manifestations |
|
| Mitigations |
Apply the principle of least privilege. Tightly control permissions like |
Excessive IAM permissions leading to information disclosure
Overly permissive IAM roles might allow excessive access to sensitive data stored in BigQuery tables. An attacker who compromises a principal with broad data access permissions can exfiltrate large volumes of data, leading to a significant data breach. This threat is realized when permissions such as bigquery.tables.getData or bigquery.jobs.create are granted at a wide scope (for example, at the project level) instead of being restricted to specific datasets or tables required for a business function.
| STRIDE category | Information Disclosure |
|---|---|
| MITRE ATT&CK tactic | Exfiltration |
| Manifestations |
|
| Mitigations |
Implement the principle of least privilege for all IAM allow policies. Grant permissions at the most granular level required (for example, specific BigQuery tables or datasets) rather than at the project level. Use least privilege IAM roles that contain only the necessary permissions (for example, |
Exfiltration using a transfer to attacker-controlled cloud project or account
An attacker uses BigQuery's data movement capabilities (for example, export jobs to Cloud Storage, cross-project queries, BigQuery Data Transfer Service) to move sensitive data from the secured project to a Google Cloud project or other cloud account under their control.
| STRIDE category | Information Disclosure |
|---|---|
| MITRE ATT&CK tactic | Exfiltration |
| Manifestations |
|
| Mitigations |
Implement VPC Service Controls to create a perimeter around the project, preventing data egress to projects outside the perimeter. Tightly control permissions like |
Information disclosure using misconfigured authorized views or row-level security logic
Flaws in the SQL logic of authorized views or row-level security policies result in broader data access than intended. Users querying the view or table might inadvertently access rows or columns that they shouldn't be able to see, bypassing the intended segregation.
| STRIDE category | Information Disclosure |
|---|---|
| MITRE ATT&CK tactic | Collection |
| Manifestations |
|
| Mitigations |
Implement a strict code review process for the SQL logic used in authorized views and row-level security policies. Test security logic thoroughly. Limit permissions (such as, |
Information disclosure using public or cross-project dataset exposure
Sensitive data is exposed because BigQuery datasets are inadvertently or maliciously made public (for example, using allUsers or allAuthenticatedUsers) or shared too broadly with other Google Cloud projects outside the intended trust boundary. An attacker can directly access or copy the data without authentication or by using any authenticated Google account.
| STRIDE category | Information Disclosure |
|---|---|
| MITRE ATT&CK tactic | Exfiltration |
| Manifestations |
|
| Mitigations |
Implement the principle of least privilege for dataset IAM allow policies. Use organization policies such as |
Insider misuse of authorized BigQuery access (legitimate queries used for malicious collection)
A malicious insider with legitimate access to BigQuery uses their authorized permissions to run queries and collect sensitive data for unauthorized purposes (for example, personal gain or espionage). While the access is authorized, the intent and use of the data are malicious.
| STRIDE category | Information Disclosure |
|---|---|
| MITRE ATT&CK tactic | Collection |
| Manifestations |
|
| Mitigations |
Enable and monitor Data Access audit logs to track data access patterns. Use tools like Sensitive Data Protection to scan query results for sensitive information. Implement User Behavior Analytics (UBA) to detect anomalous query patterns or data access volumes. Enforce clear data handling policies and provide security awareness training. Use row-level security and column-level security to limit data exposure even for authorized users. |
Persistence using stealth BigQuery IAM bindings on datasets, authorized views, or scheduled queries
An attacker, having gained initial access, establishes long-term presence by creating hard-to-detect access mechanisms within BigQuery. This threat includes adding IAM bindings to datasets, creating authorized views that query sensitive data, or setting up scheduled queries that run under a privileged service account to exfiltrate data or maintain access.
| STRIDE category | Elevation of Privilege |
|---|---|
| MITRE ATT&CK tactic | Persistence |
| Manifestations |
|
| Mitigations |
Regularly audit all IAM allow policies, including dataset-level permissions using tools like Security Command Center. Tightly control permissions for creating or updating datasets ( |
Spoofing using compromised service account credentials or OAuth token used for BigQuery access
An attacker obtains service account credentials (for example, exported JSON keys) and uses them to authenticate to BigQuery as the compromised service account, inheriting all its permissions. This threat lets the attacker perform any actions the service account is authorized to do, such as reading data, running jobs, or modifying resources.
| STRIDE category | Spoofing |
|---|---|
| MITRE ATT&CK tactic | Initial Access |
| Manifestations |
|
| Mitigations |
Avoid exporting service account keys. Instead, use attached service accounts or Workload Identity Federation where possible. If keys are necessary, rotate keys regularly, and grant the service account only the minimum necessary permissions. Monitor Cloud Audit Logs and Security Command Center for anomalous service account activity or key exposure. Use the |
Cost-based denial of service using expensive queries
An authenticated principal executes queries designed to consume excessive BigQuery resources (such as slots and bytes scanned). This threat can lead to massive cost overruns in on-demand projects or slot starvation for other users in reservation-based projects, hindering business operations.
| STRIDE category | Denial of Service |
|---|---|
| MITRE ATT&CK tactic | Impact |
| Manifestations |
|
| Mitigations |
Use BigQuery custom quotas to set user-level and project-level limits on query usage (for example, bytes scanned per day). Use the |