跳到主要内容

Token 消耗是你的 SOC 尚未监控的安全信号

· 阅读需 12 分钟
Tian Pan
Software Engineer

你技术栈中最灵敏的泄露信号并不在 SIEM 中。它隐藏在财务人员月初打开的一份电子表格里。当攻击者窃取了 LLM API 密钥、利用提示词注入(prompt injection)窃取数据,或者通过被入侵的租户会话查询相邻客户的内存时,痕迹首先会表现为 Token 使用异常——这远在任何 DLP 规则触发、任何身份验证警报响起或任何终端代理察觉到异常之前。财务看到了,而安全部门却没看到。

这种差距并非理论上的。Sysdig 的威胁研究团队在观察到攻击者利用窃取的云凭据产生每日五位数的账单后,创造了“LLMjacking”一词。这一类别现已演变成一个有组织的犯罪产业,出现了每个账号 30 美元的交易市场,且有记录显示某些活动让受害者的损失每天超过 100,000 美元。OWASP 记录了一家初创公司因为密钥泄露,在 48 小时内产生了 200,000 美元的账单。斯坦福大学的一个研究小组由于在 Jupyter notebook 中遗忘了一个 Token,在 12 小时内烧掉了 9,200 美元。所有这些事件的共同点是:在安全团队察觉之前,账单图表就已经在几个小时甚至几天前揭示了真相。

这种信号被忽略的原因是组织架构问题,而非技术问题。FinOps 掌控着 Token 仪表盘,因为 Token 就是金钱。安全团队掌控着事件响应流程,因为凭据意味着访问权限。两个团队都没有让对方的报警器响起来。Token 流是一个高信号、低误报的滥用检测器,同时也是一种成本控制手段——但它目前被放在了组织结构图中错误的一侧。

为什么 Token 支出优于传统的滥用信号

传统的凭据滥用检测依赖于那些不适用于 LLM API 的信号。这里没有登录行为,因此不会有“异地登录”告警。Cookie 中没有会话 Token,因此不存在会话劫持模式。终端代理看到的只是发往 api.openai.comapi.anthropic.com 的正常出站 HTTPS 连接——这与合法流量无法区分。DLP 工具无法判定一个出站 POST 请求是由用户指令触发的,还是由上下文窗口中注入的提示词触发的。当攻击在常规遥测数据中浮出水面时,账单已经非常巨大了。

Token 支出在三个对检测至关重要的方面与众不同。

首先,它受 经济规律限制。合法用户有其工作负载特征。一个产品有平均每个请求的 Token 数。一个智能体(agent)有收敛的“计划与执行”模式。入侵会以独特的方式打破这些特征:转售访问权限的攻击者会持续消耗推理资源;遭受提示词注入的智能体会发出包含泄露上下文的超大响应;而撞库攻击流水线会连续探测多个模型,以指纹识别该密钥可以访问的权限。这些模式看起来都不像该密钥上的合法流量。

其次,它是 可归因于主体 的。与在 VPC 或主机级别聚合的网络遥测不同,LLM API 日志包含 API 密钥(或 OAuth 主体)、模型、输入 Token 数、输出 Token 数、延迟,以及越来越多的工具调用(tool-call)特征。这是行为基线的天然主键。无论是按密钥、按会话还是按租户——你只要选定聚合方式,异常检测就会变成一个基础统计问题,而不是一个前沿研究难题。

第三,它 近乎实时到达。服务商会对每一个请求进行计量。虽然仪表盘可能会有延迟,但底层的日志流不会。针对 Token 速率的 CUSUM 检测器或针对输出 Token 长度的标准差门控,可以在当前计费小时内捕捉到异常,而不是等到下一个计费周期。

五种最明显的攻击模式

如果你将 Token 支出视为一种检测信号,以下是你在野外实际会看到的特征,以及每种特征通常代表的含义。

