一般来说,我们会根据不同的协议类型和攻击模式,将DDoS分为SYN Flood、ACK Flood、UDP Flood、NTP Flood、SSDP Flood、DNS Flood、HTTP Flood、ICMP Flood、CC等攻击类型。
每种类型的攻击都有其自身的特点,反射式DDOS攻击是一种新的变体。攻击者不是直接攻击目标服务IP,而是使用Internet的一些特例来打开服务器。通过伪造Attackee的IP地址,将构造好的请求消息以开放服务方式发送给服务器,服务器将比请求消息多几倍的回复数据发送给被攻击的IP,以便攻击者将回复数据发送给被攻击的IP。DDOS攻击是间接形成的。实际上,攻击者使用更多的木偶机器进行攻击。他们不直接将攻击包发送给受害者,而是假装是受害者,然后将包发送给放大器,放大器随后通过放大器反射回受害者。
在反射攻击中,攻击者利用网络协议的缺陷或漏洞来欺骗IP,主要是因为许多协议(如ICMP、UDP等)没有对源IP进行身份验证。同时,为了达到更好的攻击效果,黑客通常选择具有放大效果的协议服务进行攻击。综上所述,IP欺骗用于反射和放大,从而达到4到2组千克的效果。
DNS反射攻击
DNS服务是整个互联网的基础服务。当我们连接到互联网时,我们需要通过DNS解析将域名转换成相应的IP地址。理论上,ISP的DNS服务器只响应来自其自身客户端IP的DNS查询响应,但实际上,互联网上大量DNS服务的默认配置丢失,导致响应所有IP的DNS查询请求。
同时,大多数DNS使用没有握手过程的UDP协议来验证请求的源IP。攻击者(实际上是由攻击者控制的傀儡机)将大量伪造的请求从受害者IP发送到DNS服务器,该服务器充当一个放大器来回复受害者的DNS响应。
NTP反射攻击
NTP是网络时间协议的缩写,是用于同步计算机时间的网络协议。ntp包含一个monlist函数,也称为mon-getlist,主要用于监视ntp服务器。当ntp服务器响应monlist时,它们返回与ntp服务器同步的最后600个客户机的IP。响应包分为六个IP包,最多100个响应包。我们可以通过ntpdc命令向ntp服务器发送monlist,并结合抓包查看实际效果。
ntpdc-n-c monlist x.x.x_wc-l
602
在上面的命令行中,我们可以看到一个包含monlist的请求收到了602行数据,除了前两行是无效数据之外,它碰巧是600个客户机IP列表。从上图中的Wireshare,我们还可以看到有101个NTP协议包,除了一个请求包,恰好是100个响应包。
反射 DDoS 攻击由于难以追踪、且不需要大量的肉鸡等特点,越来越流行,势必会对业务造成很大的威胁。除了需要各方通力合作对互联网上的设备和服务进行安全管理和安全配置消除反射站点之外,还需要在服务端做好防御准备,比如增加 ACL 过滤规则和 DDoS 清洗服务。目前大量的云厂商都提供 DDoS 流量的清洗服务,可以直接使用。