Vercel泄露事件揭示AI代理的真正安全黑洞:OAuth权限正在成为新的攻击面
当人们将Vercel泄露归咎于AI时,他们忽略了真正的问题:不是AI被攻破,而是AI代理的权限模型正在创造前所未有的安全风险。这不是一个孤立事件,而是一个系统性的警示。
核心观点:Vercel泄露事件的核心问题不是AI被黑客攻击,而是AI代理的OAuth权限模型存在根本性缺陷,这正在重塑我们对AI安全的理解,未来每一个AI编码代理都可能成为攻击者利用的跳板。
Vercel泄露事件在科技圈引发了一场关于AI安全的争论,但争论的焦点几乎完全跑偏了。多数评论将这件事定性为"AI黑客攻击",仿佛某个邪恶的AI被注入了恶意命令,然后自主地攻破了Vercel的系统。这种叙事虽然耸动,却完全不是事实。真正发生的事情远比技术奇谈更值得警惕,也更直接地指向了我们正在构建的AI生态中一个被严重低估的漏洞:OAuth权限模型在AI代理时代已经过时了。
事件的经过其实相当清晰。一名Vercel员工授权了第三方AI工具Context AI访问自己的Google Workspace。Context AI是一个典型的AI代理工具,其核心能力就是代表用户在各种应用程序之间采取行动。这个工具本身没有问题,问题出在它的AWS环境被攻破了。攻击者窃取了存储在AWS上的OAuth令牌,然后利用这些令牌进入该员工的Google Workspace,再以此为跳板侵入Vercel的部分内部系统。注意,这里AI模型本身并没有被"黑",被利用的是AI代理背后的权限架构。
这件事暴露了一个深层的结构性问题。传统上,OAuth权限模型的设计理念是"最小权限原则":用户授权一个应用访问特定资源的特定操作,这个授权通常是一次性的、有范围限制的。但在AI代理的场景下,这种模型被推到了极限。AI代理需要代表用户执行复杂的多步骤任务,这意味着它必须持有广泛的、甚至是持续有效的权限。当AI代理的供应商将所有这些令牌集中存储在自己的服务器上时,一个单点的安全漏洞就可能意味着数千个用户的权限池同时被攻破。Context AI的遭遇正是这种风险的完美体现:攻破AWS存储,就等于拿到了所有用户的OAuth令牌。
这还不是最危险的。最危险的是这种权限模型与AI代理自主决策能力的结合。传统OAuth攻击的后果是可以预测的:攻击者可以获得邮件、文件或某些服务的访问权。但当AI代理被攻破时,攻击者获得的不是一个静态的账户,而是一个可以自主行动的"数字代理人"。这个代理人可以在系统内部穿梭,读取数据,修改配置,甚至代表用户做出决策。Vercel事件中,攻击者利用OAuth令牌进入了内部系统,但在未来的攻击中,攻击者完全可以利用AI代理的"行动"能力来执行更复杂的横向移动和权限提升。
有观点认为,这个问题可以通过加强AI供应商的安全措施来解决,比如加密存储令牌、定期轮换密钥等。这种看法过于乐观了。核心问题不在于安全措施的强度,而在于权限模型本身的设计假设。OAuth假设的是"应用"和"用户"之间的二元关系,它无法适应AI代理作为"自主执行者"的新角色。AI代理需要一种全新的权限模型,这种模型必须能够动态地、细粒度地控制AI的行动范围。例如,一个AI代理可以被授予"读取邮件"的权限,但不能被授予"发送邮件"的权限;或者可以被授予"在特定时间窗口内执行特定操作"的权限。当前的OAuth标准根本无法表达这种精细的约束。
更重要的是,我们不应该被"AI代理"这个名称误导而认为问题只局限于特定的AI工具。任何能够代表用户执行操作的软件实体都面临相同的风险。事实上,Vercel事件中使用的Context AI甚至不是最极端的例子。更常见的是,许多开发者日常使用的AI编码代理,比如GitHub Copilot的自动完成功能,或者各类支持"自动修复"的IDE插件,都在隐性地持有权限。当这些代理被配置为可以自动推送代码、创建拉取请求或修改配置文件时,它们就变成了潜在的风险入口。
有人可能会说,这是过度担忧。毕竟Vercel事件没有造成灾难性的后果,而且Context AI的安全漏洞已经被修复。这种看法忽视了问题的系统性。目前,几乎每个主流的AI编码工具都在使用类似的OAuth权限模型。每个工具的供应商都在自己的服务器上集中存储大量OAuth令牌。这意味着,只要攻破任何一个供应商的云基础设施,攻击者就可能获得对多个组织的内部系统的访问权限。而鉴于AI编码代理在开发者社区中的广泛使用,这种攻击的潜在收益是非常巨大的。
另一个被忽视的层面是,AI代理的权限问题正在从"工具安全"向"架构安全"转变。传统的安全建议是"不要信任第三方应用",这在AI代理时代几乎不可能实现。因为AI代理的核心价值就是能够跨应用操作,如果完全不信任任何第三方,AI代理就失去了存在的意义。因此,问题不再是"是否信任",而是"如何信任"以及"如何限制信任的范围"。当前的OAuth模型在这个问题上完全无能为力。
我们必须承认,这个问题的解决方案并不简单。它可能需要整个行业重新思考AI代理的权限设计。一种可能的方向是引入"代理级权限控制":不是让AI代理持有用户的OAuth令牌,而是让AI代理通过一个专门的权限代理服务来执行操作,这个服务可以实时评估每个操作的风险并决定是否允许。另一种方向是"零信任架构"在AI场景下的应用:即使AI代理已经通过了OAuth认证,每一次具体的操作也仍然需要重新验证。这些方案都有各自的技术挑战,但它们至少指向了正确的方向。
从更深层次看,Vercel事件揭示的不仅是技术漏洞,更是一种认知偏差。行业对AI安全的讨论仍然停留在"AI是否会被黑客攻击"的层面,仿佛AI是一个独立的实体。但实际的风险来自于AI与现有系统之间的接口:OAuth令牌、API密钥、数据库连接等。这些接口的设计并没有考虑到AI代理的自主执行能力,因此它们成为了最薄弱的一环。只要这个接口问题不解决,AI代理的普及就会带来不断升级的安全风险。
现在,每当一家公司宣布即将在其产品中集成AI代理功能时,我们真正应该问的不是"AI模型有多强大",而是"这个AI代理的权限模型有多安全"。Vercel事件是一个清晰的警告:在AI代理时代,安全不再是后置的修补工作,而是前置的架构设计。如果我们继续使用过时的OAuth模型来支撑最前沿的AI应用,那么"下一个更大的攻击"就不是会不会发生的问题,而是什么时候发生的问题。
参考来源
- Vercel breach wasn't an AI hack. But the blueprint works against every AI coding agent shipping today - https://www.reddit.com/r/AI_Agents/comments/1sub2kl/vercel_breach_wasnt_an_ai_hack_but_the_blueprint/
- Comfy raises $30M at $500M. Why open-source node workflows are crushing closed AI. - https://www.reddit.com/r/comfyui/comments/1sv1c87/comfy_raises_30m_at_500m_why_opensource_node/
- ✨ I open sourced my first Chrome extension 🚀 SuperLevels
- https://github.com/levelsio/superlevels
- I vibe coded it to replace all my Chrome extensions that are increasingly being bought up by spyware and malware companies who sell your data or worse hack your accounts and steal your stuff/money/data, which I'd call one of the top security risks right now
- For example: Chrome extensions can read your cookies or localStorage data, including session tokens, then login to your web or email accounts and hack you, they can inject code into any site to pull data form any site you browse, then break into your crypto accounts, drain your wallets, and selling your browsing history to ad companies, but that'd actually be the most favorable thing to happen of all these! Chrome extensions are just very very very unsafe
- So I coded my own, that I can trust because I made it, and I can read the source code: my extension is called 🚀SuperLevels and has all the features that the Chrome extensions I used to use have but all built into one safe one
- The cool thing is it's 100% open source and free, and you can audit the code first with AI yourself before installing it, and then if you do install it, customize it to your liking again with AI
- It has these features that improve my daily workflow while browsing the web:
- 🚮 Tab Cleaner
- Automatically closes inactive tabs after a configurable timeout (default: 5 minutes). Set excluded hosts to keep important tabs alive. View and re-open recently closed tabs.
- 🍪 Cookie Editor
- Full cookie manager for the current site. View, edit, add, and delete cookies. Export cookies as JSON. Expand any cookie to see and modify all fields including domain, path, SameSite, secure, and httpOnly flags.
- 🔀 Redirect Tracer
- See every redirect hop your browser took to reach the current page. Shows status codes (301, 302, 307, etc.) with a visual chain. Copy the full redirect chain to clipboard.
- 🌙 Dark Mode
- Instant dark mode for any website using CSS filter inversion. Adjustable brightness. Toggle per-site or globally. Images and videos are automatically re-inverted so they look normal.
- 𝕏 X Dim Mode
- Custom dim theme for X/Twitter with 7 color palettes: Dim, Slate, Jade, Plum, Dusk, Ember, or a custom hue. Live preview in the popup.
- ⚡ JS Toggle
- Disable JavaScript per-site with one click. Useful for debugging, reading articles without popups, or testing progressive enhancement. Page reloads automatically.
- 🚫 GDPR Cookie Consent Dismisser
- Auto-hides and auto-clicks cookie consent banners. Supports OneTrust, CookieBot, Didomi, Quantcast, GDPR plugins, and dozens more frameworks. Toggle off if a site breaks.
- 🎨 Live CSS Editor
- Write custom CSS for any website, applied in real-time as you type. Saved per-domain. Supports tab key for indentation.
- 📺 YouTube Unhook
- Removes YouTube distractions: no homepage feed, no sidebar suggestions, no end screen overlays, no Shorts. Search still works — just no algorithmic recommendations.
- 🎵 Music Recognizer
- Shazam-like music identification for any tab. Captures 10 seconds of audio and identifies the song via ACRCloud (free signup, bring your own API key). Results link to YouTube. History of recognized songs.
- 🖼 Picture-in-Picture
- Pop the largest video on the current tab into a floating PiP window with one click.
- 🗺 Google Maps Links
- Re-adds clickable Maps links and map preview cards to Google Search results.
- 🖼 View Image
- Adds a "View Image" button back to Google Images, linking directly to the full-size original image.
- {} JSON Formatter
- Auto-detects pure JSON response pages and formats them with syntax highlighting, collapsible sections, and a dark theme. Copy or view raw with one click. Never triggers on regular HTML pages. - https://nitter.net/levelsio/status/2047313968708898999#m