上次更新时间:2026 年 4 月 16 日
本文档针对 BigQuery 的数据机密性、完整性和可用性,确定了潜在的攻击媒介和缓解策略。此报告的范围仅限于您的视角,重点关注您可以在 BigQuery 环境中管理的风险。
这些威胁模型是基于当前已知的攻击途径、架构假设和发布时指定的系统范围进行的概率评估。这些模型并非详尽无遗,旨在为 Google Cloud 客户的安全和风险评估提供基准,并指导风险降低决策。
针对此服务,我们发现了以下威胁:
- 使用架构篡改来销毁数据
- 利用 IAM 允许政策篡改进行权限提升
- 使用 BigQuery 触发的下游服务进行“混淆代理”滥用
- 使用不受限的网络出站流量进行数据渗漏
- 使用中毒的参考表或查找表导致数据完整性漂移
- 使用恶意加载作业篡改数据
- 过高的 IAM 权限导致信息泄露
- 通过转移到攻击者控制的云项目或账号进行渗漏
- 使用配置错误的授权视图或行级安全性逻辑披露信息
- 使用公开或跨项目数据集暴露导致信息泄露
- 内部人员滥用授权的 BigQuery 访问权限(使用合法查询进行恶意收集)
- 通过数据集、授权视图或预定查询中的隐秘 BigQuery IAM 绑定实现持久性
- 使用遭入侵的服务账号凭据或用于 BigQuery 访问的 OAuth 令牌进行欺骗
- 使用高费用查询的基于费用的拒绝服务攻击
威胁详情
以下各部分将分别介绍每种威胁、其表现以及建议的缓解措施。
使用架构篡改来销毁数据
如果攻击者拥有修改表架构的权限,可能会导致潜在的数据丢失,或使下游应用无法使用该表。这种形式的篡改针对的是数据的元数据和结构,其破坏性与修改数据本身一样严重。
| STRIDE 类别 | 篡改 |
|---|---|
| MITRE ATT&CK 策略 | 影响 |
| 玻璃贴纸 |
恶意架构更新:具有 |
| 缓解措施 |
严格限制 |
利用 IAM 允许政策篡改进行提权
如果攻击者入侵了具有修改 BigQuery IAM 允许政策权限的正文,则可以提升其权限,从而完全控制数据资源。这种威胁可让攻击者绕过现有的访问权限控制,授予对敏感数据的读取、修改或删除权限。
| STRIDE 类别 | 提权 |
|---|---|
| MITRE ATT&CK 策略 | 提升权限 |
| 玻璃贴纸 |
|
| 缓解措施 |
严格限制允许修改 IAM 允许政策的权限(例如 |
使用 BigQuery 触发的下游服务滥用“confused-deputy”
攻击者拥有有限的 BigQuery 权限,但创建的作业或查询会触发下游服务(例如 Cloud Function、Dataflow 作业或 Cloud Composer DAG),而这些服务以更高的权限运行。下游服务在认为自己正代表 BigQuery 执行合法操作时,实际上是被诱骗对其他资源或使用与系统设计者预期不同的数据执行操作。
| STRIDE 类别 | 提权 |
|---|---|
| MITRE ATT&CK 策略 | 提升权限 |
| 玻璃贴纸 |
|
| 缓解措施 |
对由 BigQuery 触发的下游服务所使用的服务账号应用最小权限原则。确保这些服务验证并清理从 BigQuery 作业收到的任何输入或参数。使用 VPC Service Controls 限制网络路径和服务互动。设计下游服务时,请勿在未验证的情况下固有地信任来自 BigQuery 的输入。 |
使用不受限制的网络出站流量进行数据渗漏
如果未实施网络级安全控制措施,遭入侵的内部主账号可以访问 BigQuery,并将敏感数据泄露到互联网上的任意位置。即使有强大的 IAM 控制措施,但如果没有网络边界,已获得有效凭据的攻击者仍可绕过基于位置的防御措施,并将数据传输到受信任的环境之外。
| STRIDE 类别 | 信息披露 |
|---|---|
| MITRE ATT&CK 策略 | 渗漏 |
| 玻璃贴纸 |
|
| 缓解措施 |
实施网络出站控制,以降低数据渗漏到任意外部服务的风险。围绕包含 BigQuery 资源的项目实现 VPC Service Controls 边界。此边界有助于限制数据渗漏到边界外的 Google Cloud 服务。为边界配置访问权限级别,以仅允许源自可信 IP 范围或特定 VPC 网络的 API 请求,从而有效防止数据在定义的安全边界之外被访问或移动。 |
使用中毒的参考表或查找表导致数据完整性漂移
攻击者拥有对参考表或查找表(例如维度表)的写入权限,并巧妙地修改这些表的内容。与这些被污染的表进行联接的查询会生成不正确且具有误导性的结果,从而损害下游分析和业务决策的完整性,而且可能不会出现任何明显的错误。
| STRIDE 类别 | 篡改 |
|---|---|
| MITRE ATT&CK 策略 | 影响 |
| 玻璃贴纸 |
|
| 缓解措施 |
严格限制对参考表或查找表的写入权限 ( |
使用恶意加载作业篡改数据
如果攻击者拥有足够的权限,则可以通过执行恶意加载作业来有意损坏或覆盖 BigQuery 表中的关键数据。这种威胁会损害数据的完整性,从而导致业务分析不正确、应用故障和客户信任度下降。
| STRIDE 类别 | 篡改 |
|---|---|
| MITRE ATT&CK 策略 | 影响 |
| 玻璃贴纸 |
|
| 缓解措施 |
应用最小权限原则。严格控制 |
过多的 IAM 权限导致信息泄露
过于宽松的 IAM 角色可能会允许过度访问 BigQuery 表中存储的敏感数据。如果攻击者破解了具有广泛数据访问权限的主账号,则可能会窃取大量数据,导致严重的数据泄露。当授予 bigquery.tables.getData 或 bigquery.jobs.create 等权限的范围过大(例如,在项目级授予),而不是仅限于业务功能所需的特定数据集或表时,就会出现这种威胁。
| STRIDE 类别 | 信息披露 |
|---|---|
| MITRE ATT&CK 策略 | 渗漏 |
| 玻璃贴纸 |
|
| 缓解措施 |
针对所有 IAM 允许政策实施最小权限原则。授予所需的最低粒度级别的权限(例如,特定的 BigQuery 表或数据集),而不是项目级权限。使用仅包含特定任务所需权限(例如 |
使用转移到攻击者控制的云项目或账号的方式进行渗漏
攻击者利用 BigQuery 的数据移动功能(例如,将作业导出到 Cloud Storage、跨项目查询、BigQuery Data Transfer Service),将敏感数据从受保护的项目移动到其控制下的 Google Cloud 项目或其他云账号。
| STRIDE 类别 | 信息披露 |
|---|---|
| MITRE ATT&CK 策略 | 渗漏 |
| 玻璃贴纸 |
|
| 缓解措施 |
实现 VPC Service Controls,为项目创建边界,防止数据流出到边界外的项目。严格控制 |
因授权视图或行级安全性逻辑配置错误而导致信息披露
授权视图或行级安全政策的 SQL 逻辑存在缺陷,导致数据访问权限比预期更广泛。查询视图或表的用户可能会无意中访问他们不应看到的行或列,从而绕过预期的隔离。
| STRIDE 类别 | 信息披露 |
|---|---|
| MITRE ATT&CK 策略 | 集合 |
| 玻璃贴纸 |
|
| 缓解措施 |
针对授权视图和行级安全政策中使用的 SQL 逻辑实施严格的代码审核流程。全面测试安全逻辑。限制创建或更新视图和行级安全政策的权限(例如 |
通过公开或跨项目数据集暴露信息
敏感数据遭到泄露,原因在于 BigQuery 数据集被意外或恶意设为公开(例如,使用 allUsers 或 allAuthenticatedUsers),或者与预期信任边界之外的其他 Google Cloud 项目共享的范围过广。攻击者无需进行身份验证或使用任何经过身份验证的 Google 账号即可直接访问或复制数据。
| STRIDE 类别 | 信息披露 |
|---|---|
| MITRE ATT&CK 策略 | 渗漏 |
| 玻璃贴纸 |
|
| 缓解措施 |
针对数据集 IAM 允许政策实现最小权限原则。使用组织政策(例如 |
内部人员滥用已获授权的 BigQuery 访问权限(将合法查询用于恶意收集)
恶意内部人员拥有对 BigQuery 的合法访问权限,但他们会利用自己的授权权限来运行查询并收集敏感数据,以用于未经授权的目的(例如,个人利益或间谍活动)。虽然访问已获得授权,但数据的使用意图和方式是恶意的。
| STRIDE 类别 | 信息披露 |
|---|---|
| MITRE ATT&CK 策略 | 集合 |
| 玻璃贴纸 |
|
| 缓解措施 |
启用并监控数据访问权限审核日志,以跟踪数据访问模式。使用 Sensitive Data Protection 等工具扫描查询结果中是否存在敏感信息。实施用户行为分析 (UBA),以检测异常的查询模式或数据访问量。实施明确的数据处理政策并提供安全意识培训。使用行级安全性和列级安全性来限制数据暴露,即使是获得授权的用户也不例外。 |
通过数据集、授权视图或预定查询中的隐秘 BigQuery IAM 绑定实现持久性
攻击者在获得初始访问权限后,通过在 BigQuery 中创建难以检测的访问机制来建立长期存在。此威胁包括向数据集添加 IAM 绑定、创建查询敏感数据的授权视图,或设置在特权服务账号下运行的预定查询,以窃取数据或保持访问权限。
| STRIDE 类别 | 提权 |
|---|---|
| MITRE ATT&CK 策略 | 持久性 |
| 玻璃贴纸 |
|
| 缓解措施 |
定期审核所有 IAM 允许政策,包括使用 Security Command Center 等工具检查数据集级权限。严格控制创建或更新数据集 ( |
使用遭入侵的服务账号凭据或用于 BigQuery 访问的 OAuth 令牌进行欺骗
攻击者获取服务账号凭据(例如导出的 JSON 密钥),并使用这些凭据以遭入侵的服务账号的身份向 BigQuery 进行身份验证,从而继承该服务账号的所有权限。借助这种威胁,攻击者可以执行服务账号获授权执行的任何操作,例如读取数据、运行作业或修改资源。
| STRIDE 类别 | 仿冒邮件数 |
|---|---|
| MITRE ATT&CK 策略 | 初始访问 |
| 玻璃贴纸 |
|
| 缓解措施 |
避免导出服务账号密钥。请尽可能改用关联的服务账号或工作负载身份联合。如果必须使用密钥,请定期轮替密钥,并仅向服务账号授予必要的最低权限。监控 Cloud Audit Logs 和 Security Command Center,以发现异常的服务账号活动或密钥泄露情况。使用 |
使用高成本查询的基于费用的拒绝服务攻击
经过身份验证的主账号执行旨在消耗过多 BigQuery 资源(例如槽和扫描的字节)的查询。这种威胁可能会导致按需项目出现巨额成本超支,或者导致基于预留的项目中其他用户出现槽饥饿,从而阻碍业务运营。
| STRIDE 类别 | 拒绝服务攻击 |
|---|---|
| MITRE ATT&CK 策略 | 影响 |
| 玻璃贴纸 |
|
| 缓解措施 |
您可以使用 BigQuery 自定义配额,针对查询用量(例如每天扫描的字节数)设置用户级和项目级限额。在查询作业中使用 |