基于负载预测的DDoS攻击检测方法

2018-03-06 01:45唐坤剑
网络安全技术与应用 2018年1期
关键词:阀值报文端口

◆唐坤剑

(郑州轻工业学院易斯顿美术学院 河南 451450)

0 引言

DDos(Distributed Denial OfService)攻击,即分布式拒绝服务攻击,也称为洪水攻击,其攻击危害巨大、难以防御。DDoS攻击具有突发性,会致使被攻击主机负载的急剧增加,而基于异常的检测是该类攻击最为有效的检测手段之一。网络攻防中信息的攻取是攻防对抗中的第一步,也是非常关键的一步,从哪里攻取,获取什么样的信息,直接影响着随后的防护和对抗质量,因此进行网络异常的检测,尤其是进行攻击检测是进行防范的关键所在。

进行异常检测的核心问题是怎样实现负载正常状态的描述。现在普遍的做法是进行大量样本数据的采集,然后基于统计方法对样本数据进行分析,从分析结果中抽取出正常的模式。这种方法获得的正常行为描述建立在历史数据之上,时效性较差,以此为依据进行的异常判断的准确性并不太高。

1 常见的DDoS攻击方式

DDoS的攻击方式有很多种,最基本的攻击就是利用合理的服务请求来占用有限的服务资源,使合法用户无法得到正常响应。

1.1 SYNACK Flood攻击

SYNACK Flood攻击利用TCP协议实现上的不足,发送大量伪造源IP和源端口的SYN或ACK包,从而致使目标服务器的缓存资源被耗尽,进而阻止合法用户进行正常访问。很多操作系统,甚至防火墙、路由器都很难有效地阻止这种攻击,再因它可以方便地伪造源地址,追查起来比较困难。但这种攻击实施起来有一定难度,需要高带宽的僵尸主机支持。

1.2 UDP/ICMP Flood报文攻击

UDP协议是无连接状态不可靠的通道传输协议,本身不提供协调的消息反馈机制,其可靠性需要依赖其承载的应用程序来进行保障。基于UDP协议的DDoS攻击比较简单易行,攻击者只需伪造大量IP地址和小字节的UDP报文,针对特定的应用服务器及端口大量发包,这些攻击报文将致使目标服务器始终处在繁忙状态,从而影响正常UDP消息的收发。ICMP Flood的攻击原理和ACK Flood原理相似,属于流量型攻击,都是利用大流量给服务器带来较大的负载,从而影响服务器的正常服务。

1.3 应用层资源消耗型

应用层攻击并非依靠大量的流量取胜,而是通过模拟用户发送请求,对特定的应用或服务进行资源的消耗和占用,再利用较小的流量攻击就可达到耗尽应用层资源进而拒绝提供服务的目的,其典型代表有HTTP GET和DNSQuery攻击等。

(1)HTTP GET攻击

HTTP GET攻击主要通过端口扫描程序在互联网上寻找匿名的HTTP代理或者SOCKS代理,并构造多个IP地址和服务器建立有效的 TCP连接,再不断向目标服务器特定页面发起 HTTP GET请求,实现诸如数据库的注册、查询、刷新等操作以消耗服务器资源,当发送的频率足够高的时候将致使服务器侧忙于响应这些请求致使 CPU资源不足,从而使得其他的正常请求得不到处理。

(2)DNSQuery攻击

DNS服务作为互联网的域名查询业务,对于互联网的访问非常重要。攻击者通过模拟大量IP地址发起大量的DNS域名查询请求,致使DNS服务器资源被大量消耗,网络带宽被占用耗尽,使得无法传送正常的 DNS查询请求;或者发送大量非法域名查询报文引起 DNS服务器持续进行迭代查询,从而达到用小流量实现攻击的效果。由于 DNS服务器在网络中的特殊位置,小规模的DNS拒绝服务攻击很可能也演变成大流量的冲击事件。

2 DDoS攻击的检测方法

基于DDoS攻击的特性利用基于负载预测的DDoS检测方法,能有效检测网络异常和DDos攻击。首先预测待检测时刻的服务请求数,将其作为待测时段内正常服务的计数值,然后,以此为参照进行异常判断,这样不仅可以提高预测的准确性,而且还可以缩减历史记录存储量。为此提出以下针对常见的DDoS攻击方式提出可行性较高的检测方法。

2.1 SYNACK Flood的检测

一般情况下网络中传输的SYN包和SYN ACK包的数量是相等的,即使有网络延迟时其数量相差也不大。针对SYNACK Flood攻击时网络中充斥着大量的SYN ACK包的特点,检测方法如下:

设定一个定时器clock,计数器syn_ack_num和阀值alarm;在每一个时间片段开始,令syn_ack_num= 0;

当收到一个SYN包,syn_ack_num =syn_ack_num -1;

当收到一个SYN ACK包,syn_ack_num = syn_ack_num + 1,同时,检测syn_ack_num是否大于 alarm,如果大于则表明有TCP SYN ACK Flood攻击发生。

