墨西哥初创公司遭遇天价账单:API密钥泄露引发安全与责任争议
“短短48小时内,一笔高达8.2万美元的费用凭空出现,较这家小型初创公司的正常月费暴涨近46000%。” 这并非虚构情节,而是一家墨西哥初创公司正在经历的真实危机。近日,开发者 RatonVaquero 在 Reddit 发帖求助,称其 Gemini API 密钥被盗用,导致原本每月约180美元(约1242元人民币)的费用,在48小时内激增至82,314.44美元(约56.8万元人民币)。对于这个仅由三名开发者组成的小型创业团队而言,这笔突如其来的账单无异于灭顶之灾。“我整个人都处在震惊和恐慌之中。” RatonVaquero 在帖子开头道。
初创公司遭遇“天价账单”
根据 RatonVaquerao 的描述,其 Google Cloud API 密钥在2月11日至12日期间被泄露,具体泄露原因不明,也未在软件中发现明显错误。随后,未知攻击者利用该密钥疯狂调用 Gemini 3 Pro 的图像与文本接口,最终在两天内累计产生了82,314.44美元的费用。对于这家三人小公司而言,这一数字极其夸张——其平时月支出仅为180美元。这意味着,此次异常调用产生的费用飙升至正常水平的约455倍。
发现异常后,团队立即展开紧急处理:删除被盗 API 密钥、禁用 Gemini 相关接口、更换所有访问凭证、全面启用双重验证,并收紧 IAM 权限配置。同时,他们向 Google Cloud 提交了支持工单,希望获得官方协助。然而,目前得到的回复并不乐观。
Google 在沟通中提到了“共享责任模式(Shared Responsibility Model)”。根据该原则,云平台负责基础设施安全,而账户与密钥的管理责任由用户自行承担。因此,即便是因密钥被盗导致的调用费用,也可能需要用户支付。“如果谷歌要求我们支付哪怕三分之一的费用,公司都会直接破产。” RatonVaquero 无奈表示,“我们只是墨西哥的三个开发者组成的小团队,目前勉强维持运营,寄希望于某个产品能够成功。” 截至目前,Google 尚未明确说明是否会强制要求该公司支付全部费用,也未表态是否会承担部分损失。
开发者的疑问:“为何缺乏基本的异常保护机制?”
此次事件让 RatonVaquero 对 Google Cloud 的安全机制产生质疑。在他看来,从每月180美元到48小时8.2万美元的支出暴涨,显然不属于正常波动,而是非常明显的异常行为。然而在使用过程中,Gemini 并未触发任何自动保护机制,例如在使用量骤增至历史水平数倍时自动停止服务、在费用出现极端增长时要求额外确认,或在异常情况下暂时冻结账户等待审核。对于一家小公司而言,这样的风险几乎是致命的。“这笔账单远远超过我们银行账户里的钱。” RatonVaquero 写道。
数千个 API 密钥可能被滥用
更值得注意的是,这起事件可能只是更大问题的一部分。据外媒 The Register 报道,美国网络安全公司 Truffle Security 的研究人员在扫描数百万个网站后发现,至少2863个 Google API 密钥原本仅用于标识计费项目,如今却可直接用于 Gemini API 身份验证。这意味着,一旦攻击者获取这些密钥,便可能直接调用大模型接口,不仅能访问相关账户中的上传文件与缓存数据,还能不断消耗 API 配额,将所有计算费用转嫁给密钥拥有者。
对此,Truffle Security 研究员 Joe Leon 发表长文进行了深度解析。该公司指出,问题的根源在于 Google Cloud 使用同一种 API Key 格式(以 AIza... 开头)来处理两种本质上完全不同的用途:公开身份识别与敏感认证。
多年来,Google 一直明确告诉开发者,API Key 可安全地嵌入客户端代码中。Firebase 官方安全清单也明确指出,API Key 并非机密信息(注意:这些 API Key 与用于驱动 GCP 的服务账户 JSON Key 完全不同)。Google Maps JavaScript 文档同样指导开发者将 API Key 直接粘贴到 HTML 中。这在当时是合理的:API Key 的设计初衷是作为项目标识符用于计费,并可通过 HTTP Referer 白名单等方式进行限制(尽管这些限制可能被绕过),它们并非设计为认证凭证。
然而,随着 Gemini 的出现,情况发生了变化。当你在 Google Cloud 项目中启用 Gemini API 时,该项目中现有的 API Key(包括那些已嵌入在网站公共 JavaScript 中的 Key)会在不发出任何警告、确认对话框或邮件通知的情况下,悄然获得访问敏感 Gemini 端点的权限。这带来了两个核心问题:
-
权限溯源扩张(Retroactive Privilege Expansion)
例如,三年前创建的 Maps Key 已严格按照 Google 指引嵌入网站源代码。上个月,团队某开发者为内部原型启用了 Gemini API。现在,这个公开的 Maps Key 变成了 Gemini 的认证凭证。任何抓取到它的人都可以访问你的上传文件、缓存内容,并让你的 AI 账单飙升——且无人通知你这一变化。 -
默认配置不安全(Insecure Defaults)
在 Google Cloud 创建新的 API Key 时,默认状态为“无限制”,意味着它立即对项目中所有已启用的 API(包括 Gemini)有效。UI 会显示“未经授权使用”的警告,但架构上的默认配置本身是完全开放的。
结果:成千上万原本用于计费的无害 API Key,如今成为了公开网络上的 Gemini 凭证。在这种情况下,攻击者可以:
- 访问你的网站,查看页面源代码,从 Maps 嵌入中复制
AIza...Key。 - 运行命令:
curl "https://generativelanguage.googleapis.com/v1beta/files?key=$API_KEY" - 结果不是
403 Forbidden,而是直接返回200 OK。
从此处开始,攻击者可以:
-
访问私有数据:
/files/和/cachedContents/端点可能包含上传的数据集、文档和缓存的上下文。项目所有者通过 Gemini API 存储的任何内容都可能被访问。 - 造成账单费用激增:Gemini API 的使用并非免费。根据模型和上下文窗口大小,攻击者若不断调用 API,单个受害账号每天可能产生数千美元的费用。
- 耗尽配额:这可能彻底中断你合法的 Gemini 服务。
攻击者甚至无需接触你的基础设施,仅需从公共网页抓取一个 Key 即可完成攻击。而当前墨西哥开发者 RatonVaquero 正在经历的正是上述情况之一。
漏洞披露后修复进展缓慢
实际上,Truffle Security 早在 2025年11月 就已向 Google 的漏洞披露项目提交相关报告,但当时 Google 将其认定为“预期行为”,并未引起重视。直到同年12月1日,研究人员提交了一个来自 Google 自身基础设施的案例——一个在2023年部署于公开网站上的 API 密钥,如今仍可直接调用 Gemini API——Google 才重新评估这一问题。
随后,Google 将该报告从“客户问题”重新归类为“系统漏洞”,提高了问题严重等级,开始推进修复工作,并向 Truffle Security 索要那2863个暴露密钥的完整清单。然而,截至 2026年2月2日,Google 向研究人员反馈称,仍在研究和努力修复问题。随着90天漏洞披露窗口期的结束,Truffle Security 团队将这一问题公开。研究员 Joe Leon 表示,目前尚未看到任何“具体结果”。
社区讨论:问题究竟出在哪里?
RatonVaquero 的遭遇在开发者社区引发了广泛讨论。有网友怀疑,事件是否与最近流行的“氛围编码”有关,认为自动生成代码的工具可能会在无意中泄露密钥。但 RatonVaquero 很快回应称,他们并未使用这类开发方式。也有开发者给出了更现实的建议:“说实话,坚持联系 Google 可能是唯一的办法,不要放弃,希望总是存在的。”
评论
发表评论