24/7 持续消耗。 合法密钥在夜间和周末会沉寂下来,但黑市上转售的访问权限不会。一个密钥的使用模式从零星的办公时间段转变为没有昼夜规律的平滑、高利用率曲线,这就是 LLMjacking 的教科书式特征。Sysdig 在凭据从一个有漏洞的 Laravel 安装中被窃取后,记录了针对 10 个云托管 LLM 服务的此类攻击。受害者的日志从单条请求看很正常,只有一周的整体趋势暴露了攻击。

异常模型激增。 Red Canary 记录的 Azure OpenAI 滥用模式,以及 OpenAI 社区报告中开发者突然被收取出其从未调用过的 gpt-4.5-previewchatgpt-4o-latest 模型费用的案例,都是同一种变体。攻击者获取密钥后,会枚举可用的模型,并开始在转售市场上最有价值的模型上进行消费。如果你基线中每个密钥的模型分布是 “97% gpt-4o-mini,3% embeddings”,而突然间十分之一的支出转移到了旗舰级推理模型上,那不是产品变更——那是别人的产品变更。

输出长度泄露。 提示词注入攻击通过从检索语料库或智能体的工具输出中读取数据,几乎总是会增加响应长度。如果你的聊天助手通常回答 50–100 个 Token,而某个会话突然开始发出 3,000 个 Token 且看起来像结构化数据的响应,那就是泄露的迹象。在响应日志上设置简单的输出 Token 长度门控是一个非常有效的第一道过滤。你寻找的攻击载荷在结构上就是庞大的。

重试风暴。 无限循环故障——典型的例子是 2025 年 11 月 LangChain 双智能体事件,在 11 天内烧掉了 47,000 美元——乍看之下与低频缓慢的滥用完全一致。两者都表现为持续的高请求率和适中的单次请求大小。不同之处在于,合法的重试风暴通常伴随着应用日志中匹配的错误率,而滥用则不会。将推理流与上游错误关联起来,就能区分“我们出 Bug 了”和“我们被攻击了”。

跨租户漂移。 在多租户产品中,某个租户 API 的泄露通常表现为该租户的 Token 模式开始悄悄地变得像另一个租户——相同的工具调用组合、相同的嵌入模型比例、相同的时间分布。这意味着有人在使用租户 A 的凭据执行租户 B 的任务,通常是通过共享内存进行的提示词注入跳转。这在原始账单中是看不出来的,但在按租户聚合的使用行为分析中则显而易见。

信号丢失的组织缝隙

这种现象大多未被察觉,原因并非检测困难,而是公司里根本没人被要求去做这件事。

FinOps 团队关注 token 开销,因为 token 是一项预算支出。他们的工具——Vantage、Amnic、内部仪表板、供应商控制台——都是针对分配、预测和成本归因进行优化的。当出现异常波动时,FinOps 的操作手册(runbook)是:找到有问题的服务,通知相关团队,检查是否存在浪费。在那本手册中,没有任何地方写着“创建一个安全工单”。在实际操作中,等到 FinOps 上报异常时,已经过去了 24 到 48 小时,攻击者早已拿着“战利品”逃之夭夭了。

与此同时,安全团队对这一信号几乎视而不见。推理流通常不会进入 SIEM(安全信息和事件管理系统)。即使进入了,也只是被截断的供应商元数据,而不是检测真正需要的每个 API key 的 token 计数。SOC(安全运营中心)没有正常状态的基准,没有将支出与 IAM 事件关联起来的仪表板,也没有将 token 激增视为入侵指标(Indicator of Compromise)而非预测失误指标的剧本(playbook)。FinOps 基金会 2026 年的调查结果非常严峻:98% 的企业正在管理 AI 支出;但只有 44% 的企业建立了财务防护栏,更不用说安全防护栏了。

弥合这一缝隙的成本并不高。你需要三样东西:来自每次 LLM 调用的结构化日志流(模型、主体、输入/输出 token、工具名称、延迟、租户、功能标签);一个运行在该流上的基准与偏差检测器;以及一条双向升级路径,以便计费端的异常能触发安全告警,而安全端的账号被盗能冻结支出。这些都不是需要半年时间才能完成的项目。大部分工作只需要一周的系统对接,以及一条 Sentinel、Splunk 或 Elastic 规则。

