深夜没有运行任务,OpenAI、Anthropic 和 Google AI 的消费提醒却同时响起。原因可能只是一串被复制的字符:API 密钥——软件调用云端模型的秘密凭证,也是一把会把费用记到用户名下的“机器钥匙”。这次,热门开源编码 Agent(能调用模型和开发工具自动完成编程任务)OpenCode 的云端控制台遭到入侵,便利的统一托管变成了直接通往用户账单的入口。
据 TechCrunch 和 InfoQ 报道,OpenCode 一套正在停用的旧系统遭到未授权访问,影响了 1.4% 的 OpenCode Console 用户。部分保存在 Console 工作区中的第三方模型 API 密钥可能泄露。多名用户随后报告未经授权的模型调用,异常费用从数百美元到超过 1,000 美元不等。需要说明的是,两篇报道的大量信息都来自 OpenCode 官方通报、联合创始人 Dax Raad 的帖子和用户自述,媒体间的相互印证不等于两套完全独立的一手证据。
失守的是云端 Console
这起事故不等于 OpenCode 的开源应用整体被攻破。Raad 表示,受影响范围限于云端 OpenCode Console;本地开源应用和命令行工具本身没有受到影响,因为这些工具使用的密钥不会交给 OpenCode。
问题出在另一种使用方式。Console 可以替用户保存第三方模型凭证,方便跨设备或团队协作。一旦托管系统失守,攻击者无需控制用户电脑,也不必登录其 OpenCode 账户;只要复制到仍然有效的密钥,就可能绕过 OpenCode,直接调用模型并由原账户付费。
InfoQ 转述的个案包括约 400 美元、单日超过 700 美元和超过 1,700 美元的异常消费。还有一名 Vertex AI 用户称,异常调用触发反欺诈风控,连带造成其 Google Cloud 生产账号停摆。这些数字来自单篇报道中的用户案例,不能视为普遍损失规模。
“蒸馏攻击”解释不了密钥怎么丢的
OpenCode 将事件称为或关联到“大规模模型蒸馏攻击”。模型蒸馏攻击,是通过大量查询收集强模型的输出,试图复制其行为。泄露的付费密钥确实可以提供大量调用额度,但这只可能描述攻击者拿到密钥后的用途,并不能解释密钥为何泄露。
目前材料没有公开攻击路径、调用日志或证明这些调用用于蒸馏的证据。因此可以确认的是平台遭到入侵、部分托管密钥可能外泄并出现异常账单;“盗刷确实为了模型蒸馏”仍未得到证实。
一处旧侧门,连着多家账户
这件事值得关注,不只因为 OpenCode 在 GitHub 已有超过 21 万颗星,而是它展示了 AI Agent 的供应链风险。用户信任的不只是底层模型,还包括 Agent、插件、云端控制台及其依赖系统。任何一环出问题,都可能把风险传到多个模型账户,甚至关联的生产系统。
攻击者还连续约 48 小时尝试侵入 OpenCode 系统。团队调用前沿 AI 模型协助分析时,部分恶意代码触发安全限制,模型一度拒绝继续处理;获得 OpenAI Daybreak Blue 权限后,调查能力才有所改善。这也暴露出防守难题:安全护栏有时无法区分攻击者与正在分析攻击载荷的响应人员。
善后方面,Anthropic 和 Google 封禁或撤销了被认为已经暴露的密钥;OpenAI 参与恢复访问,并处理攻击消耗额度的退款。OpenCode 表示,未经授权费用的退款仍在进行。对用户而言,仅修改 OpenCode 登录密码并不够:可能泄露的密钥需要在各模型服务商处撤销并重新生成,同时核对调用记录和费用。
局限与未知
- OpenCode 尚未披露攻击者如何进入旧系统、密钥如何保存,以及全部滥用范围。
- 1.4% 指 Console 用户,不代表 OpenCode 所有用户,也不能据此推算具体人数。
- “模型蒸馏”目前是官方定性或关联说法,攻击者的实际用途仍无公开证据。