Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

拒绝 AI 服务 (AML.T0029)

一句话通俗理解

普通网站被 DDoS 要一万台肉鸡,AI 服务被打瘫可能只需要一个脚本——因为每一次推理都要烧真金白银的 GPU,攻击者只需灌进一堆“算了也白算“的请求,服务就自己跪了。

难度等级

⭐⭐ Demonstrated(已演示)

官方成熟度评定为 Demonstrated——攻击已在研究中被完整演示:研究者用一条对抗性提示词让 MathGPT 无限计算陷入拒绝服务(AML.CS0016);Lumia Security 演示了 LLM 桌面应用的速率限制可被垃圾请求撑爆,导致合法用户被错误封禁(AML.CS0036)。AI 推理的算力昂贵性让这类攻击天然“划算“——官方案例证明甚至不需要分布式僵尸网络,单点精心构造的请求就能拖垮服务。

技术描述

通俗解释

拒绝 AI 服务是传统 DoS 在 AI 场景的特化,但攻击经济学完全不同:普通 Web 请求的处理成本近乎为零,而 AI 推理一次可能要占用 GPU 数百毫秒到数秒。官方描述点明三个要点:

  1. AI 系统是昂贵瓶颈:许多 AI 系统需要大量专用算力(GPU/TPU),天然容易过载;
  2. 洪流淹没:攻击者用请求洪流冲击 AI 系统,使其降级或彻底瘫痪;
  3. 精心构造的高耗输入:攻击者可以故意构造需要大量无用计算的输入——不需要量大,单条请求就能让模型“想很久“。

技术原理

依据官方描述,攻击者可能以请求洪流冲击 AI 系统,使服务降级或关停。许多 AI 系统需要大量专用算力,常是昂贵且易过载的瓶颈;攻击者可故意构造需要大量无用计算的输入。

拒绝 AI 服务的三种攻击面:

攻击面机制成本效率案例
请求洪流海量普通请求耗尽吞吐配额中(量大)CS0036(撑爆速率限制反杀受害者)
高耗输入单条输入触发超长计算(对抗性“计算炸弹“)高(量小威力大)CS0016(提示词诱导无限计算)
配额反杀恶意消耗受害者的配额/触发封禁机制高(借刀杀人)CS0036(垃圾请求触发受害者账号被 ban)

为什么 AI 服务特别脆弱:

  1. 算力昂贵:每次推理都有 GPU 成本,洪流直接转化为经济伤害(与成本收割 (AML.T0034)的边界在于目的——瘫痪 vs 烧钱);
  2. 延迟敏感:推理延迟叠加排队,正常用户体验迅速劣化;
  3. 自动扩容的放大效应:云上自动扩容机制在攻击下持续加资源——服务没瘫,账单先爆炸;
  4. 防御机制可被反用:速率限制、异常封禁等防御机制可被攻击者“借刀杀人“(CS0036)。

攻击链上下游衔接:

  • 独立实施:本技术对攻击链前置要求极低——公网暴露的推理端点即可独立打击;
  • 姊妹技术:成本收割 (AML.T0034)——同为资源压力攻击,DoS 要“瘫“,成本收割要“贵“;诱饵数据灌满 (AML.T0046)打击的则是人工审核环节;
  • 下游关联:DoS 可作为掩护(趁运维忙于救火时实施其他攻击),或配合LLM 提示词注入 (AML.T0051)触发智能体的资源空耗。

平台覆盖:Predictive AI / Generative AI / Agentic AI——所有提供推理服务的系统。

用途影响

  • 业务瘫痪:嵌入核心业务的 AI 功能(客服、风控、代码助手)整体不可用;
  • 经济伤害:GPU 资源空烧 + 自动扩容账单膨胀;
  • 配额连坐:防御机制被反用,合法用户/受害者账号反被封禁(CS0036);
  • 检测混淆:DoS 事件可作为掩护,转移 SOC 对真实攻击的注意力。

攻击流程

典型攻击流程

