4月19日,Vercel确认了一起安全事件。消息传出的那一刻,无数"氛围编程"(vibe coding)开发者可能正盯着屏幕——他们的前端托管全在这家平台上。
更扎心的是Vercel自己公布的数据:超过30%的部署现在由编码智能体发起,六个月内暴涨1000%。这些智能体部署的项目调用AI推理服务的频率,是人类部署的20倍。
![]()
AI生成的代码不再是边缘实验,而是现代网页交付的主力。这也意味着,一次普通的供应商泄露,被放大了整整一个量级。
泄露是怎么发生的
根据Vercel的公告,事件源头是一家小型第三方AI工具。它的谷歌工作空间OAuth应用遭遇了大规模入侵,牵连到了Vercel。
Vercel给出的客户建议清单很长:轮换所有环境变量、API密钥、数据库凭证、签名密钥、OAuth令牌。基本上,除了明确标记为敏感变量的内容,其他都得换。
敏感变量被设计为不可回读,Vercel称没有证据表明这些值被访问。但"没有证据"不等于"没有发生"——在安全领域,这是两个完全不同的概念。
真正的教训藏在细节里:风险早已不只是代码有bug。风险是OAuth应用、智能体、持续集成、托管服务、日志系统、环境变量处理之间的信任链条——全部外包给了第三方。
数据早就预警了
如果你读过Vercel自己发布的《安全氛围编程指南》,这次泄露不该意外。
他们披露,仅2025年7月,v0(Vercel的AI编程工具)就拦截了超过17,000次不安全部署。反复出现的问题模式包括:硬编码密钥、过度宽松的权限、环境变量管理混乱。
「快速AI辅助交付」和「更大的安全爆炸半径」是一对孪生兄弟,除非强制设置防护栏。
讽刺的是,Vercel一边推销让编程更快的工具,一边不得不给自己擦屁股。17,000次拦截说明问题足够普遍,普遍到需要自动化拦截——但也说明自动化拦截之前,已经有大量风险流入了生产环境。
三件事必须现在就做
任何用智能体写代码的人,都应该认真读一遍《OWASP大语言模型应用十大安全风险》。不是扫一眼,是认真读。
具体操作上,三个转变迫在眉睫:
第一,标记并隔离敏感参数。凭证、令牌、签名密钥——全部显式标注。智能体碰开发环境的环境变量不必过度紧张,但项目一旦对外暴露,立即轮换,确保开发管道里不留任何密钥痕迹。
第二,把接入的第三方工具视为生产威胁。说起来容易做起来难,但将新OAuth应用连接到托管/源码/持续集成系统时,人工审批的门槛应该比往常更高。这次Vercel事件并非始于Vercel,而是始于有人连接到Vercel的某个工具。
第三,保留机器行为的审计追踪。智能体会话、部署记录、权限授予——全部可追溯、可审查。如果你答不上来"哪个智能体、何时、用谁的凭证做了这件事",那你没有安全态势,只有一个故事。
信任链条正在重构
新兴的前端AI世界已经高度依赖Vercel式的部署模式,而Vercel的数字显示这个趋势还在加速。解决方案不是"停止智能体编程",而是对项目中每个连接的工具保持警觉。
迟早会有其中一个被入侵。问题只在于:你是从自己的审计日志里发现,还是从供应商的公告里得知?
这次泄露是一个警告信号。它暴露了一个被忽视的事实:当AI写代码的速度超越人类审查的能力时,安全边界被重新定义了。不是变宽了,是变模糊了——模糊到你可能根本不知道自己把钥匙交给了谁。
智能体编程的便利性建立在层层外包之上。OAuth给谷歌,托管给Vercel,推理给OpenAI或Anthropic,代码生成再给Cursor或Windsurf。每一环都是合理的商业选择,但串联起来,就是一个连专业安全团队都难以完全测绘的攻击面。
Vercel的30%智能体部署占比、1000%的六个月增长、20倍的AI推理调用频率——这些数字描绘的不是未来,是已经发生的现状。安全实践没有跟上这个速度。
传统的代码审查假设人类作者可以被问责、被培训、被追责。智能体呢?它的"作者"是训练数据、提示词、温度参数的组合。当出问题时,责任链条断裂在第一个API调用处。
更隐蔽的风险是环境变量的累积。一个项目从原型到生产,开发者可能轮换过十几次密钥,但旧值残留在日志、备份、协作工具的聊天记录里。智能体不会主动清理这些痕迹,它甚至不知道这些痕迹存在。
Vercel的17,000次拦截是防线,也是指标——说明攻击面已经大到需要机器来帮人类把关。但机器把关的机器写的代码,这个递归结构本身就需要新的安全范式。
OAuth妥协是经典攻击路径,但在智能体编程场景下被放大了。过去,一个开发者手动连接第三方工具,至少经过一次认知停顿。现在,智能体可以在一次会话中连接五个工具,开发者可能只看到最终的"部署成功"提示。
认知负荷被转移了,风险没有。
审计日志的要求听起来像老生常谈,但智能体场景下有新含义。"哪个智能体"意味着需要智能体身份标识,"何时"意味着需要与机器时间同步的精确时间戳,"用谁的凭证"意味着需要追踪凭证的委托链条。这些都不是传统日志系统的默认配置。
很多团队可能根本没有意识到,他们的智能体编程工作流已经创造了新的影子IT。一个开发者用个人API密钥让Cursor部署到Vercel,这个流程可能从未经过安全团队的审查——直到出事。
Vercel事件的特殊性在于,它击中了一个正在成形的行业标准。不是某个小众工具,是"氛围编程"的基础设施层。这类似于早期云计算时代的AWS安全事件,影响远超事件本身的技术细节。
如果Vercel这样的平台都需要通过公告告知客户轮换所有密钥,那么依赖类似链条的更小团队,安全基线在哪里?
智能体编程的 evangelists 喜欢强调速度:几小时从想法到上线。但安全债务的积累也是速度函数。17,000次拦截说明Vercel在试图减速,但用户端的惯性是加速。
一个可能的反驳是:传统编程也有安全问题,为什么盯着智能体不放?区别在于规模化和归因难度。一个人类开发者一周写多少代码,一个智能体辅助的开发者一天写多少?一个人类开发者的错误可以被代码审查捕获,一个智能体的"幻觉"可能只在特定输入下触发?
OWASP的LLM应用风险清单是起点,但不是终点。它主要针对应用层,而Vercel事件暴露的是基础设施层的信任问题。当智能体成为默认工作流,安全边界需要重新绘制在工具链的每个接口处。
最终,这次泄露提出了一个 uncomfortable 的问题:在智能体编程的世界里,"安全"是谁的责任?是平台的,是工具厂商的,还是最终用户的?Vercel的公告把行动项推给了客户,但客户中的很多人可能根本不知道自己的项目已经由智能体部署。
30%的部署占比意味着,大量用户可能从未主动选择智能体编程——他们用的工具默认开启了它。
当默认设置成为攻击入口,知情同意就成了奢侈品。这次泄露或许能推动一个更健康的生态:平台明确披露智能体参与的程度,工具提供更容易理解的安全配置,开发者——无论经验水平——都能对自己代码的供应链有基本可见性。
但在那之前,每次部署都是一次信任投票,投给一条越来越长、越来越模糊的链条。
你的下一个项目,准备怎么投这张票?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.