分布式拒绝服务攻击(DDoS),核心就是用海量垃圾流量或恶意请求,把目标的网络、服务器或应用资源彻底耗尽,让正常用户无法访问。
要深度理解它,得从"拒绝服务"的本质、为什么"分布式"、攻击的几种层次、以及攻防博弈这几个角度来拆解。

从 DoS 到 DDoS:单线突破 → 饱和打击

  • DoS(拒绝服务攻击) 的原始思路很简单:一台机器,利用协议缺陷或疯狂发包,把目标打趴。早期的攻击分为两种:一种是漏洞利用型,比如 “Ping of Death”(发送超大ICMP包导致系统崩溃或重启),这类靠打补丁修复;另一种是资源耗尽型,靠单机不断发包占满目标带宽或连接数。

但单打独斗有瓶颈:攻击者的带宽和算力有限,很容易被服务器禁封IP或通过带宽优势硬抗过去。

  • DDoS(分布式拒绝服务攻击) 改变了游戏规则。它的核心是 “分布式”:攻击者不亲自出手,而是控制成千上万台被黑的"肉鸡"(僵尸网络),在同一时间向同一目标发起攻击。这股合力的流量级别可以高达每秒数T比特,任何单点防御都难以招架。

核心攻击原理:耗尽三层资源

任何网络服务的正常运作,都依赖一个"漏斗模型":

用户请求 → 网络带宽 → 服务器连接表 → 应用处理能力 → 响应

DDoS的攻击逻辑,就是精准地堵死这个漏斗的某一层或多层。根据攻击目标的不同,主要分为三类:

第一层:带宽耗尽型(堵死入口)

攻击目标是目标的入网带宽。当垃圾流量挤满整个管道,正常用户的请求连门都进不来。

典型手段:

  • UDP 洪水:发送大量巨型UDP包,占满带宽。
  • ICMP 洪水:疯狂Ping,填满通道。
  • 反射放大攻击:这是最致命的。攻击者伪装成目标IP,向网络上大量开放、会返回大响应的服务(如DNS、NTP、Memcached)发送小请求。这些服务会"忠实地"把大几十倍的响应数据打给目标。

   例子:发送一个70字节的DNS查询,服务器返回一个3000字节的响应,放大倍数超过40倍。攻击者用1G带宽,就能打出40G的流量。Memcached服务的放大倍数甚至可达5万倍。

第二层:协议耗尽型(打垮连接机制)

攻击目标是网络层和传输层的连接状态表。防火墙、负载均衡器和服务器都维护着TCP连接状态表,这个表的大小有限。

  • SYN 洪水:利用TCP三次握手的特性。攻击者发送海量SYN包,服务器回应SYN-ACK后,攻击者故意不完成最后一步ACK。服务器会傻等一段时间(数秒到数十秒),大量半开连接瞬间填满状态表,导致新连接无法建立。这叫"背板耗尽"。

  • 畸形包攻击:发送分片后重组会越界或导致系统崩溃的异常数据包,针对协议栈的代码缺陷。不过这类依赖漏洞的攻击如今已不常见,更多时候被用作干扰防御设备解析能力的辅助手段。

第三层:应用层耗尽型(累死业务逻辑)

攻击目标是应用本身的处理能力。这类攻击流量可能完全正常,能通过协议验证,但请求的资源极其消耗服务器算力,用极低成本造成极高消耗。

  • HTTP/HTTPS 洪水:看似正常地不断请求网站的高消耗页面(如搜索、大文件下载、复杂数据库查询),导致服务器CPU和内存满载,数据库连接池耗尽。

  • Slowloris 慢速攻击:不完全发送HTTP请求,隔很久发一个Header,保持连接不关闭,快速耗尽服务器的最大并发连接数。

  • 低慢速攻击:以极低速率(如每秒几十个请求)攻击应用的关键慢接口,正好压在"防DDoS阈值"之下,但对数据库伤害巨大,俗称"慢死"。

  • 业务逻辑耗尽:攻击者模拟正常用户请求高消耗业务接口,如"秒杀"下单、短信验证码发送、AI图像生成等。这类请求完全合法,但会迅速耗尽数据库行锁、线程池或GPU算力,让防御设备难以区分真假。

Tips: 现实中,专业攻击通常是混合型:先用协议洪水打瘫防火墙的状态表,再用应用层攻击榨干后端服务器。

攻击背后的引擎:僵尸网络与反射网

