
谷歌云API密钥存在严重的权限提升漏洞——传统对外公开的密钥会静默授予攻击者对Gemini AI端点的未授权访问权限,导致私有文件、缓存数据和计费AI服务面临泄露风险。
十余年来,谷歌一直明确要求开发者将格式为AIza...的API密钥直接嵌入客户端HTML和JavaScript代码。Firebase官方安全清单曾声明"API密钥并非机密",谷歌地图文档也指导开发者将密钥公开粘贴至网页。这些密钥最初仅设计为项目计费标识符,而非认证凭证。如今这些指导方针已严重过时。
当谷歌云项目中启用Gemini API(生成式语言API)时,该项目所有现有API密钥都会静默获得敏感Gemini端点的访问权限——既无警告弹窗,也无确认对话框,更不会向开发者发送邮件通知。

API密钥暴露情况(来源:Truffle Security)
三年前部署的地图嵌入密钥,可能在一夜之间变成能访问AI上传文件、缓存上下文和计费推理服务的有效凭证。
漏洞成因分析
Truffle Security研究人员发现,该问题本质是权限提升漏洞而非简单配置错误。关键因素在于事件顺序:开发者遵循谷歌指南将地图API密钥置于公开JavaScript代码后,其他团队成员又在同一云项目激活了Gemini API。公开密钥立即获得敏感Gemini端点访问权,而原始开发者从未收到通知。
该漏洞根源符合两项已知缺陷:CWE-1188(不安全的默认初始化)和CWE-269(错误的权限分配)。谷歌云中新API密钥默认设为"无限制",意味着从创建伊始就能访问项目中所有已启用API(包括Gemini)。
攻击者能做什么
攻击者无需任何基础设施即可实施攻击:访问公开网站→从页面源码提取AIza...密钥→直接查询Gemini API:
curl "https://generativelanguage.googleapis.com/v1beta/files?key=$API_KEY"
成功响应将返回200 OK,从而获取以下权限:
- 私有文件与缓存数据:通过
/files/和/cachedContents/端点暴露上传数据集、文档及存储的AI上下文 - 财务损失:攻击者可耗尽Gemini API配额或产生每日数千美元的受害者账单
- 服务中断:配额耗尽可能导致合法Gemini服务完全瘫痪
Truffle Security扫描2025年11月Common Crawl数据集(约700TiB公开网络内容存档),发现2,863个活跃谷歌API密钥存在此风险。受影响机构包括大型金融机构、安全公司、全球招聘企业及谷歌自身。研究人员确认,至少有一个自2023年2月就嵌入谷歌产品网站的密钥(早于Gemini问世时间)已静默获得Gemini模型端点的完全访问权。

Gemini访问权限的API密钥(来源:Truffle Security)
修复措施与现状
谷歌已公布修复路线图,包括:为AI Studio密钥设置限定默认值(默认仅Gemini访问)、自动拦截野外发现的泄露密钥、向开发者主动发送密钥暴露通知。但研究人员指出,截至披露日根本性修复仍在进行中,尚未确认是否完成架构级解决方案。
开发者应急指南
使用谷歌云服务(如地图、Firebase、YouTube数据API等)的组织应立即采取行动:
- 审计所有GCP项目:进入"API和服务">"已启用API",检查每个项目的"生成式语言API"
- 检查API密钥配置:标记所有无限制密钥或明确允许生成式语言API的密钥
- 确认无密钥公开:检查客户端JavaScript、公开代码库和CI/CD流水线中的
AIza...字符串 - 立即轮换暴露密钥:优先处理遵循旧版"密钥可安全共享"指南部署的陈旧密钥
- 使用TruffleHog扫描:执行
trufflehog filesystem /path/to/your/code --only-verified检测代码库中可访问Gemini的有效密钥
这种公开标识符静默获取敏感AI权限的模式,很可能不仅存在于谷歌。随着AI能力被快速集成到现有平台,传统凭证的攻击面将持续以始料未及的方式扩大。
参考来源:
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)