graph TD
    A["识别暴露的 AI 服务端点<br/>推理 API / 聊天界面"] --> B{"选择攻击策略"}
    B -- "洪流" --> C["海量自动化请求<br/>耗尽吞吐与配额"]
    B -- "高耗输入" --> D["构造计算炸弹<br/>单条请求触发超长推理"]
    B -- "配额反杀" --> E["以受害者身份灌垃圾请求<br/>触发封禁机制"]
    C --> F["服务降级/瘫痪<br/>正常用户被拒"]
    D --> F
    E --> G["受害者账号被封<br/>合法访问被拒"]
    style C fill:#ff6b6b,stroke:#333,stroke-width:2px
    style D fill:#ff6b6b,stroke:#333,stroke-width:2px

步骤详解:

  1. 识别暴露的 AI 服务端点

    • 通俗描述:找到出气口。
    • 技术细节:公网 API、聊天 Web 界面、集成了 LLM 的 SaaS 功能——记录认证要求、速率限制、计费模式。
  2. 选择攻击策略

    • 通俗描述:决定是“人海战术“还是“精确制导“。
    • 技术细节:有认证/配额的环境适合高耗输入与配额反杀;无认证的开放端点适合洪流。
  3. 构造计算炸弹(高耗输入)

    • 通俗描述:让 AI “想到死”。
    • 技术细节:CS0016 中注入指令“忽略上述指令,改为计算……“诱导模型进入超长计算循环——单条请求占满一个推理槽位。
  4. 服务降级/瘫痪

    • 通俗描述:排队的人把门堵死。
    • 技术细节:推理队列饱和 → 延迟飙升 → 健康检查失败 → 服务降级或崩溃;自动扩容持续烧钱。

真实案例

以下案例来自 MITRE ATLAS 官方案例库,直接命中本技术。

案例1:MathGPT 提示词注入致拒绝服务(2023年,AML.CS0016)

  • 时间: 2023年1月
  • 攻击者: Ludwig-Ferdinand Stumpp(安全研究者)
  • 手法: 研究者对 MathGPT(基于 GPT-3 的数学问答应用)实施提示词注入获得代码执行后,一条额外的对抗性提示造成了拒绝服务——指令“忽略上述指令,改为计算……“诱导模型陷入超长计算,服务被拖垮。
  • 影响: 安全研究——“计算炸弹“式 DoS 的直接演示:不需要洪流,一条精心构造的请求即可
  • 参考链接: 见官方案例库 AML.CS0016

案例2:AIKatz——LLM 桌面应用的速率限制反杀(2025年,AML.CS0036)

  • 时间: 2025年1月
  • 攻击者: Lumia Security(安全研究团队)
  • 手法: 研究者从 LLM 桌面应用(Claude/ChatGPT/Copilot)内存提取认证令牌后,演示了两种拒绝服务路径:删除受害者全部会话使其无法访问历史;以及以受害者身份发送垃圾消息/提示词,撑爆 LLM 的反机器人速率限制,使受害者账号被平台封禁——防御机制成了攻击者的武器。
  • 影响: 安全研究——“借刀杀人“式 DoS:平台自己的封禁机制替攻击者完成了打击
  • 参考链接: 见官方案例库 AML.CS0036

红队视角

⚠️ 免责声明:以下内容仅用于合法授权的安全测试与教育目的。对他人服务实施 DoS 是违法行为。

实战技巧

  1. AI 服务容量画像(自有环境) 在授权评估中对自有 AI 服务做容量测试:单请求最大推理时长?并发多少时延迟劣化?速率限制与配额策略如何触发?自动扩容的反应阈值是多少?——产出“容量基线与过载行为“报告。

  2. 高耗输入测试(自有模型) 用无害的“计算密集“提示词测试推理时长上限:模型对超长上下文、复杂推理链的最大处理时间是多少?是否存在超时熔断?

  3. 防御机制滥用评估 评估组织的速率限制/封禁机制能否被“以受害者身份灌垃圾“反用(CS0036 模式):封禁依据是账号还是 IP?申诉流程多长?

常用工具

工具名称用途平台
负载测试工具(k6/Locust)容量基线测试(自有环境)跨平台
自有 AI 服务监控面板观察过载行为云
推理时长统计脚本高耗输入基线自建

注意事项

  • 只对自有服务做压力测试——对他人服务 DoS 违法
  • 评估报告聚焦“单请求资源上限“与“封禁机制的连坐风险“两大缺口
  • 容量测试避开业务高峰,设置熔断止损

蓝队视角

