基于NTP的DDoS攻击方法与防御研究

2019-10-15 03:28刘旭东
网络安全技术与应用 2019年10期
关键词:数据包端口服务器

◆刘旭东

基于NTP的DDoS攻击方法与防御研究

◆刘旭东

(国际关系学院信息科技学院 北京 100091)

分布式拒绝服务攻击(Distributed Denial of Service attack,DDoS)是一种原理简单,攻击方法多样,攻击效果显著的计算机网络攻击方法。由于其攻击机制一直针对最主流的网络协议所设计,故DDoS攻击在计算机网络攻击手段的发展中一直保留了下来,是长期以来威胁主机正常通信的一种攻击手段之一。本文将重点探究当前分布式拒绝式服务攻击的最新研究方法,就目前利用NTP反射攻击最为突出,结合wireshark抓包获取相关的流量信息,分析相关的特征,提取关键的NTP协议中的monlist请求、响应数据包信息,探究发起隐秘性高、流量巨大的放大型(亦称放射性)的DDoS攻击,并对防御测试提出代码上的监测研究方案。

分布式拒绝服务攻击(DDoS);网络时间协议(NTP);协议分析;网络攻防

近年来,安全新闻的头条被一起DDoS事件所占据,其中最醒目的莫过于高达400Gbps的瞬时流量,称安全服务提供商CloudFlare遭到了该数量级流浪的NTP 反射攻击,据CloudFlare的首席执行官报道,基于NTP反射的DDoS成为最大的攻击来源,正在迅速取代DNS反射攻击。有分析称这起攻击事件中利用了网络时间协议(Network Time Protocol,以下简称NTP)服务器monlist指令的特性,发送大量精心编写的请求(request)数据包,使得被攻击的主机接受到更多倍数的数据包,导致主机端口入口流量爆发,阻塞出口流量,最终达到拒绝服务的效果。

1 国外攻击案例剖析与NTP的特性分析

1.1 CloudFlare事件

安全服务提供商、美国跨国公司CloudFlare透漏,该公司的客户服务器遭受到了流量400Gbps的NTP反射攻击,在整个DDoS的攻击历史上达到了一个流量峰值。分析NTP反射攻击的过程得知,NTP工作于应用层,其承载协议为UDP,具有无连接性,不同于TCP/IP协议,不需要对通信进行验证,即可强行施加流量负载。但这不是最关键的,巧妙之处在于,黑客利用NTP的monlist这一不安全的检查机制,寻找攻击资源,包括攻击对象以及存在问题的旧版本NTP服务器,或者自行搭建,然后通过使用原始套接字编程发送伪造的数据请求包。

1.2 NTP协议分析

网络时间协议(NTP)是一种通过因特网服务于计算机时钟的同步时间协议。它提供了一种同步时间机制,能在庞大而复杂多样因特网中用光速调整时间分配。NTP 包含如下三种特征,具体如图1所示,这三种特征与指定参考时钟都是相关联的。

图1 NTP协议三种特征

对于大多数主机时间服务器而言,都是通过其他对等时间以达到服务器同步,所以这三种每一种特征都由两部分组成:其一是对等决定的部分,这部分是相对于原始标准时间的参考来源而言;其二是由主机衡量的部分,这部分主要是相对于对等而言。NTP 源于时间协议和 ICMP 时间标志消息,但其设计更强调精确度和充足性两个方面,即使是用于网络路径上包括多路网关、延迟差量及不可靠网络。

图2 NTP协议结构

对大量文献和文档研究,为了便于研讨NTP的特性,将NTP的工作主要分为两个阶段,第一阶段是获取时间,第二阶段是同步时间。其中,含有反射作用的monlist请求指令是在时间同步阶段中发生的,所以如果是对服务器发起一次获取时间的请求,抓取到的数据包长度通常为90(如图2),获得的数据包也可能是对等的,并没有发生失衡的现象。

第二阶段需要使用NTP包含的monlist指令,NTP服务器在接收到monlist请求后,其服务器会响应并返回与其进行过时间同步的最近600个请求端的IP地址,同时按照每6个IP进行分割,从理论上分析,查看这种恶意导向的攻击流量可以扩大到伪造查询流量的100倍,其放大效果十分显著。如图3,使用以下命令进行monlist查询:

ntpdc -n -c monlist

图3 响应monlist查询信息

