1300万 Tokens 被刷光:一次 OpenAI API Key 泄露事故复盘

昨天打开 OpenAI API 后台的时候,我差点以为系统出 Bug 了。

账户余额显示:

-$125.66

第一反应是:

"我最近根本没怎么调用 API,怎么会欠费一百多美元?"

结果一查 Usage,发现事情远比想象中严重。

异常从 5 月 29 日开始

查看消费曲线后,我发现:

  • 5 月 29 日出现第一波异常请求

  • 6 月 5 日开始明显增长

  • 6 月 6 日彻底爆发

短短几天时间:

  • Total Spend:$167.34

  • Total Tokens:13,048,668

  • Total Requests:2,563

对于我这种个人开发者来说,这个数字完全不正常。

谁在疯狂调用我的 API?

进一步查看请求日志。

我发现大量请求都长这样:

"你是一位世界一流的图像描述大师......"

后面跟着数千字 Prompt。

任务内容几乎全部都是:

  • OCR识别

  • 图片分析

  • 图像描述

  • JSON结构化输出

更夸张的是,同一分钟内出现大量完全相同的请求。

正常用户不可能这样操作。

这明显是自动化脚本在批量执行任务。

API Key 是怎么泄露的?

目前我还无法100%确定泄露源头。

但根据我的排查结果,存在两个比较大的可能性。

可能一:AI 编程工具qoder中输入过 API Key

我曾经在 AI 编程工具qoder中输入过 OpenAI API Key。

可能二:App 被反编译获取 Key

这是我目前认为更值得警惕的风险。

很多独立开发者为了图方便,会把 OpenAI Key 直接写进 App:

ini 复制代码
OPENAI_API_KEY=sk-xxxx

或者:

makefile 复制代码
Authorization: Bearer sk-xxxx

如果这样做:

  • Android APK 可以被反编译

  • iOS IPA 也可以被提取资源和字符串

攻击者完全有机会拿到真实 Key。

如果 Key 一旦暴露,无论应用本身是否加密、是否混淆,都无法阻止别人直接调用 OpenAI API。

因此我也不排除是 App 包中的 Key 被提取后遭到滥用。

为什么预算限制没有拦住?

很多开发者都有一个误区:

设置:

ini 复制代码
Monthly Budget = $20

就认为最多只会消费 20 美元。

实际上并不是这样。

预算更多是告警机制。

当大量请求同时进入系统时:

  • 请求先执行

  • 费用后统计

因此即使预算设置为 20 美元,也可能最终产生远超预算的费用。

我的账户就是这样一路从正常余额变成:

-$125.66

我做了什么?

发现问题后,我第一时间:

  1. 撤销所有 API Key

  2. 停止相关服务

  3. 检查项目代码

  4. 排查 App 包

  5. 检查 AI 工具配置记录

  6. 导出 Usage 与 Billing 数据

  7. 向 OpenAI 提交账单申诉

目前正在等待官方审核结果。

给所有开发者的建议

不要把 OpenAI Key 放在前端。

不要把 OpenAI Key 打包进 App。

不要把 OpenAI Key 提交到 GitHub。

不要多个项目共用同一个 Key。

每个项目单独创建 Key。

定期轮换 Key。

开启 Usage 告警。

发现异常立即撤销所有 Key。

正确的做法永远是:

复制代码
App
 ↓
你的后端
 ↓
OpenAI API

而不是:

复制代码
App
 ↓
OpenAI API

因为只要 Key 出现在客户端,理论上就存在被提取的风险。

结语

这次事故总共消耗了超过 1300 万 Tokens。

损失虽然不算特别大,但足以给我上一课。

截至目前,我仍在继续调查 Key 的真实泄露源头。

无论最终结果是 AI 工具配置问题、客户端反编译问题,还是其他我尚未发现的环节,有一点已经非常明确:

在 AI 时代,API Key 的重要程度已经和银行卡密码没有本质区别。

一旦泄露,损失发生的速度可能远超你的想象。

希望这次经历能给所有独立开发者提个醒。

相关推荐
程序员cxuan1 天前
速度太快了!本地可以跑 DeepSeek-V4-Flash 了
人工智能·后端·程序员
阿祖zu1 天前
芝士就是力量!开源私有化部署与 GitHub 双向同步的个人知识笔记 App
前端·后端·ios
不才不才不不才1 天前
Spring 源码系列(16): doDispatch 全流程——一次请求的主干链路
java·后端·spring
IT_陈寒1 天前
SpringBoot自动配置失效?这个隐藏配置坑了我一整晚
前端·人工智能·后端
搜狐技术产品小编20231 天前
告别“黑盒”与误判:如何用“多智能体对抗辩论”重构内容安全审核系统
后端·多agent
DantyWei1 天前
controller注册及调用时机
后端
edwarddamon1 天前
Spring Cloud 配置热更新与 Bean 代理机制梳理
java·后端
码事漫谈1 天前
我用 Seed Evolving 做了个 AI 小说写作工具
后端
Raas1001 天前
MAIGateway,魔芋企业级AI网关的FinAPI成本竞争力设计
java·后端·网关·api网关·魔芋ai·finapi·mai gateway
计算机魔术师1 天前
传统基础架构 - 微服务
大数据·后端·微服务·架构·开发工具·编程语言