2.2 UDP Flood 的检测

UDP Flood攻击是攻击者向被攻击主机发送大量的UDP包。Trinoo中UDP Flood攻击的特点是使用真实的源地址向攻击目标的任意端口发送UDP包。一般情况下,服务器开启的UDP端口数量有限,对于UDP包服务器都要返回一个端口不可达的ICMP包,所以可以统计单位时间内从服务器来的到同一 IP地址的端口不可达的ICMP包的数量是否超过预先设定的一个阀值。因此,对于这种攻击的检测方法是:

设定一个计时器clock,计数器udp_num和阀值 alarm。在每一个时间片断内,执行以下操作:在时间片段开始令udp_num =0,然后每接受一个端口不可达的 ICMP包,相应的目的地址对应的udp_num值增加1,并检查udp_num的值是否大于alarm,如果大于,则表明有攻击发生。

2.3 ICMP Flood 的检测

ICMP Flood攻击是攻击守护进程向攻击目标发送大量的ICMP_ECHOREQUEST包,攻击特点是被攻击网络中充斥着大量的ICMP_ECHOREQUEST包。因此对于这种攻击的检测方法为:

设定定时器clock,计数器icmp_num和阀值 alarm,在每一个时间片段开始时令 icmp_num = 0;当收到一个ICMP_ECHOREQUEST包时,icmp_num = icmp_num +1,同时检测icmp_num是否大于alarm,若大于则表明有ICMP Flood攻击发生。从以上对各类攻击的检测可以看出,其检测思路是:根据各种攻击发送报文的特征和流量特征,来计算每一种包发送的速率是否大于一个阀值。

3 正常流量和攻击流量的区分方法

从以上对常见DDoS攻击程序所采用的流量攻击方法的特征分析和检测方法来看,每种攻击形式都有明显的特征,下面依次介绍对每种攻击方法所产生的流量和正常流量进行区分的方法。

3.1 SYN ACK Flood流量的识别

客户端在返回一个SYNACK包前,一定有一个来自于服务器的SYN包。因此,可以记录所有来自于服务器的SYN包信息。使用哈希表可以节省存储空间和提高检索效率,以SYN包的IP头的部分字段,包括源地址,目的地址,源端口和目的端口作为哈希表的索引。该哈希表的每一个记录只需要1bit,值为1表明收到了一个SYN包,为0表示没有。当收到一个SYN ACK包时将其 IP头中的部分字段,包括目的地址、源地址、目的端口和源端口作为索引,检索上面的哈希表,若相应位置为1,则表明前面有一个来自于服务器的SYN包,该SYN ACK包是正常流量,然后将该位置0,反之,则是 SYN ACK Flood流量。

3.2 UDP Flood 流量的识别

在检测UDP Flood时,可以看出UDP Flood流量已经有了明显的特征。当检测出trinoo发起的UDP时,立即识别出攻击发起的主机地址。因此,直到检测到UDP Flood攻击结束前,从该主机发送来的所有UDP包都是UDP Flood流量。当检测到TFN、TFN2K和stacheldaht的UDP Flood攻击发生时,根据数据包的源端口和目的端口的特征则可以区分出UDP Flood流量。

3.3 ICMP Flood流量的识别

虽然ICMP Flood攻击非常容易检测,但是ICMP Flood攻击流量和正常流量却没有明显的差别,因为ICMP Flood是对正常协议的滥用。由于ICMP协议只是IP协议的辅助协议,所以当检测到有 ICMP Flood攻击时,可以过滤掉所有的ICMP_ECHOREQUEST包,为进一步过滤这些恶意报文提供了依据。当检测到某种攻击发生时,可根据区分相应攻击流的方法,启动相应的过滤器过滤恶意流量,直到攻击结束。

4 结束语

基于负载预测DDoS攻击的检测方法以预测值作为未来时段内网络正常行为的描述,改进了正常行为描述的时效性,提高了攻击的检测预期,并具有低延时性,对分布式拒绝服务攻击的检测有一定的指导性。

[1]姚淑萍胡昌振.基于负载预测的分布式拒绝服务攻击检测方法研究[J].科技导报,2005.

[2]龚冉.基于SDN的负载均衡和DDOS攻击检测技术的研究[D].安徽大学,2016.

[3]徐斌.DDOS攻击方式和防护方法的研究[J].网络安全技术与应用,2014.

[4]王振明,张亚娥.一种DDoS攻击检测方法[J].甘肃科技,2007.

猜你喜欢
阀值报文端口
基于J1939 协议多包报文的时序研究及应用
一种端口故障的解决方案
CTCS-2级报文数据管理需求分析和实现
硬件解耦三端口变换器的软开关分析与仿真
光敏传感器控制方法及使用其的灭蚊器
浅析反驳类报文要点
交换机生成树安全
基于小波分析理论的桥梁监测信号去噪研究
激光多普勒测速系统自适应阀值检测算法
ATS与列车通信报文分析