DDoS攻击类型详解:流量型、协议型与应用层攻击

DDoS攻击并非只有一种套路——有的靠淹没带宽,有的靠耗尽连接资源,有的则伪装成正常用户,下面逐一拆解每种类型的运作原理。

DoS与DDoS有什么区别

DoS(拒绝服务攻击)是攻击者从单一发起点向目标服务器发送过量请求,以阻碍其正常提供服务的攻击方式。DDoS(分布式拒绝服务攻击)则在此基础上加上了"分布式":由大量感染恶意软件、被攻击者远程操控的设备(僵尸网络)同时攻击同一目标。由于攻击流量分散来自无数个不同的IP地址,单纯封锁某个IP往往难以奏效,这正是DDoS攻击远比DoS棘手的原因。

流量型攻击:直接耗尽带宽本身

流量型攻击比拼的不是技巧,而是纯粹的流量规模。大量发送无意义UDP数据包的UDP洪水攻击是其中的代表,而放大(Amplification)攻击也被广泛使用——向DNS、NTP这类"用小请求换来大得多的响应"的反射服务器发送伪造受害者IP的请求,让响应集中涌向受害者。这类攻击以每秒千兆比特(Gbps)为单位衡量,会直接把通往目标服务器的链路带宽塞满,让正常流量根本挤不进去。

协议攻击:耗尽连接状态资源

这类攻击利用防火墙、负载均衡器或服务器管理连接信息方式中的漏洞来消耗资源,SYN洪水攻击是其中的代表。TCP连接以SYN、SYN/ACK、ACK三次握手开始,而SYN洪水攻击只是大量发送SYN请求,却始终不发送最后的ACK响应,使目标服务器不断堆积未完成的连接,处于等待状态,从而耗尽连接表资源。此外,用伪造数据包扰乱防火墙或负载均衡器的攻击也属于这一类。这类攻击以每秒数据包数(pps)衡量,和流量型攻击不同,它瞄准的不是链路带宽,而是中间网络设备本身的处理能力。

应用层攻击:伪装成正常流量

HTTP洪水攻击表面上发送的是正常的网页请求(GET、POST),但以极高的速度大量发送,给服务器或数据库造成负担;而慢速攻击(Slowloris)则反其道而行之——极其缓慢地一点点发送HTTP请求,长时间占用连接,耗尽服务器的并发连接上限。由于请求本身的流量不大,行为又与正常用户十分相似,这类攻击比前两种更难被检测和拦截。它以每秒请求数(rps)衡量,瞄准的不是链路,而是Web应用程序或服务器软件本身。

僵尸网络与放大攻击是如何运作的

僵尸网络是指在设备主人毫不知情的情况下感染恶意软件、接受攻击者指令的大量设备(电脑、物联网设备等)组成的网络。在放大攻击中,攻击者向充当反射器的公共DNS、NTP服务器等发送一个伪装成受害者IP地址的小型查询,服务器随后会把远大于该请求的响应发送给那个被伪造的IP地址,也就是真正的受害者。这样一来,攻击者能用远小于实际冲击流量的自身带宽,给受害者带来数倍甚至数十倍的流量冲击。

企业和个人可以采取的防御方法

对于运营在线服务的企业而言,基本的应对方式包括用CDN将流量在地理上分散、用WAF(Web应用防火墙)过滤异常请求模式,以及对请求频率进行速率限制。如果攻击规模极大,互联网服务提供商(ISP)层面有时会采用黑洞路由,直接丢弃相关流量。普通家庭用户很少会直接成为DDoS攻击的目标,但更换默认密码、保持路由器和物联网设备固件更新到最新版本,是防止自己的设备在不知情的情况下沦为僵尸网络一员的实际有效办法。

为什么单纯封锁IP很难防住DDoS攻击

如果攻击只来自单一来源,封锁那个IP地址往往就能解决问题。但DDoS攻击会同时从成千上万甚至数百万个不同的IP涌来,其中许多是设备主人根本不知情已被感染的普通家用设备。逐一封锁每个IP并不现实,真正有效的DDoS防御依赖的是流量模式分析、速率限制和大规模分散处理,而不仅仅是黑名单。

攻击者为什么会组合使用多种攻击类型

现实中的DDoS攻击往往会在一次攻击行动中混合使用流量型、协议型和应用层攻击,有时在第一波攻击被防御拦下之后,还会临时切换到另一种类型继续进攻。正是这种多层次的手法,让专门的DDoS防护服务、而不是单一的防火墙规则,成为容易被盯上的服务的标准配置。

常见问题

小型网站真的会成为DDoS攻击的目标吗?

会的,目标不仅限于大公司。出于勒索、打压竞争对手,甚至没有明确理由,中小企业、个人博客、网店都可能成为攻击目标,因此越来越多小型网站也开始使用内置基础DDoS防护的CDN或WAF服务。

普通人能为防止DDoS攻击做些什么吗?

虽然普通人不太可能直接成为攻击目标,但保持路由器及所有联网设备的固件更新、不使用默认密码,有助于防止这些设备在不知情的情况下被拉入用来攻击他人的僵尸网络。