你每天点的那个“授权”按钮,让 Vercel 损失了 200 万美金!

3 阅读1分钟

4月19日,一则安全公告炸了整个开发者圈。

Vercel,Next.js的母公司。

全球前端部署市场22%份额的玩家。

被黑了‼️

同一天凌晨2:02,数据黑市论坛BreachForums上,有人开始叫卖Vercel的访问密钥、源代码和数据库。

标价200万美金。

加密货币付款,50万就能成交。

这不是什么小公司。

Next.js周下载600万次,全球开发者都在用。

而且,Vercel马上就要IPO了。

在这样的时间点被爆安全事件,你说要命不要命?!

说实话,这个事件让我这个搞了十几年网络安全的IT老兵,后背发凉。

不是因为它被攻破了。

而是因为攻破它的方式,跟你我每天干的事,一模一样。

到底发生了什么?

先给你捋一下时间线。

Context.ai的一名员工中了木马。

一个叫Lumma Stealer的信息窃取恶意软件,悄无声息地感染了他的设备。

攻击者拿到了这个员工在Context.ai的访问权限。

4月19日,Vercel发了一份1分钟读完的安全公告。

措辞克制,没有时间线,没有点名攻击者。

但同一时间,BreachForums上已经有人挂单了。

4月20日凌晨4:08,Vercel CEO Guillermo Rauch在X上做了详细复盘。

完整攻击链才被公之于众。

攻击链:三步干翻一个巨头

整个攻击过程,说人话就三步。

第一步:员工点了“授权全部权限”。

Vercel的一名员工,日常在用一个叫Context.ai的AI工具。

这东西是给企业搭专用AI Agent的,需要连接Google Workspace。

员工授权的时候,点了一个按钮。

“授权全部Workspace权限”。

这一下,等于把公司整个Google Workspace的钥匙,免费交给了Context.ai。

邮件、日历、文档、云盘,全给了。

第二步:Context.ai被攻破了。

Context.ai的员工中了Lumma Stealer木马。

攻击者通过这个木马,拿到了Context.ai系统的访问权限。

然后顺着Vercel员工之前给的那个OAuth授权,直接进入了他的公司Google Workspace账号。

不是Vercel的安全系统被绕过了。

是你授权的工具自己被攻破了!

第三步:横向移动,深入内网。

拿到员工的Google Workspace账号后,攻击者开始横向移动。

进入Vercel内部环境,枚举环境变量。

Vercel有两种环境变量:sensitive(加密存储)和non-sensitive(明文存储)。

sensitive的,攻击者读不到。

但non-sensitive的那些,直接暴露了。

攻击者通过这些未加密的环境变量,进一步拿到了更多权限。

Vercel CEO的原话:

**“**一个高度复杂、且我强烈怀疑被AI显著加速的攻击团队,以惊人的速度推进,对Vercel内部有深度理解。

被AI加速的攻击。

从一个AI工具的授权按钮开始。

三步,结束战斗。

黑市叫卖:200万美金

公告发出之前,黑市已经开张了。

卖家叫ShinyHunters,论坛认证管理员,1905信誉分。

标题:Vercel Database Access Key & Source Code。

配了一张截图,是Vercel内部user表的schema:

id、name、displayName、email、active、admin、timezone、createdAt、updatedAt、lastSeen...

明面要价200万美金

加密货币付款,50万成交

卖家还放了一句狠话:

**“**你发一个带payload的更新,全世界每个安装或升级这个包的开发者都会中招。

这是XZ Utils 2024那个剧本的精确描述。

不过Vercel CEO已经明确表示:Next.js、Turbopack和所有开源项目经过供应链审计后是安全的。

Vercel 周下载 600 万次的 Next.js 没事。

这一句,直接驳了卖家“全球供应链攻击”的卖点。

最该让你后背发凉的,是这个

你可能会想:Vercel是大公司,跟我有什么关系?

说真的,关系大了。

想想你每天在干什么:

你用Claude Code,给它项目文件夹的完整权限。

你用Cursor,让它读写你所有的代码。

你接入各种AI Agent,给它们OAuth授权。

你把API Key塞进环境变量,方便AI工具调用。

你跟那个Vercel员工做的事,有什么本质区别?

没有。

完全一致‼️

我做了十几年网络安全,“最小权限原则”喊了无数遍。

但在AI时代,这个问题直接翻了十倍。

为什么?

以前你授权的是一个内部系统,攻击面是可控的。

现在你授权的是一个第三方AI工具,你根本看不到它的攻击面

你不知道它后面连着谁。

你不知道它的安全水位在哪。

你不知道它的员工有没有中木马。

你把信任交给了它,但它的安全你完全不可控。

安全老兵的5条保命清单

聊到这里,作为搞了十几年网络安全的IT老兵,给你几条实打实的建议。

不管你是个人开发者还是企业IT,今天就能用。

⚠️ 1. 收窄OAuth授权范围

每次AI工具让你点“授权”的时候,先停三秒。

问自己:这个scope,真的需要这么宽吗?

能只读就别给读写。

能只授权一个项目就别给整个Workspace。

能只给邮箱权限就别把日历、文档、云盘全选上。

Vercel这个事件的核心教训:OAuth scope给得越宽,被攻破的代价就越高。

🔐 2. 所有敏感凭证打上“sensitive”标签

如果你用Vercel或者类似的云平台部署项目。

把所有的API Key、数据库密码、密钥,全部标记为 sensitive。

Vercel这次事件里,sensitive标记的变量是加密存储的,攻击者读不到。

没标记的,直接明文暴露。

一个小小的标签,可能就是200万美金的差距。

🔄 3. 定期轮换API Key和Token

不管有没有出事,至少每90天轮换一次所有API Key。

很多AI工具需要你的API Key才能工作。

Key泄露了你都不知道。

定期换,等于给门锁换钥匙。

旧钥匙被偷了也开不了门。

🔍 4. 今天就去审计你授权过的AI工具

打开你的Google Workspace、GitHub、npm、Vercel账号设置。

找到“已授权的应用”。

你会被吓一跳。

半年前授权过、早就不用了的AI工具,权限还开着。

Context.ai就是那种“小型第三方AI工具”。

你可能也授权过不少类似的东西。

今天就去清理一遍。不再用的,立刻撤销。

📋 5. 企业管理者:现在就定红线

如果你是团队管理者或IT负责人。

现在就该做一件事:制定团队AI工具使用规范。

至少包括:

  1. 哪类AI工具可以授权公司账号
  2. OAuth scope的上限是什么
  3. API Key必须存放的位置和加密标准
  4. 不再使用的AI工具必须撤销授权
  5. 定期审计的频率和责任人

这不是在限制团队效率。

这是在保命‼️

这件事最让我不安的,不是Vercel被黑

不是200万美金。

不是IPO前的尴尬。

是CEO的那句话:“我强烈怀疑被AI显著加速。”

这意味着什么?

攻击者也在用AI。

而且AI让攻击的速度、深度、精度,都上了一个台阶。

我们用AI来提效、写代码、做内容。

攻击者用AI来扫描漏洞、构造攻击链、横向移动。

同样的工具,不同的用途。

今天是Vercel。

明天是谁?

可能是你用的那个AI编程工具。

可能是你公司接的那个AI Agent。

可能是你随手授权的那个“小型第三方AI应用”。

AI工具的安全问题,不是“会不会发生”的问题。

是“下一家是谁”的问题。