你可以在本季度建立的检测流水线

这个流水线的各个组成部分单独看都很乏味。其价值在于将这三者连接在一起。

在网关处输出结构化推理日志。 让每次 LLM 调用都通过你控制的代理或网关——LiteLLM、Envoy 过滤器、专用微服务,任何适合你的方式。记录每条请求的:时间戳、主体(API key ID,而非密钥原文)、租户、功能标签、模型、输入 token、输出 token、延迟、调用的工具名称以及请求树根 ID。这是流水线其余部分运行的基础架构,也是 FinOps 想要的数据结构,因此该数据流有两个用户。

在数据流上运行针对每个主体的基准检测器。 数学原理并不复杂。对关键指标(每分钟请求数、单次请求 token 数、输出长度、模型分布、工具组合熵)按主体进行滑动平均值和标准差计算,就能获得 80% 的价值。CUSUM(累积和)和 EWMA(指数加权移动平均)检测器可以捕捉到标准差阈值可能漏掉的缓慢漂移。在触发告警前,先用每个主体两三周的流量数据对检测器进行预热——常见的失败模式是在方差尚未稳定的预热期就触发告警。

将告警同时发送给 SOC 和 FinOps。 同一偏差应同时创建一个安全事件和一个成本告警。哪一个是主要的取决于模式:输出长度异常和错误模型激增首先路由给安全团队;持续的通宵消耗和重试风暴首先路由给 FinOps,并抄送给安全团队。随着时间的推移,路由规则会根据哪个团队正在处理哪类告警而自动调整。

最后一部分是安全端的剧本。当告警触发时,默认响应应该是:轮换密钥,对该密钥过去一小时的流量进行快照以供取证,通知所属团队,并冻结依赖该密钥的任何下游工作流,直到你确定这是由于账号被盗、失控的智能体(agent)还是合法的流量激增。最后一个分支——“合法的流量激增”——是保持信号有效性的关键;许多组织在第一次合法的业务上线触发检测器时就将其关停了。保留检测器,提高阈值,并保持事件处理手册的执行成本低廉。

当安全团队真正开始关注支出时,会发生什么变化

这里最深刻的转变并非技术层面的。而是 token 支出变成了“共同监管”的遥测数据。

一旦安全团队关注了这一数据流,许多原本无法察觉的相关滥用行为就变得可检测了。公共仓库中的凭据泄露——比如那些出现在“公共 LLM 训练数据集中发现 1.2 万个 API 密钥”报告中的情况——在第一次使用时就会被发现,因为一旦有人盗用,该密钥的使用特征会立即发生变化。针对智能体的提示词注入(Prompt-injection)攻击会表现为输出长度和工具组合的异常,而不再仅仅是模糊的用户投诉。多租户存储中的跨租户泄露会留下每个租户的使用指纹,这些指纹可以通过无监督聚类进行识别。一旦流水线建立,检测成本几乎为零;这只是在你已经收集的数据流上增加的一点边缘代码。

从长远来看,“token 遥测”将成为安全栈中的一个独立类别,就像今天的“网络遥测”和“身份遥测”一样。它与数据湖中的 IAM 日志和终端日志并列,在 SIEM 中拥有自己的检测规则,组织终于不再因为那些在安全团队无法访问的仪表板上留下明显痕迹的攻击而损失六位数的账单。基础设施已经就绪。唯一缺少的是将账单视为入侵检测器的权限。

在获得该权限之前,下一个公开的 LLMjacking(LLM 劫持)案例听起来仍会和上一个一模一样:受害者在月底才察觉,攻击者在第一周中期就已经撤离,而异常信号一直就躺在某个图表中。

References:Let's stay in touch and Follow me for more thoughts and updates