通过协议分析即可获得其数据长度为234字节,如图4所示,由于反射服务器可能已经修复该monlist的漏洞,因此获得的返回数据一一对应,从攻击者的角度来说,这是需要去避免的。具体分析该请求数据包的数据内容。

可以看出NTP服务器由于是偏向网络基础设施建设的一个服务器类型(统一时间的作用),故它的端口也是固定的123端口,这使得在NTP的服务器池(server pool)可以轻松地在本时区的服务器列表内找到可以同步的稳定服务器,这里的同步可以比较简单地认为是进行monlist请求,这种负载对于NTP服务器来说是可以的接受的,因为monlist的请求频率比较低,也不需要大量的monlist的请求。

下面是一次成功更新了时间所返回的数据包,如图5所示,其数据长度仅为90字节。其协议报文很显然与发出monlist请求的字段(field)不相同,起更重要的是请求时间的主机得到了某一特定时区下的时间,同步完成了。

图4 数据信息内容

图5 更新时间返回数据包

2 攻击与防御测试研究

2.1 攻击测试

网络编程库中有大量可以使用原始套接字的库,这次攻击测试以Python语言和Scapy库作为主要的工具,因为简单且易于理解,代码清晰以至于可以重点关注于攻击的本身形态。以下为实验环境的一些软件参数指标:

OS:GNU/Linux Debian 8

开发工具:Python 2.7.6 Scapy 2.3.1

Scapy库中内置了NTP的基本格式,由NTP协议分析可得,发出请求的代码为MON_GETLIST_1(42),经查询该请求发出前模式为7模式,即mode=7。根据Scapy的文档可以将我们需要构造的NTP请求数据包定义如下:

NTP(version=3, mode=7, stratum=0, poll=3, precision=42)

根据NTP函数的构造释义、结合数据包、软件信息,定义了version、stratum、poll参数。一般地,在适应本机的程序上来说是基本不会改变的,实际的攻击中首先通过协议分析确定新的参数,比如在之前测试中分析到的数据包中有version=3和4的数据包,这时就要注意更改其版本,否则有可能无法响应请求。Scapy中的发包函数是send函数,用于向网络上发送一个数据包,除此之外,还需定义NTP协议承载协议,即UDP的端口信息。

send(

IP(dst = ntp_serv, src = ddos_targ)

/(UDP(sport = 52828)

/NTP(version = 3, mode = 7, stratum = 0, poll = 3, precision = 42)

))

由于Scapy较好的封装性,相对较为容易写出攻击关键函数,剩下的只需定义保留的两个变量即可开始一次测试,这里称为测试是因为一次函数调用只发送一个monlist查询请求,而不是洪泛(flood)地发送请求。ntp_serv为我们找到的有反射特性的NTP服务器,ddos_targ是计划攻击的IP地址。

运行后,可以得到如上分析的数据包。但是要实现真正意义上的攻击,已有的测试工作还不够,从时间上说,需要一个循环的发送过程,其次为了提高发送性能,还需要引入多线程的技术,在Python下设计多线程的程序也不是难事,攻击核心已经封装成定义的模块,只需要引入时间和线程模块,就可以把线程调度起来,达到高性能发包的目的,此时就真真正正地有了一定的攻击能力。

2.2 防御测试

(1)方法一:丢弃相关端口数据包或关闭监听端口

防御的目的旨在解决遭遇的NTP反射攻击,通过协议分析得知,如果在上述监测端口处检测到大量数据流量时,可以确定正在遭受NTP反射攻击。当攻击发生的时候,只要报警及时,就可以采取措施对数据包进行过滤。一个简单的方法是在攻击进行时,通过网络设备(路由器)的ACL丢弃123端口的数据包,或者将NTP服务器监听端口暂时关闭。

由于monlist查询请求是NTP设计时的一个缺陷,不易更改,所以只能从访问的配置出发去解决这个问题,鉴于NTP的反射效果,官方已经做出了提示,并用更改ntp.conf文件的方式完成了更新。将系统中的NTP服务升级,服务默认是关闭monlist查询功能的,防止服务器被利用。

(2)方法二:关闭相关查询指令功能

另外一种防御方法,通过手动关闭monlist查询服务功能,以防止黑客的恶意利用,首先检查主机的REQ_MON_GETLIST和REQ_MON_GETLIST_1的状态,并检查请求是否可用,可以通过相关的NTP命令监测到主机的状态:

ntpq -c rv

