十月九个AI平台接连失守,你的API Key可能不止存在一处

源自369位全网作者

12:21

十月的AI编程圈不太平。Cursor插件市场被人塞了假Claude Code,OpenCode云端密钥疑似外泄,LiteLLM年内第二次被投毒。安全公司Wiz在10月30日把整月的事件串起来数了一遍:至少9个AI开发平台在30天里接连发布安全通告。Wiz

这些事故看着是各自独立的倒霉事,其实攻击者进门的方式高度一致——偷凭证。

十月的事故清单,指向同一种失守方式

按Wiz的盘点,10月披露出事的有:Fireworks AI(10月6日)、Andromeda(10月9日)、Zeabur(10月14日)、Lightning AI(10月15日)、OpenCode(10月16日)、Railway(10月20日)、Warp(10月23日)、CommandCode(10月28日)、Northflank(10月30日)。Wiz

这份名单之外,10月21日还有LiteLLM中招:恶意版本1.107.0从晚上10点39分挂到次日0点23分才下架,受污染的Docker镜像标签拖到凌晨1点20分才清理,维护者确认涉及凭证窃取。知乎

它是很多团队统一调用各家大模型的网关工具,手里握着全公司所有模型的API key。另一篇复盘给出的是周下载量约2300万、年内第二次被投毒的量级。知乎知乎

对一个网关来说,最直接的风险不是代码被改,而是钥匙先被用上:安全公司观察到,恶意版本发布后不到5小时,攻击者就开始拿偷来的AWS凭证调用Bedrock。知乎

十月九个AI平台接连失守,你的API Key可能不止存在一处

10月29日,轮到Cursor。北京时间当天下午五点半到30日凌晨四点半,Cursor自家插件市场里的Claude Code是假的——名字叫Claude Code,发布者写着Anthropic,装上以后界面照常,对话照常,代码也照常写。11个小时里,最多有5000人装上了它。它与正版的差别,只有主文件开头多出的66行代码:插件一加载,就收集主机信息、往authorized_keys里塞SSH公钥、尝试开反向隧道。知乎

偷到钥匙之后,账单是真的

OpenCode那起事件里,官方确认可能有1.4%的用户受到这次大规模数据攻击的影响,工作区里存着的OpenAI、Anthropic等外部服务密钥可能已经被人拿走。有用户OpenAI和Anthropic账户分别多出281美元和168美元的异常调用费用,还有人称损失达到约1700美元。知乎知乎

十月九个AI平台接连失守,你的API Key可能不止存在一处

Railway泄露的凭证更夸张。Wiz观察到有人拿存储在Railway里的加密货币密钥盗走了约37.1万美元;另一批被盗的AWS企业凭证,30小时里打了约80万次Bedrock调用,九成成功,其中Opus系列占成功调用的四分之三。零成本的算力,就是这么刷出来的。Wiz

盗刷的钥匙本身并不神秘。Wiz观察到的两个企业案例里,盗用者先用一个住宅IP在1分钟内把偷来的密钥跨多个组织试了一遍,成功后才继续滥用。钥匙能一试就灵,原因正是权限本身配得过宽。Wiz

为什么AI工具被集中盯上

原因不复杂:以前偷一个软件包,拿到的只是那个进程的权限;现在偷一份AI工具的凭证,拿到的是一串模型账单和云资源。回报率高了,动手的人自然多。

OpenCode和CommandCode都把自家事件明确归因为“蒸馏攻击”的尝试,攻击者偷别人账号里的模型额度来训练自己的模型。Wiz的判断是:这批攻击盯的不是代码,是存在环境变量里的AI访问权。Wiz

AI编程工具的权限边界也在放大问题。插件拿到的权限跟编辑器本身一样大,编辑器能做的事插件都能做。skill——给AI助手扩展能力的插件——的分发机制更粗放:所谓“注册表”只是GitHub搜索加星标数,安装动作是从任意仓库拉一条命令。NVIDIA的SkillSpector引用的研究扫了三万多个skill,26.1%至少含有一个漏洞,5.2%显示出可能的恶意意图。在这样的环境里,漏洞和恶意代码可以随一次正常的安装或更新被带进机器——攻击者不需要突破防御,只需要等这次更新发生。知乎

十月九个AI平台接连失守,你的API Key可能不止存在一处

普通开发者今天能做的四件事

第一,查机器。10月29日至30日凌晨在Cursor里装过或更新过Claude Code的,Mac上跑这一行:`grep -qs svc-telemetry ~/.ssh/authorized_keys && echo “svc-telemetry key found” || echo “No key found; machine not impacted”`。恶意扩展会把攻击者标注为svc-telemetry的公钥追加进你的SSH authorized_keys。输出found的,去Cursor官方公告页下载清理脚本,然后换一台干净的电脑,把这台机器上存过的、或它有权调用的密钥全部轮换——只卸载扩展没用,持久化脚本还在跑。Cursor官方公告

第二,清点你到底有几把钥匙。API密钥、云凭证、CI共享凭证、历史项目遗留的密钥,列一张清单。假Claude Code摸底时扫的就是环境变量名字,专挑带KEY、TOKEN、SECRET、AWS的。你列完这张表,大概率会发现钥匙比自己记得的多。知乎

十月九个AI平台接连失守,你的API Key可能不止存在一处

第三,把每把钥匙的权限收窄。不要一个全局高权限密钥用到底,按工具分桶、按环境分配,配上预算上限和过期时间(30到90天一换)。Wiz观察到的盗刷案例里,受害者的密钥policy允许global.跨区调用,攻击者的80万次调用就全走了这条路。另一个密钥只开了us.,盗刷者的第一批调用全部失败。同一个服务,钥匙配法不同,结局完全不同。Wiz

第四,给集中的钥匙串单独设防。OpenCode出事的是Console云端代管,LiteLLM出事的是集中转发的代理数据库,那里存着代理为所有下游团队转发请求时用的上游模型厂商API Key。集中管理本身没错,但那台机器等于全公司模型服务的钥匙串,值得单独的权限设计和预算告警。知乎

十月九个AI平台接连失守,你的API Key可能不止存在一处

这波事件里被偷的大多是凭证而不是源码,钱是从模型账单和云账户里流走的。要解决的不是“AI不安全”这个泛泛的命题,而是别让一次正常更新、一个第三方工作区,变成别人刷你账单的入口。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章