大模型拒绝服务攻击:资源耗尽与防御

大语言模型(LLM)服务每次推理都要消耗 GPU 显存、算力与带宽,且资源随上下文长度与并发量近似线性增长。攻击者无需攻破系统,只要用少量请求把资源池占满,就能让正常用户得不到响应。OWASP 在 LLM 应用十大风险中将其列为「LLM04:模型拒绝服务(Model Denial of Service)」【已核验,来源:OWASP Top 10 for LLM Applications】。本文只做防御科普,说明成因、手法、影响与多层防御,不提供任何可滥用的攻击载荷或完整利用代码。

一、定义与成因:资源为何被耗尽

拒绝服务(DoS)的目标不是窃取数据,而是让服务变慢或彻底不可用。LLM 服务的资源消耗与普通 Web 服务不同,具有两个放大特征。

  • 上下文越长,开销越大:Transformer 的自注意力复杂度随序列长度上升,推理时还需为每生成一个 token 缓存键值(KV)。超长输入相当于用一条请求占用大量显存与计算。
  • 并发越密,队列越堵:LLM 推理通常是批处理且串行占用算力,海量并发请求会填满批处理队列,使后续请求长时间排队甚至超时。

这意味着攻击者可以用「少数长请求」或「海量短请求」两种思路拖垮服务,而防御必须同时覆盖长度与速率两个维度。

资源消耗示意(定性)
单请求成本 ≈ f(输入长度) + f(输出长度) + 并发占用的批处理槽位
放大因子:长上下文拉高单请求成本,高并发拉满队列与带宽

二、典型手法:仅描述,不提供代码

防御方需要理解攻击思路才能布防,但以下仅做原理描述,不给出可复用的实现。

  • 占用 KV 缓存:构造接近模型最大上下文长度的输入,使单条请求长期占用显存与键值缓存,挤占其他请求的可用资源。
  • 诱导无限生成:利用高输出上限或易触发重复循环的内容,让模型持续生成直至达到上限,期间持续占用算力与带宽。
  • 并发洪泛:从多来源同时发起大量请求,填满服务的批处理队列与连接数,使正常请求排队超时。
  • 变体绕过:对输入做等价改写、分片或低频脉冲式发送,试图绕过简单的固定阈值限流。

这些手法常以组合方式出现:先用少量长请求占住资源,再以并发洪泛压垮剩余容量【待核实,具体组合效果依赖部署架构,仍属活跃研究课题】。

三、业务影响:成本爆炸与服务不可用

资源耗尽攻击对 LLM 业务有两重直接冲击。

  • 成本爆炸:多数推理按 token 计费或按算力结算,无限生成与长上下文会迅速放大账单,且闲置的排队请求同样消耗资源。
  • 服务不可用:队列打满后,正常用户的请求超时或返回错误,业务中断,严重时连带拖垮依赖该模型的其他功能。
  • 隐性损耗:即使未完全宕机,延迟升高也会降低转化率与用户信任,造成长期口碑损失。

对按量付费的云端部署而言,一次未设防的攻击可能在数小时内产生远超日常数十倍的开销【待核实,具体倍数取决于配额配置与单价】。

四、多层防御:限流、配额与输入约束

单一手段不足以应对组合攻击,应叠加以下层次。

  • 输入长度上限:在网关层限制请求的最大输入 token 数,拒绝或截断超出阈值的输入,从根源压低单请求成本。
  • 速率与并发限流:按用户、API Key 与 IP 做每秒请求数(RPS)与并发数限制,结合令牌桶算法平滑突发流量。
  • 输出配额:为每次请求设置合理的 max_tokens 上限,并启用生成步数或时长硬上限,防止单请求无限占用。
  • 排队与优先级:引入队列与优先级调度,保障付费或核心用户的资源配额,限制单用户可占用的批处理槽位。
  • 异常检测与熔断:监控队列深度、显存占用与单位时间账单,触发阈值时自动降级、限流或熔断异常来源。
防御层次(纵深)
网关层:输入长度上限 + RPS/并发限流
推理层:max_tokens 上限 + 步数硬上限 + 槽位配额
调度层:队列优先级 + 异常熔断
观测层:成本/显存/延迟告警

五、工程落地清单

把上述原则落成可执行的配置,建议从以下几项做起。

  • 给所有对外入口强制设输入长度上限与每请求输出上限,默认值宁可偏保守再按需放开。
  • 按身份维度(用户、Key、租户)做并发与速率配额,避免单身份耗尽全局资源。
  • 在网关与推理层分别部署限流,使任一层失效仍有另一层兜底。
  • 把成本与资源指标接入告警,设定预算阈值,超限即自动限流或人工介入。
  • 定期开展压力测试,用合成流量验证限流与熔断是否真的生效,而非仅配置存在。

小结

大模型拒绝服务攻击(OWASP LLM04)利用 LLM 资源随上下文长度与并发量放大的特点,通过长上下文占用 KV 缓存、诱导无限生成与并发洪泛等手段拖垮服务,造成成本爆炸与不可用。由于攻击不需要突破权限,防御重心在资源管控:输入长度上限、速率与并发限流、输出配额、队列优先级与异常熔断构成纵深防线。落地关键在于把限制写成默认配置、分层兜底,并用压测与成本告警持续验证其真实有效。

参考与延伸阅读

OWASP 官方文档「OWASP Top 10 for LLM Applications」将模型拒绝服务列为 LLM04,是本文分类与术语的依据。OWASP 给出的缓解思路包括请求限速、限制输入与输出规模、对队列与资源做限制以及资源用量监控。关于 KV 缓存与自注意力随序列长度增长的资源特性,可参考 Transformer 推理与 LLM 服务系统(如 vLLM、TGI)的公开文档与论文。工程侧可进一步阅读 API 网关限流、令牌桶算法与优先级队列的通用实践。如欲动手验证防御,建议在隔离环境用合成流量做压力测试,切勿对生产或第三方服务发起真实攻击。

本文累计阅读