防范令牌盗窃
TL;DR · AI 摘要
AI推理盗窃成本极高,单次调用可达2美元,攻击者通过伪造API适配器和住宅代理大规模盗用,Vercel已部署BotID深度分析防御,开发者可快速集成。
核心要点
- 单次前沿模型推理成本达2美元,是普通HTTP请求的百万倍,使推理盗窃成为高利润攻击目标。
- 攻击者使用OpenAI兼容适配器+住宅代理池绕过传统IP限流与认证,Vercel推荐在每次请求层部署BotID验证。
- 真实案例显示攻击流量可达1300 QPS,日成本超万美元,需在请求级而非会话级实施防护。
结构提纲
按章节快速跳转。
单次前沿模型调用成本高达2美元,使盗窃行为具备百万倍于HTTP请求的利润空间。
开放Prompt控制权的AI端点最易受攻击,如AI Playground,因其可无缝接入标准客户端。
IP限速和账户认证无法抵御攻击者批量采购住宅代理和临时账户的规模化绕过手段。
攻击者构建OpenAI兼容适配器,将被盗API封装为标准接口,便于下游转售并隐藏真实来源。
Vercel对每个AI请求强制执行BotID深度分析,开发者可通过几行代码在自有端点实现相同防护。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- AI推理盗窃防护
- 攻击动机
- 单次调用成本$2
- 百万倍于HTTP请求
- 攻击手法
- OpenAI兼容适配器
- 住宅代理池绕过
- 防御方案
- BotID请求级验证
- 开发者可快速集成
金句 / Highlights
值得收藏与分享的关键句。
单次前沿模型调用成本可达2美元,使AI成本比普通HTTP请求高出百万倍。
攻击者将你的端点封装为OpenAI兼容适配器,并通过住宅代理分发请求。
攻击峰值达每分钟1300次请求,日推理成本超一万美元。
5 分钟阅读
2026 年 5 月 29 日
HTTP 请求成本低廉。Vercel 的收费约为每百万次请求 2 美元,即每次调用不到一美分。但向前沿模型中的智能体发送一次提示可能花费 2 美元,使 AI 成本高出百万倍,而推理盗用也成为攻击者可运营的最高利润业务之一。我们已在自己的 API 上目睹过此类攻击。
如果你的 AI 端点暴露在互联网上,滥用风险极高,账单很容易飙升至数万美元甚至更高。
保护这些端点需要对每个 AI 请求进行验证,而非仅针对会话或注册环节。仅靠速率限制和身份验证墙是不够的,因为按会话执行一次的检查会被数千次被盗调用摊薄失效。
在 Vercel,我们通过 BotID 深度分析来拦截每一个 AI 请求,你也可以在自己的端点上用几行代码实现相同防护。
[链接标题](https://vercel.com/blog/protecting-against-token-theft#what-inference-theft-is)什么是推理盗用?
推理盗用是指未经授权使用他人付费的 AI 推理服务,用于免费消费或下游转售。运营商为每次 AI 调用付费,而攻击者无需支付任何推理费用,随后以折扣价转售令牌。这已超越简单的速率限制滥用,演变为在市场中实际转售被盗资源的行为。
[链接标题](https://vercel.com/blog/protecting-against-token-theft#which-ai-endpoints-are-at-risk)哪些 AI 端点面临风险?
任何面向互联网、允许调用方对 LLM 提示词施加实质性控制的端点都是目标。端点越通用,每次被盗调用的收益越高。
AI 沙盒环境(如 AI SDK Playground)是最危险的形式,因为调用方能完全控制提示词、模型及参数。被盗调用可无缝接入任何标准客户端。
当系统提示词固定于服务器端时,客服机器人和文档助手的风险较低,但攻击者已学会如何低成本绕过系统提示词,使转售变得可行。
转售价值取决于被盗调用能否轻松嵌入兼容提供商的客户端。
[链接标题](https://vercel.com/blog/protecting-against-token-theft#why-web-defenses-don't-mitigate-inference-theft)为何传统 Web 防护无法缓解推理盗用?
IP 速率限制和身份验证墙原本设计用于防御单位调用成本极低的攻击,那时伪造 IP 和账户并不划算。
而推理盗用带来的收益足够高,攻击者会批量采购住宅代理 IP,并注册大量一次性账户,规模足以突破你的防护。速率限制被分散到整个 IP 阵列中,真实账户则顺利通过认证。
[链接标题](https://vercel.com/blog/protecting-against-token-theft#the-architecture-of-abuse)滥用架构
高级攻击者会将你的自定义 AI 端点封装成兼容 OpenAI 或 Anthropic 的适配器,并通过住宅代理分发请求。
适配器是关键组件。它是一次性工程投入,将受害者的独特 API 呈现为 OpenAI 或 Anthropic 兼容格式,从而使被盗推理可直接接入任何标准编码代理或 SDK。即使以原价 5% 至 10% 的价格转售,且边际推理成本为零,也能带来丰厚利润。
近期案例是 Chipotlai Max,一个经过修改的编码代理项目,内置代理将 Chipotle 客服聊天机器人转换为 OpenAI 兼容端点。该项目公开征集帮助,计划将相同的推理盗用方法移植到 Home Depot、Lowe's、Target 和 Starbucks。
适配器还充当攻击者下游用户的会话边界。用户向适配器认证,而非你的端点。当请求抵达你的 API 时,它早已越过你原计划设防的边界。验证必须在适配器代理的请求上执行,而非其背后的会话。
[链接标题](https://vercel.com/blog/protecting-against-token-theft#the-shape-of-a-real-attack-on-our-own-endpoint)对我们自身端点的真实攻击形态
2026 年 4 月 12 日,Vercel 文档 AI 聊天端点流量激增至 Anthropic Claude Haiku 4.5 模型正常水平的约十倍。峰值达到每分钟 1,300 次请求,相当于每日推理成本超一万美元。
攻击通过住宅代理发起,掩盖了真实客户端 IP。在两天内数十万次机器人请求中,标准的每 IP 速率限制毫无作用。
[链接标题](https://vercel.com/blog/protecting-against-token-theft#how-to-defend-against-inference-theft)如何防御推理盗用
保护 AI 端点免受推理盗用需对每个请求进行验证。我们在路由处理器中调用 Vercel 的 BotID 进行深度分析,在 AI 请求到达前完成验证。
[链接标题](https://vercel.com/blog/protecting-against-token-theft#verification-has-to-run-on-every-ai-request)验证必须在每次 AI 请求时执行
如果我们的防护机制是在会话开始时运行,而不是每次请求都执行,攻击者只需支付一次绕过成本,就能带走数十万次被盗用的调用。任何按会话运行的检查都会将攻击者的绕过成本分摊到后续每一次推理调用中。而按请求执行的防护机制则将这一比例压缩至一比一——即使推理价格很高,每次调用都去攻破一道检查也得不偿失。
这正是成本不对称性对防御方有利的地方:推理是攻击者每次窃取中最昂贵的资源,而验证却是每次调用中最便宜的防护成本之一。
[链接标题](https://vercel.com/blog/protecting-against-token-theft#implementing-request-verification-with-botid-deep-analysis) 使用 BotID 深度分析实现请求验证
传统的图像验证码已无法抵御现代攻击者,因为那些让推理变得值得窃取的 AI 模型,同样能轻松绕过这些验证码。
我们在 AI 端点上部署了 Vercel BotID,对每个请求进行拦截。BotID 是一种隐形验证码,由 Kasada 提供支持,通过客户端机器学习技术在无需可见挑战的情况下区分人类与机器人,因此它可以在每次请求时运行,而非仅限于会话开始时。
BotID 的深度分析在流量激增的最初几分钟内就检测并阻止了一万多个机器人请求。24 小时内,该端点的请求量已恢复至正常水平。
在服务器端,checkBotId() 在路由处理器内部运行,并返回当前正在处理请求的分类结果:
// app/api/ai-chat/route.ts
import { checkBotId } from 'botid/server';
import { NextRequest, NextResponse } from 'next/server';
export async function POST(request: NextRequest) {
const verification = await checkBotId();
if (verification.isBot) {
return NextResponse.json({ error: 'Access denied' }, { status: 403 });
}
// 你现有的 AI SDK 调用路径
}客户端也必须声明该路由。否则 checkBotId() 会失败,因为 BotID 不会在请求中附加挑战头信息:
// instrumentation-client.ts
import { initBotId } from 'botid/client/core';
initBotId({
protect: [{ path: '/api/ai-chat', method: 'POST' }],
});请参阅 BotID 文档 获取 next.config.ts 包装器及完整设置说明。
[链接标题](https://vercel.com/blog/protecting-against-token-theft#protect-inference,-not-just-access) 保护推理,而不仅是访问权限
推理的成本仍远高于其所承载的请求成本,因此转售仍将有利可图,攻击者也会持续迭代攻击手段。
为保护你的 AI 端点:
- 审查哪些 AI 端点处于暴露状态
- 根据攻击可能性优先排序:调用者对提示词控制越强,目标越容易被攻击
- 对每个端点的每次请求都设置防护闸门
**使用 Vercel BotID 保护你的 AI 端点** 阻止机器人耗尽你的 AI 预算:了解如何通过几个步骤使用 Vercel BotID 为你的端点设置防护闸门。阅读指南