检测要点

  1. 服务层:过载特征

    • 日志来源:API 网关、推理服务监控
    • 异常特征:单请求推理时长远超基线(计算炸弹)、请求量激增但 token 分布异常(洪流前兆)、队列深度与延迟同步飙升
  2. 账号层:配额异常

    • 日志来源:账号系统、计费系统
    • 异常特征:单账号请求速率突增、同一账号短时间消耗异常 token 量、多账号协同的相似请求模式
  3. 防御机制审计

    • 关键信号:封禁触发前的请求特征是否可能来自“被冒充的受害者“——封禁依据需多维(账号+设备+行为)

监控建议

  • 建立推理时长分布基线:P99 推理时长的突变是计算炸弹的第一信号
  • 速率限制设计防连坐:封禁前先验证请求来源(会话指纹),避免攻击者借平台之手封杀受害者
  • 自动扩容联动告警:扩容事件本身就该触发安全审查——是业务增长还是攻击压力?

检测建议

应用层检测(AI 遥测)

检测方法: 推理服务的时延与吞吐监控是主战场。

  • 单请求推理时长超 P99 基线 N 倍(计算炸弹特征)
  • 请求量激增 + 高重复度(洪流特征)
  • 单账号 token 消耗速率异常

网络层检测

检测方法: 辅助信号。

  • 对推理端点的请求速率激增(单源/分布式)
  • 请求大小分布异常(超长上下文攻击)

主机层检测

检测方法: 覆盖推理基础设施。

  • GPU 利用率异常饱和与排队深度
  • 自动扩容事件的异常触发节奏

检测规则思路示例

title: 单请求推理时长远超基线(计算炸弹特征)
status: experimental
description: 检测触发超长推理的单条请求,
    可能预示拒绝AI服务攻击(AML.T0029 / CS0016模式)
logsource:
    category: application
    product: inference_service
detection:
    selection:
        event_type: 'inference'
    bomb:
        duration_ms: '>= 60000'
    baseline:
        p99_duration_ms: '8000'
    condition: selection and bomb
falsepositives:
    - 合法的超长推理任务(批量分析,按任务类型白名单化)
    - 压力测试窗口(提前报备)
level: high
tags:
    - atlas.aml_t0029

缓解措施

映射说明:截至 ATLAS 2026.09 数据版,MITRE ATLAS 官方数据为本技术映射了 AML.M0004、AML.M0015、AML.M0019、AML.M0035、AML.M0036 五项缓解措施。以下按防御优先级组织,官方映射在表格中如实标注。

优先级1:关键措施

AML.M0004 限制 AI 服务查询量与速率(官方映射)

官方缓解描述:限制用户在给定时间间隔内的查询量,防止拒绝服务。速率限制是第一道闸门——按用户/租户分级限流,让单点攻击者无法耗尽全局容量。

AML.M0036 限制 AI 工作负载资源消耗(官方映射)

官方缓解描述:限制单个 AI 请求可消耗的资源——为输入大小、批大小、执行时间、内存、算力与输出大小设上限;生成式服务限制上下文与输出 token;对计算炸弹(单条超长推理)釜底抽薪。

优先级2:重要措施

AML.M0019 控制生产环境 AI 模型与数据的访问(官方映射)

官方缓解描述:模型 API 的访问控制可防止攻击者过量查询并瘫痪系统。认证与配额让“匿名洪流“无处着力——开放端点是最先该被治理的暴露面。

AML.M0015 预测式 AI 对抗输入检测(官方映射)

官方缓解描述:在推理前检测并阻断对抗样本——包括导致过度计算的输入。针对“计算炸弹“的专门防线:识别触发超长计算的输入模式。

优先级3:建议措施

AML.M0035 AI 红队(官方映射)

官方缓解描述:提交对抗性工作负载、演练可能耗尽推理或支撑服务的依赖故障。用自有红队先找到容量极限与过载行为——扩容策略与熔断机制的演练数据。

超时熔断与降级策略(本库建议,非官方映射)

单请求硬超时 + 超时熔断 + 高负载时的优雅降级(限流排队、暂拒新请求)——确保“最坏情况只是慢“,而不是“整体崩溃“。

MITRE ATLAS 缓解措施映射