一次T级规模的DDoS攻击,不可能由一个人手动触发。其力量来自:

  • 僵尸网络(Botnet):攻击者通过病毒、蠕虫感染全球数百万计算机、智能摄像头、路由器等物联网设备,组成可远程操控的"大军"。指令一下,所有肉鸡同时访问目标。Mirai病毒就是典型的IoT僵尸网络,它感染的摄像头设备性能弱,发出的数据包常残缺不全,反而让某些依赖协议栈校验的清洗设备处理起来更吃力。

  • 反射/放大网:不需要控制大量肉鸡,只需要知道互联网上哪些服务可以被利用。攻击者扫描并收集开放的DNS、NTP、Memcached等反射器,组建"反射军团"。

  • DDoS租赁服务:甚至形成了黑产市场,花几十美元就能买到特定时长和强度的DDoS攻击,让零技术的人也能发起攻击。

攻击动机:远不止恶作剧

  • 敲诈勒索:发邮件"支付XX比特币,否则断你业务",尤其在商业竞争激烈的行业。

  • 商业竞争:恶性竞争,在对手大促或关键节点时直接打瘫其服务。

  • 网络战与意识形态:国家级黑客组织攻击政府、关键基础设施或媒体,作为现代冲突手段。

  • 报复或炫耀:游戏里被打怒了,攻击游戏服务器或对战平台。

  • 声东击西(烟雾弹):用DDoS制造混乱,吸引安全团队全部精力,同时悄悄进行数据窃取、渗透等更致命的攻击。

防御哲学:这是一场不对等的消耗战

防御DDoS的核心不是"防住",而是提高攻击成本,降低自身体积,并具备弹性伸缩能力。没有任何单点方案能通杀,需要分层防御。

第一层:上游清洗(最根本)

你不可能用自己的1G带宽去对抗10G的攻击。必须依靠运营商或专业云防护厂商(如Cloudflare、腾讯云、阿里云),把流量先引到他们带宽巨大的清洗中心。

   原理:BGP引流或DNS重定向,将访问目标IP的所有流量先导至清洗中心,中心通过深度包检测、行为建模、信誉库等识别并丢弃恶意流量,把清洗干净的流量回注到真实服务器。

   补充视角:现实中,防御带宽的成本远高于攻击者发起攻击的成本——购买1Gbps防御带宽的价格,往往够攻击者打出100Gbps的反射流量。因此,单靠硬抗并不经济,更依赖运营商的"近源压制"(在攻击流量进入骨干网之前由源头运营商丢弃)和全球Anycast节点分散流量。

第二层:网络层与传输层防御

  • SYN Cookie:服务器不为SYN分配资源,而是根据客户端IP等信息计算一个Cookie放在SYN-ACK的序列号里,只有收到携带正确Cookie的ACK包才建立连接。

  • SYN Proxy(代理模式):防火墙直接替后端服务器完成三次握手,校验通过后再与服务器建立新连接。这比SYN Cookie更耗费防火墙性能,但能彻底隔离后端服务器被半连接耗尽的风险。

  • Anycast 网络:将同一IP地址广播到全球多个节点,攻击流量会被分散到最近节点,被各节点分担吸收。

  • 严格的限速与黑名单:对超出基线流量的IP或协议进行限速。

第三层:应用层防御

  • 人机验证(CAPTCHA):判断是否为真人浏览器。

  • WAF(Web应用防火墙):识别并拦截异常的HTTP模式。

  • 行为分析:建立正常用户的访问模型,识别出非人类、聚集性的异常行为(如每个请求都来自不同IP和UA但行为路径一致)。

  • 影子队列(拖延战术):对于无法判定善恶的请求,不直接丢弃(避免触发攻击者更快重试),而是放入延迟队列慢慢处理,用时间消耗攻击者的耐心和资源。

  • 资源隔离:耗资源的搜索、报表接口独立部署,限流队列,不拖垮主站。

终极哲学:不单点依赖

采用高防IP、智能DNS、多CDN调度,甚至静默资产(核心业务地址完全不公开,攻击者打的是CDN节点)。让攻击者找不着、打不垮、花不起钱。

总结

DDoS 不是精巧的病毒,而是一场利用数量暴力压制资源的战争。它利用互联网开放与平等的本质——任何人都可以给你发数据来进行攻击。只要发起攻击的成本低于防御的成本,这场攻防就会永远继续下去。今天的DDoS,已是大量物联网僵尸网络、反射放大技术、混合多层攻击和黑产运营化的综合体,防御它需要从架构设计的最初阶段就开始考虑,而不是事后打补丁。