ntpdc -c sysinfo

ntpdc -n -c monlist

通过阅读NTP的官方文档,研究得到有用的权限设置,均在ntp.conf下修改。

restrict default kod nomodify notrap nopeer noquery

其作用是“允许普通的请求者进行时间同步,但是不允许查询NTP服务信息”、“允许发起时间同步的IP,与本服务器进行时间同步,但是不允许修改NTP服务信息,也不允许查询monlist在内的服务器的状态信息”。在实践中,配置限制访问命令也是可以防止被恶意嗅探和利用的方法之一。

restrict default noquery

3 漏洞测试发现

由上述的测试程序不难发现,最不可确定的参数就是ntp_serv。从表1的数据可以得到,公用的按洲际划分的NTP服务器数量稀少,而且其服务器工作时间受到时差的影响,因此获得一台低版本存在monlist漏洞的NTP服务器非常困难。

一方面从进攻方的来说,想要长期地维护一份可以利用的NTP服务器并非易事,在分析使用上述的命令查找服务器时,基本都返回了Timeout信息,表示不可用或者是服务器做了保护,说明公用的NTP服务器越来越安全。所以想要利用这样的服务器还是手工搭建的比较理想。

表1 全球NTP活跃服务器数量

作为一个防守方,如果NTP服务器变得安全了,那么这类反射攻击会逐步消失,这对与一些大型的黑客组织来说只能回归到原始的僵尸网络的DDoS模式中去,这将消耗更多的资源和财力,防御的强度和难度都有所下降。

尽可能通过NTP的服务器池管理模式去寻找一台新的漏网之鱼,但在研究过程中的带有漏洞的服务器全部被合理修复。如图6所示,在测试中给出我们嗅探这类服务器的代码和范例。

图6 嗅探NTP服务器

4 结束语

本文所研究的基于NTP反射的DDoS的攻击方法,破坏力强,危害性大,从其流量规模上来说,可以将其定性为网络战争的武器。以自动化较高的NTP反射攻击武器为研究重点,旨为更好掌握攻击的来龙去脉,让研究攻击的思维模式逐渐地固定下来。坚定地防御、封堵,而非主动攻击一些非法的数据传输信道,坚信合理地使用网络防御技术可以有力回击非法的网络攻击行为,比如组织交换恐怖袭击的数据,控制犯罪分子的网络信道等等。随着我国网络用户日益庞大,使得树立网络主权的观念是必要的,因此,只有使得互联网攻技术得到健康发展,才能让世界网络更加安全。

[1]张锦辉,张文秀.网络设备参与的DDoS防御系统的构建与仿真[J].信息技术与网络安全,2019,38(01):1-6.

[2]Radware.DDoS防护措施是确保应用、站点及数据可用性的基础[J].网络安全和信息化,2019(03):26-27.

[3]金大刚.智能自动化DDoS防御[J].网络安全和信息化,2018(12):20-21.

[4]张宇.应用层DDoS攻击检测研究[D].南京邮电大学,2018.

[5]刘东.基于改进的Adaboost算法在应用层DDoS攻击检测中的应用[A].中国计算机用户协会网络应用分会.中国计算机用户协会网络应用分会2018年第二十二届网络新技术与应用年会论文集[C].中国计算机用户协会网络应用分会:北京联合大学北京市信息服务工程重点实验室,2018:4.

[6]金磊.基于大数据分析的DDOS检测系统的设计与实现[J].自动化与仪器仪表,2018(11):121-124.

[7]Hafiz Husnain Raza Sherazi,Razi Iqbal,Farooq Ahmad,Zuhaib Ashfaq Khan,Muhammad Hasanain Chaudary. DDoS attack detection: A key enabler for sustainable communication in internet of vehicles[J]. Sustainable Computing: Informatics and Systems,2019,23.

[8]Rojalina Priyadarshini,Rabindra Kumar Barik. A deep learning based intelligent framework to mitigate DDoS attack in fog environment[J]. Journal of King Saud University - Computer and Information Sciences,2019.

猜你喜欢
数据包端口服务器
二维隐蔽时间信道构建的研究*
一种有源二端口网络参数计算方法
一种端口故障的解决方案
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
隔离型三端口变换器的H∞鲁棒控制
PowerTCP Server Tool
BlackJumboDog
现有网络架构及迁移方案
C#串口高效可靠的接收方案设计
2018年全球服务器市场将保持温和增长