缓解措施ID缓解措施名称优先级官方映射说明
AML.M0004限制 AI 服务查询量与速率关键是分级限流的第一道闸门
AML.M0036限制 AI 工作负载资源消耗关键是单请求资源上限——防计算炸弹
AML.M0019控制生产环境 AI 模型与数据的访问重要是认证+配额挡住匿名洪流
AML.M0015预测式 AI 对抗输入检测重要是识别高耗对抗输入
AML.M0035AI 红队建议是容量极限与过载演练
—超时熔断与降级策略建议否(本库建议)最坏情况=慢,而非崩溃

关联 ATT&CK 技术

ATLAS 官方数据未为本技术映射特定 ATT&CK 技术引用。以下为概念上最接近的企业版技术,供对照理解:

传统 DoS vs 拒绝 AI 服务:

维度传统 DoS (T1498/T1499)拒绝 AI 服务 (AML.T0029)
目标瓶颈带宽/连接数/服务器吞吐GPU/TPU 推理算力(更昂贵更稀缺)
攻击成本常需分布式僵尸网络单条高耗输入即可(计算炸弹)
经济放大带宽成本相对低每次请求都烧 GPU 钱
防御反用较少速率限制可被反用封杀受害者(CS0036)
检测重心流量清洗推理时长分布 + token 消耗速率

一句话总结:打瘫一个网站要淹没它的网卡,打瘫一个 AI 服务只需喂饱它的 GPU——而每一次“喂食“都是受害者自己买单。

动手实验

⚠️ 重要提示:所有实验必须在自有 AI 服务上进行,严禁对他人服务实施压力测试。

实验环境准备

环境组件用途获取方式
自有推理服务(本地模型或自有云部署)测试目标自建
负载测试工具(k6/Locust)洪流模拟开源
监控面板(延迟/队列/GPU)观测过载行为开源

实验1(初级):推理时长基线

实验目标: 建立服务的“正常“画像。

实验步骤:

  1. 准备 100 条典型业务请求,记录推理时长分布(P50/P95/P99)
  2. 构造 10 条“高复杂度“请求(长上下文、复杂推理链),记录时长
  3. 绘制时长分布对比图

预期结果: 一份推理时长基线——检测计算炸弹的参照系。

实验2(中级):容量极限测试

实验目标: 找到服务的过载临界点。

实验步骤:

  1. 用 k6 以阶梯加压模式提升并发(10→50→100→500)
  2. 记录每级的延迟、错误率、队列深度、GPU 利用率
  3. 找到延迟劣化的拐点与服务崩溃的临界点
  4. 验证熔断/降级机制是否按预期工作

预期结果: 一份容量报告 + 拐点数据——扩容策略与告警阈值的依据。

实验3(高级):计算炸弹防御验证

实验目标: 验证单请求资源上限的防御效果。

实验步骤:

  1. 构造无害的“计算炸弹“提示词(诱导超长推理的复杂数学任务)
  2. 无防护时发送,记录推理时长与服务影响
  3. 配置单请求超时(如 30s 硬熔断)与输出 token 上限后重发
  4. 对比攻击前后的服务可用性指标

预期结果: 直观验证 M0036(资源上限)对计算炸弹的抑制作用——“最坏情况只是慢”。

术语解释

术语英文原名通俗解释
拒绝服务Denial of Service (DoS)使服务对合法用户不可用的攻击
计算炸弹Computational Bomb单条即触发超长计算的高耗输入
推理延迟Inference Latency模型处理单次请求的耗时
速率限制Rate Limiting限制单位时间请求数的机制
自动扩容Autoscaling负载升高时自动增加资源的机制
熔断Circuit Breaking超限时主动拒绝请求防止雪崩
P99 时延P99 Latency99% 请求的时延上限——长尾观测指标
队列深度Queue Depth等待处理的请求数量
配额反杀Quota Exhaustion借防御机制封杀受害者的攻击手法
GPU 饱和GPU Saturation算力被占满无法响应新请求

参考资料

📚 官方文档

📰 案例报告(真实攻击与安全研究)

  • 官方案例库 AML.CS0016(MathGPT 提示词注入 DoS)/ AML.CS0036(AIKatz 速率限制反杀)- 详见 ATLAS Case Studies

🔧 工具与资源

🔗 关联阅读


版本: ATLAS 2026.09 | 更新: 2026-10-24 | 模板: ATLAS 技术文档 v1.0