您要是把 AI 接口密钥放在云托管平台的环境变量里,这条消息值得花两分钟看一下。简单讲:云平台 Railway 在 10 月 20 日至 21 日被入侵,攻击者解密了一部分客户的环境变量,专门挑 AI 服务商的密钥下手,盗刷金额约 74 万美元。
Railway 说,可能被解密的环境变量最多涉及 1.85% 的工作区,大约 10 万个。他们的日志能确定”最多影响多少个工作区”,但没法确定具体泄露了哪些密钥。另外,没有证据显示客户数据库被访问过。
先说结论:这次事件的关键点
| 项目 | 情况 |
|---|---|
| 入侵时间 | 10 月 20 日至 21 日 |
| 受影响范围 | 最多约 1.85% 的工作区(约 10 万个) |
| 主要目标 | AI 服务商密钥 |
| 盗刷金额 | 约 74 万美元 |
| 被访问的构建记录 | 353 个 |
| 关联账号令牌受影响用户 | 1,852 个 |
攻击者是怎么一步步进来的
根据 Railway 发布的事件报告,攻击链条大致是这样:
- 10 月 20 日,攻击者利用构建环境里一个此前未知的漏洞,部分绕过了文件系统隔离,拿到了构建服务器用来和其他系统通信的内部凭证。
- 凭这个凭证进入内部构建管理系统,读取构建历史和源代码。
- 利用一处配置不当的 OIDC 信任关系(简单说,就是”谁能换取临时云凭证”的规则设得太宽),换到临时云凭证。
- 进入一台负责基础设施编排的机器,那里存着一个有效期更长的凭证。
- 用这个凭证向密钥管理服务发起解密请求,把生产数据库里的客户环境变量解了出来。
这里有个细节:Railway 其实做了信封加密(每个环境一把独立密钥),但攻击者拿到的凭证可以直接让密钥管理服务代为解密,所以根密钥没被碰也照样中招。小编的看法是,加密只是一层,”谁有权要求解密”才是真正的门。
日志显示,攻击者专门搜索跟 AI 密钥相关的变量名,还优先挑变量数量多的环境。Railway 称,没有迹象表明客户的 Git 仓库被下载。
被盗的 AI 密钥后来怎么样了
Railway 正在和受影响的 AI 服务商协调退款,并承诺服务商不退的部分由自己承担。各家态度不一:
- AWS Bedrock 和 Google Gemini:已按现有欺诈政策启动退款。
- OpenAI 和 SpaceXSI:逐笔审核。
- Anthropic 相关费用:仍在沟通,期间由 Railway 先垫付。
- OpenRouter:坚持不退款,由 Railway 兜底。
此外,1,852 名用户的关联账号令牌(包括 GitHub OAuth 令牌和 AI Agent 密钥)也在泄露范围内。Railway 已重置这些令牌并通知用户,没有发现有人拿它们登录 Railway 账号。
Railway 认为这些凭证被转给了中间服务,用于模型蒸馏,但没法确认这些服务是否由原攻击者运营。被观察到的违规用量包括编码 Agent 请求和 AI 训练任务。
Wiz 的研究:这类盗用有多猛
安全公司 Wiz 在 Black October 调查里记录了未经授权使用付费 AI 模型的情况,这种做法叫 LLMjacking(盗用大模型额度)。他们分析了某受影响厂商的两个 AWS Bedrock 凭证:一个在 30 小时内产生约 80 万次 API 调用,另一个在 13 小时内产生约 170 万次,按标价估算合计超过 10 万美元。
Wiz 还发现有 AI 模型转售服务的基础设施测试过这些被盗凭证,但同样没法确定这些运营者是不是最初的入侵者。据《华尔街日报》11 月 11 日报道,被盗的 AI 算力正通过中间商低价倒卖。
另一起:Zeabur 也出了事
同样据《华尔街日报》,云开发平台 Zeabur 在 10 月也发生了独立事件,造成约 10 万美元欺诈费用。Zeabur 在 10 月 19 日的事件报告中说,攻击者利用泄露的内部凭证进入云基础设施,读取了平台数据库里的环境变量。排查发现权限过宽、长期管理员凭证明文存放等问题。
在 10 月 28 日的后续声明里,Zeabur 表示以目前的财务状况无法支付事件产生的第三方服务费用,只能协助客户向服务商申请退款或减免,并宣布将于 2026 年 12 月 31 日停止运营。
Railway 事后做了哪些加固
Railway 在 10 月 21 日把攻击者清出系统并停用了相关凭证,期间临时暂停构建、让用户会话失效,并联合 Google、OpenAI、Anthropic、GitHub 等吊销可能暴露的密钥。
不过,大量用户同时去换密钥、重新部署,让构建请求飙到平时的近百倍,加上新构建系统同步上线需要额外算力,构建功能到 10 月 22 日才在所有套餐上恢复,部分客户经历了停机。
- 新构建系统:每次构建分配独立的临时虚拟机,加一层隔离。
- 每次构建只拿到一个只能推送指定容器镜像的临时凭证。
- 集中记录加解密日志,客户机密只对授权服务开放。
- 已修复本次被利用的全部漏洞,并聘请外部取证专家继续调查。
您现在可以做什么
以下是小编根据这次事件整理的自查思路,不针对某个具体平台:
- 轮换放在云平台环境变量里的 AI 密钥,尤其是长期没换过的。
- 在 AI 服务商后台给密钥设置用量上限和告警,异常调用量能第一时间发现。
- 按用途拆分密钥,别一把密钥走天下,泄露时损失更容易控制。
- 检查账单有没有不明的高额调用,有的话尽快联系服务商申请欺诈退款。
- 顺手检查 GitHub OAuth 授权和各类 Agent 密钥是否还有必要保留。
常见问题(FAQ)
我用 Railway,一定受影响了吗?
不一定。Railway 称最多约 1.85% 的工作区变量可能被解密,但无法精确到具体哪些密钥。稳妥起见,建议直接轮换。
被盗刷的费用能退吗?
要看服务商。AWS Bedrock、Google Gemini 已启动退款,OpenAI 等在逐笔审核,OpenRouter 不退。Railway 承诺兜底服务商不退的部分。
客户数据库被访问了吗?
Railway 称没有证据显示客户数据库被访问,也没发现客户 Git 仓库被下载。
LLMjacking 是什么意思?
就是偷别人的 AI 接口密钥,白嫖或转卖大模型调用额度,账单由密钥主人买单。
环境变量加密了还会泄露吗?
会。这次就是攻击者拿到有权请求解密的凭证,不需要碰根密钥也能解出明文。所以权限管控和日志审计跟加密本身一样重要。