一般而言,我们会根据针对的协议类型和攻击方式的不同,把 DDoS 分成SYN Flood、ACK Flood、UDP Flood、NTP Flood、SSDP Flood、DNS Flood、HTTP Flood、ICMP Flood、CC等类型。

而反射型DDoS攻击则是DDoS攻击中较巧妙的一种。攻击者并不直接攻击目标服务 IP,而是通过伪造被攻击者的 IP向开放某些某些特殊服务的服务器发请求报文,该服务器会将数倍于请求报文的回复数据发送到那个伪造的IP(即目标服务IP),从而实现隔山打牛,四两拨千金的效果。

而UDP协议没有握手,且允许IP源地址伪造,很多协议在响应包处理时,要远大于请求包,一个字节的请求十个字的响应,十个字节的请求一百个字的响应,这就是UDP反射放大攻击最根本的原理。


  1、不握手:TCP面向连接 ; UDP不需要建立连接

  2、不可靠:TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交 付,即不保证可靠交付。

  3、无控制:UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低

  4、一对多:UDP支持一对一,一对多,多对一和多对多的交互通信

  5、开销小:UDP的首部开销小,只有8个字节。

所以,UDP的反射型DDos更加受攻击者的钟爱。


在反射型攻击中,攻击者利用了网络协议的缺陷或者漏洞进行 IP 欺骗,主要是因为很多协议(例如 ICMP,UDP 等)对源 IP 不进行认证。同时,要达到更好的攻击效果,黑客一般会选择具有放大效果的协议服务进行攻击。总结一下就是利用 IP 欺骗进行反射和放大,从而达到四两拨千斤的效果。

DNS反射攻击

DNS 服务是整个互联网的基础服务,在连接互联网的时候,需要通过 DNS 解析将域名转化成对应的 IP 地址。理论上来说 ISP 的 DNS 服务器只响应来自它自己客户 IP 的 DNS Query 响应,但事实上互联网上大量 DNS 服务的默认配置缺失,导致了会响应所有 IP 的 DNS Query 请求。

同时,DNS 大部分使用 UDP 协议,UDP 协议没有握手过程让其去验证请求的源 IP。攻击者(实际上是攻击者控制的傀儡机)发送大量伪造了 Victim IP 的请求给 DNS 服务器,DNS 服务器成为放大器将 DNS 响应回复给受害者

NTP反射攻击

NTP 是网络时间协议(Network Time Protocol)的简称,是用来使计算机时间同步化的网络协议。NTP 包含一个 monlist 功能,也被称为 MON_GETLIST,主要用于监控 NTP 服务器,NTP 服务器响应 monlist 后就会返回与 NTP 服务器进行过时间同步的最后 600 个客户端的 IP,响应包按照每 6 个 IP 进行分割,最多有 100 个响应包。

SSDP反射攻击

互联网上家用路由器、网络摄像头、打印机、智能家电等智能设备普遍采用 UPnP(即插即用)协议作为网络通讯协议, 而 UPnP 设备的发现是通过源端口为 1900 的 SSDP(简单服务发现协议)进行相互感知。

利用 SSDP 协议进行反射攻击的原理与利用 DNS 服务、NTP 服务类似,都是伪造成被攻击者的 IP 地址向互联网上大量的智能设备发起 SSDP 请求,​接收到请求的智能设备根据源 IP 地址将响应数据包返回给受害者​。随着物联网和智能设备的快速发展和普及,利用智能设备展开 DDoS 攻击会越来越普遍。

SNMP反射攻击

简单网络管理协议(Simmple Network Management Protocol,SNMP)一般用来监控和管理网络设备,服务端口UDP 161/162,管理站(manager/客户端)、被管理设备(agent/服务端)

管理信息数据库(MIB) 是一个信息存储库,包含管理代理中的有关配置和性能的数据,按照不同分类,包含分属不同组的多个数据对象。每一个节点都有一个对象标识符(OID) 来唯一的标识一IETF定义便准的MIB库厂家自定义MIB库。

攻击原理:请求流量小,查询结果返回流量大;结合伪造源地址实现攻击。