文章标题:Railway 称被盗的客户 AI 密钥导致约 74 万美元未授权使用费用
正文:

平台即服务提供商 Railway 昨日表示,客户存储在该平台上的 AI 提供商密钥在 10 月的一次入侵事件中被盗,并被用于约 74 万美元的未授权消费。该公司承诺,当 AI 提供商不予退款时,将自行承担这些费用。
该公司为客户构建并运行应用,并以环境变量的形式存储他们的密钥,例如 API 密钥和数据库凭据。攻击者解密了至多 1.85% 工作区(约 100,000 个)中的变量,其数据库查询专门寻找 AI 提供商密钥。
在 10 月 26 日的一份更新中,该公司对询问未授权 AI 消费退款的客户表示,“Railway 无法为使用泄露 API 密钥产生的消费向客户退款。”它鼓励客户直接联系 AI 提供商,并表示愿意代为升级他们的请求。
根据该公司的事件报告,被解密的数据还包括 1,852 名用户的关联账户令牌:BYOK agent 密钥和 GitHub OAuth 令牌。这些均已重置,每位用户都已收到通知,且未发现使用被盗凭据登录客户账户的情况。
除 AI 密钥外,攻击者的其中一条数据库查询还匹配到了云、数据库和支付服务凭据。该公司的取证未显示任何客户数据库被访问,也没有迹象表明客户的代码仓库被下载。
攻击者还读取了 353 次构建的存储历史,包括传递给这些构建的变量和密钥。
该公司的日志显示哪些环境被暴露,但不显示具体哪些变量,因此约 100,000 个工作区这一数字是上限。它已向判定为高风险的客户发送了邮件。
据该公司称,攻击者复制但未解密的任何数据已无法再被解密,因为攻击者使用的凭据已被禁用。
Railway 客户可以做什么
根据该公司的事件报告,各 AI 提供商的退款条款有所不同:
- AWS Bedrock:AWS 现有的退款政策涵盖欺诈情形,其客户团队已开始退款。
- Google Gemini:Google 现有的退款政策涵盖欺诈情形,其客户团队已开始退款。
- OpenAI:退款按个案审核。客户向 OpenAI 提交索赔,然后将案件 ID 转交给 Railway 的支持团队。
- SpaceXSI:退款按个案审核,客户向同一支持团队提交索赔。
- Anthropic:谈判仍在进行中,在此期间平台将承担因 Anthropic 密钥泄露产生的费用。
- OpenRouter:其服务条款维持不退款政策,因此平台将承担因本次入侵导致的所有 OpenRouter 相关费用。
客户被要求通过费用报告表报告非本人产生的费用。该表格称公司“不对这些密钥的使用负责”,但正在调查此次盗窃事件并与各提供商合作。
报告未说明 74 万美元这一数字是如何估算的,也未说明涵盖的时间段。报告和表格均未设定索赔上限或截止日期,也未说明在索赔审核期间客户是否必须支付有争议的费用。
该公司建议客户撤销并替换 10 月 21 日之前存储在该平台上的任何敏感变量。密钥应在签发它的提供商处撤销或轮换,因为提交费用报告并不会撤销密钥。
文章标题:Railway 称被盗的客户 AI 密钥导致约 74 万美元未授权使用费用
公司还建议移除数据库的公共网络访问、检查 GitHub 审计日志以及哪些应用可以访问该账户,并检查 Docker Hub 等注册表中的审计日志。这些建议大多来自公司 10 月的披露以及次日发布的一份报告。
出于谨慎,公司还向部分提供商提供了其为这些服务持有的所有密钥,因此重置请求触达了超过 100,000 名用户。提供商发出的吊销通知本身并不意味着一把密钥已被泄露。
Railway 入侵是如何发生的
根据其事件报告,攻击始于公司的构建系统。10 月 20 日 07:28 UTC,攻击者利用一个此前未知的漏洞,部分逃逸了构建周围的文件系统隔离,并读取了宿主机虚拟机上的一些文件。
这使攻击者获得了一份凭据,构建服务器用它来推送完成的镜像并访问某些内部系统。13:58 UTC,当一条警报标记出对某注册表服务的异常调用时,值班工程师被呼叫,此时距首次利用已过去约六个半小时。
该凭据本应仅用于构建工作,但公司内部的 Temporal 系统——它驱动构建流程的部分环节——将其作为受信任客户端接受。通过它,攻击者读取了其他构建的一些已存储历史记录。
同一凭据还可以获取代码的缓存快照。这使攻击者获得了公司内部 monorepo 的副本,这是其许多服务部署所依赖的代码库。公司表示,该副本向攻击者展示了平台的工作方式,并帮助他们找到漏洞利用方法并在系统之间快速移动。
在扫描该代码后,攻击者在公司某个云环境中发现了一个配置错误的 OIDC 绑定。该绑定是其部署系统获取短期云凭据的方式的一部分,10 月 21 日 03:26 UTC,攻击者利用该错误获取了一份凭据。
凭借该凭据,攻击者又从该云环境中获取了另外两份凭据。其中一份在内部网络内使用时可以读取生产数据库中的加密变量,另一份是 SSH 密钥。
该 SSH 密钥打开了一台为公司机群运行编排任务的机器。该机器存储了一份能够解密客户变量的凭据,这是启动客户工作负载所必需的。
每个环境的变量都用该环境自己的密钥加密,而这些密钥又由存储在云提供商密钥管理服务(KMS)中的根密钥加密。
10 月 21 日 04:07 至 05:21 UTC 之间,攻击者从数据库中拉取加密变量,寻找与 AI 提供商密钥匹配的名称。利用编排机器的凭据配合 KMS,它在 04:42 至 05:14 UTC 之间以及 06:36 至 07:15 UTC 之间解密了其中一些。
攻击者于当日 09:24 UTC 被完全从公司系统中清除。
这些时间与公司 10 月 22 日的初步报告不同,后者将攻击时间定为 10 月 20 日 13:58 UTC 起,并将解密置于 05:27 UTC 之后。
现在每次构建都在其自己的短生命周期虚拟机上运行,并叠加在旧隔离之上。其凭据只能向公司注册表推送一个特定镜像。
在公司修补最初的逃逸漏洞后一小时内,其自身的加固团队通过修改该攻击构建了第二个漏洞利用。这是公司一次性将所有用户迁移到新构建系统的原因之一。
公司表示,攻击者利用的每一个弱点现在都已关闭。它已向 FBI 的 IC3 提交投诉,并正与一家专业取证公司合作,调查仍在继续。
它目前私下分享入侵指标,并计划在执法部门同意后公布。
公司认为,被盗凭据被用于中继或转售 AI 提供商访问权限以进行蒸馏的服务。它尚未确定攻击者是否运营这些服务,也未指明攻击者身份。
文章标题:Railway 称被盗的客户 AI 密钥导致约 74 万美元未授权使用费用
正文: 在他们的 Black October 分析中,Wiz 研究人员将此次泄露列为至少九家 AI 开发者平台在 10 月披露的事件之一,其中包括较早的 OpenCode 泄露事件。
研究人员表示,每一份公开报告都描述了攻击者搜寻已存储的环境变量,尤其是那些授予 AI 访问权限的变量。这些攻击之间没有单一的缺陷或软件依赖关系将它们联系起来。