赵振中 廖骏
摘 要:文章介绍了一种异于传统DDos的攻击方式Shrew DDos,重点讨论了这种攻击的特点、攻击参数与效果。由于Shrew DDos的隐蔽性,传统的入侵检测系统很难把它和正常的数据流区分开。文章给出了一个基于数字信号处理(Digital Signal Processing, DSP)的检测方案,并对检测算法的复杂性和检测的实时性进行了讨论。
关键词:DSP;Shrew DDos;攻击检测;信息安全
中图分类号:TP312 文献标识码:B
Abstract: This paper introduces a kind of DDos attack method-Shrew DDoS, which is different from the traditional DDoS attack method. The characteristics, attack parameters and effects of this attack are mainly discussed. Due to the concealment of Shrew DDos, it is difficult for traditional intrusion detection systems to distinguish it from normal data flow. This paper presents a detection scheme based on DSP, and discusses the complexity of the detection algorithm and the real-time performance of the detection.
Key words: DSP;Shrew DDos;attack detection;information security
1 引言
DoS(Denial of Service)攻击,其含义是拒绝服务攻击,这种攻击行为使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷而停止提供正常的网络服务。而DDoS分布式拒绝服务,则主要利用Internet上现有机器及系统的漏洞,攻占大量联网主机,使其成为攻击者的代理。当被控制的机器达到一定数量后,攻击者通过发送指令操纵这些攻击机同时向目标主机或网络发起 DoS攻击,大量消耗其网络带宽和系统资源,导致该网络或系统瘫痪或停止提供正常的网络服务。由于DDoS 的分布式特性,使它具有了比DoS更为强大的攻击力和破坏性。
2 Shrew DDos攻击检测
2.1 TCP流量控制及重发机制
TCP提供面向连接的服務,但被连接的双方可能具有不一致的收发速率或缓冲空间,如果发送的速度过快,可能会使接收方的缓冲区溢出,从而产生严重后果,因此需要一种机制进行流量控制。
TCP提供可靠的运输层。它使用的方法之一就是确认从另一端收到的数据,但数据和确认都有可能会丢失。TCP通过在发送时设置一个定时器来解决这种问题。如果当定时器溢出时还没有收到确认,它就需要重传该数据。对任何实现而言,关键之处就在于超时和重传的策略,即怎样决定超时间隔和如何确定重传的频率。
2.1.1 流量控制
由于网络中存在着大量的数据流,所以需要使用TCP控制协议对这些数据流进行控制。TCP控制网络数据流量的方法主要为慢开始和拥塞控制机制,具体过程如下。
发送端的主机在确定发送报文段的速率时,既要根据接收端的接收能力,又要从全局考虑不要使网络发生拥塞。于是,每个TCP连接要有2个状态变量,接收窗口(Rwnd)以及拥塞控制窗口(Cwnd)。接收窗口根据接收机的能力而设定,是接收端的流量控制,而发送端根据网络的状态对发送流量进行控制,是发送端的流量控制。发送窗口的上限值为Max(Rwnd、Cwnd)。
当TCP连接初始化时,将Cwnd设为1,慢开始的门限值(Ssthresh)设为16。假设接收端的窗口足够大,则拥塞控制主要来自于发送端。一开始为慢开始阶段,当发送端每收到一个从接收端收到的ACK确认包后,就将Cwnd加倍,如此往复。当Cwnd 值到达Ssthresh值时,进入拥塞控制阶段,在每收到一个ACK确认时将Cwnd值增加1,再如此往复。一旦发现网络中数据包丢失(连续收到3个接收端发来的对同一个数据包的接收请求或者没有在规定的时间内收到ACK确认包),就将Ssthresh值设为当前Cwnd值的一半,并将Cwnd的值设为1,并接重新开始慢开始算法。
2.1.2 重发机制
TCP传输控制协议通过一个超时重发机制,在没有接收到对方对数据包正确传送的确认时,认为该数据包在传送过程中已经丢失,因而需要重新传送该数据包。在此过程中,需要引入一个重发定时器,用于计算超时等待时间,以便决定在等待多长的时间之后仍未收到对方确认时,需要进行数据包重发。
重发定时器的算法规范在RFC 2988(Computing TCP's Retransmission Timer)中定义,将该算法概括如下。
2.2 传统的DDos检测方法
传统的基于网络的入侵检测系统(NIDS)主要是通过单位时间的链路流量是否超过某一预先设定的极限值,来判断网络中是否发生DDoS 攻击。而传统的基于主机的IDS(HIDS)主要是通过单位时间内到达主机数据包的数量是否超过某个预先设定的极限值,来判断该主机是否遭遇DDoS攻击。
2.3 Shrew DDos攻击
Shrew DDoS攻击被称为是降低质量(Reduction of Quality,RoQ)攻击,也被称为LDDos(Low DDos)攻击,即低速率的DDos攻击,能够隐秘地、周期性地和低频量地进行攻击而不被受害者发现。Shrew 攻击甚至比淹没型DDoS攻击对网络资源的危害更大。
2.3.1 攻击原理
Shrew DDos正是利用TCP 协议中超时重传(Retransmission Time Out,RTO)機制的弱点来进行攻击的。Shrew DDos 攻击目标是到达目标服务器路径上的必经或者主要路由器,路由器是负责转发数据包的网络设备,一般采用被动队列管理机制管理其缓存。简单地讲,被动队列管理机制就是当缓存溢出时,将后续到达的数据包不做任何处理直接丢掉。而攻击者恰恰抓住了这个特点,直接利用了这种队列管理机制的不完善性来完成Shrew DDos攻击。
如图1所示是一种周期方波型的Shrew攻击流,纵轴的单位是每秒发送包的数量,横轴表示时间。(a)(b)(c)三幅图的攻击效果其实是一样的,在下文中会重点阐述周期方波型Shrew的攻击参数和攻击效果,这里先提出来是为了结合图2说明攻击原理。
如图2所示是受到Shrew攻击时路由器的简单工作模型。
Legitimate TCP Flow是合法的TCP流;
Shrew attack是Shrew攻击流;
Droped是由于路由器无法处理而自动丢弃的TCP包。
在网络中,攻击流与正常TCP 流共同分享瓶颈路由器链路资源,当攻击流脉冲速率R 大于路由器的处理能力时,陆续到达路由器的数据包将会送入缓存队列中。攻击流需要保证在脉冲长度L内,能够逐渐地充满队列,最后造成缓存溢出,使路由器自动丢弃数据包。正常TCP 流一旦发现有数据包丢失,TCP 源端的超时重传机制也就随之启动,同时TCP的流量控制机制也会起作用,发送方会误以为网络相当拥挤,从而减缓发送包的速率。只要Shrew攻击流的周期能与TCP的RTO相匹配(事实上RTO是一个不确定的值),就可以让第一次被丢弃的TCP一直处于重发状态,从而达到拒绝服务攻击的目的。
Shrew DDos与传统DDoS 攻击相比,它在单位时间内的流量相当的低,这是因为它在一个周期里有一段时间是不发送包的,而传统的检测方式正是根据单位时间内的流量特性进行检测的。因此,Shrew DDos攻击具有相当好的隐蔽性,在网络链路中很难被传统的DDoS 攻击检测方法发现。
2.3.2 攻击参数与攻击效果
如图1所示,图中参数解释为三点:
Period of Attack T为攻击周期,取值的大小应该与RTO匹配,否则效果不好;
Burst Rate R为最高发包速率,受攻击方带宽限制,理论上越大越好;
Length of Burst L为在一个周期里以最高发包速率发送包的时间,取值要适当。过大,容易被检测出来;过小,效果不佳。
为取得更好的攻击效果,攻击者需要采用最佳的攻击参数。如图2所示,设t=0时刻开始攻击,将路由器看成一个先进先出的队列,设队列的大小为,t=0时刻已占用的大小为,表示正常TCP数据包的到达速率,为攻击流的最高速率,表示路由器的处理速率,则在时刻:
队列被充满,表示Burst of Rate,则路由器溢出持续时间为:
攻击者期望的是在不被发现的情况下的值愈大愈好,这样才会最大可能地造成TCP包丢失。考虑到在DDos攻击中远远大于路由器的处理能力,使的值充分大是现实的。而在实际的网络中,要想通过公式来计算,是不太现实的。因为实际的网络中的不定因素很多,有些参数攻击者是无法获取的。在文献[5]中,做了不同网络环境下的实验(主要是不同的带宽限制),实验中Length of Burst 值分别为100ms、200ms,做了在同一种网络环境下L值对攻击效果的影响,结果是L越大效果越明显,但前提是不能被发现。
对于攻击周期T这个参数,大致是可以确定攻击周期T与RTO相关,如果T与RTO相匹配就能达到较好的攻击效果。在实际网络中RTO是一个不定的值,但最小值被设为1s。因而攻击周期T也大致为1s。在有些文献里,R受限于带宽,L与RTT相关,T与RTO相关。在参考文献中,T的取值也都为1s左右。在攻击效果上,一个成功的Shrew攻击能使受害主机的吞吐量降低10%左右。
2.3.3 检测原理
通过分析可知,测时域角度检测Shrew DDos攻击是十分困难的,而它的频域特性则为工作者提供了一个检测它的方法。为了说明这一点,工作者在局域网环境下进行了实验,采样程序可以设置成任意的采样周期进行数据包的采样,数据利用Matlab进行处理。另外,考虑时间及实验条件限制,现仅分析单个攻击的情况。
如图3所示,横轴为样本点,是按照1ms的采样周期进行采样的;纵轴为数据包的数量。对于采样的频率,DFT变换时窗的大小等因素对结果的影响,将在基于DSP的方案设计中重点讨论,这里只讨论频域检测的可行性。
因为是单个的攻击,为了达到攻击效果,不得不使用很大的发包速率(即R),使得在时域上Shrew看起来还不是太隐蔽,但如果稍微减少发包时的速率,并且采用DDos方式的话,Shrew 攻击时的时域流量图就会显得正常的多。同时考虑到,传统的检测方式是以单位时间内的流量为标准的,如果对图(b)进行一下平均,会发现这个平均值很正常,也就是说,Shrew攻击可以躲避传统的入侵检测。
现在采用频域分析的方法,设,其中为采样时间间隔,表示在时间段到达检测路由器的数据包数量。它的DFT为:
这里,直接使用了Matlab提供的函数FFT,并以最简洁的方式的形式进行了变换,得到的是幅频特性图。现对结果进行说明,如图4所示。首先,它们的频谱都是关于角频率π对称的。(a)图说明,正常流量的频谱分布相对比较均匀,在整个频段都没有大的差别;(b)幅值较大的部分集中于低频,而高频部分很少。
在讨论频谱集中问题时,能量谱的分布是一个很好的参考,通过能量谱,能够清晰地看到频域里能量集中地位置。根据维纳·辛钦定理,功率谱密度与自相关函数是一对傅里叶变换对。
事实上,信号系统中,自相关函数的定义为:
但考虑到样本的数量有限个,为N,则:
也等价于:
“时域相卷,频域相乘”,在频域里就是幅值的平方,这正是功率的表示形式。
如图5所示,证实了之前的说法,正常流量的能量分布相对均匀,而受Shrew攻击流量的功率谱中,能量大多集中在低频部分。这就提供了检测的依据,研究人员对采样产生的自相关函数做DFT,当低频部分的能量集中程度超过某一Threshold时,则认为该流量是Shrew攻击流。
3 基于DSP的设计方案
根据第2.3.3节的检测原理,设计了一种检测方案。
如图6所示,采样Sampling与超时Time Out的关系是当缓冲区里样点数太少,不够处理,则继续采样;一旦采样点数达到要求,则立即送往DSP Processing进行处理,并清空缓冲区,重新记录采样值。对于DSP Processing模块,它需要进行两大部分的计算,一是自相关函数的计算,另一是功率谱的计算。如图7所示是方案中部分模块的进一步细化。
3.1 方案中参数的确定
如图8所示是一种常见的连续时间信号的离散傅里叶变换分析的处理步骤,相当于方框中所示的部分。
在方案设计中,参数的确定是最为重要的,在文献[1]、[3]、[4]、[6]、[8]中都提到了使用1000Hz的采样频率,即采样周期为1ms,但都没有对采样频率的选取进行解释,本文将对比进行讨论。
通过之前对Shrew DDos攻击的分析,该攻击的周期为1s左右,频率自然就是1Hz,是否能根据采样定理确定采样频率大于2Hz就可以呢?显然不是,因为获取到的信号时正常流量与可能的Shrew DDos流量的叠加,虽然说Shrew DDos流量是周期性的,但叠加后的流量却不具备周期性,采样频率只能根据Shrew DDos攻击时的频谱带宽来确定,采样频率应该不小于信号带宽的两倍。
通过离散数字信号处理理论的学习,由此得知采样频率决定了频谱是否会发生混叠现象。在DFT变换中,窗的长度直接影响着分辨率。为了减少运算量,提高实时处理能力,在窗函数的选择上,直接使用了矩形窗(事实上工作者们没有做什么,只是把达到一定数量的样点送给DSP处理,这个过程没有什么运算量可言,但却相当于给采样后得到的x[n]加了个矩形窗)。
如图9所示,在100Hz采样频率下,在高频部分仍出现较多幅值很大的谱线,这与前面的叙述是相矛盾的。这里的解释是,由于采样频率太低,造成了混叠,使得一部分低频部分的谱线混叠到高频部分,这也说明100Hz的采样频率是远远不够的。同时,也可以看到随着窗长度的增加,频率的分辨率也随之增加,但不论窗函数的长度再怎么大,也无法改变频谱混叠的事实。
如图10所示是采样频率为1KHz下不同L的幅频特性,在图4已有L=1024点的图形,图10不再给出。
如图4(b)和图10(b)所示,可以说明在1KHz下采样,已能够满足无混叠的效果,因为在高频处的能量很少。
观察图(a)发现它与其它图形的差别相当的大,这是因为当采样频率为1KHz时,在一个攻击周期内(设为1s),需要采集1000个样点,当使用L=512的窗函数时,它并不能一次处理完整的采样序列,得出的频谱只是全部频谱的一部分,且得到的这一部分频谱也不是与全谱中的一部分完全相同。这就需要采用重叠相加法或者重叠保留法进行计算,增加了复杂性,实时性不足。
采样率的提高会大大增加数字系统的处理量,而从图10来看1KHz的采样频率已经足够了。在检测的过程中,希望检测系统的实时性很好,能够及时地反映出当前流量的功率谱特性。正如前面所说的那样,这里矩形窗的长度L正好也是研究者们要处理的样本块总长度。文献[1]指出,较长的样本点数能够提高检测的准确度。但过多的样本点会使得一次FFT计算的时间变长,实时性变差。需要在准确性和实时性上做一下平衡。一个好的处理方法是,在样本缓冲区装满前,DFT及后续模块就能将上一次的样本模块处理完,这样系统就不会出现瓶颈。
3.2 复杂性分析
算法的复杂程度,是由自相关函数的计算和DFT的计算决定的。文献[2]对这两个算法进行了比较深入的讨论。利用自相关函数计算中需要多次重复计算中间值的特点,给予了运算量上的削减;利用实序列的对偶性及FFT算法,大大削减了DFT的运算量。
3.3 芯片的选择
综合考虑检测的准确性、实时性和芯片的价格,在德州仪器(TI)的主页找到如下性能的一款浮点处理DSP芯片,价格10.7美元,字长32位,每秒最高乘加次数(Peak MMACS)400百万次,对于1024点做FFT需要次加法和次乘法,再考虑到自相关函数的运算量和频谱分析的运算量均不超过FFT的运算量,因此这款芯片在性能上符合要求。
4 结束语
随着网络技术的快速发展,Shrew DDos攻击者可以轻易地發动大规模的攻击行为,对网络具有很大的威胁性和破坏性,同时也对攻击检测和过滤设备的安全性、时效性、拓展性提出了更高的要求。本文提出基于DSP的Shrew DDos攻击检测改进方法,提高了检测灵敏度、过滤准确性、防御效果性和大流量处理能力,对于控制和减少大规模Shrew DDos攻击行为具有一定的理论价值。
参考文献
[1] Yu Chen, Kai Hwang, and Yu-Kwong Kwok.Filtering of Shrew DDoS Attacks in Frequency Domain [J]. University of Southern California, Los Angeles, CA 90089, USA.
[2] Hao Chen and Yu Chen.A Novel Embedded Accelerator for Online Detection of Shrew DDoS Attacks [J]. Department of Electrical and Computer Engineering, State University of New York - Binghamton, Binghamton, NY 13902, USA.
[3] Bhavana Gandhi and R. C. Joshi.An Efficient DSP-Based Technique to Detect the Signature of Shrew Attacks [J].Department of Electronics and Computer Engineering, Indian Institute of Technology, Roorkee- 247667, India.
[4] Yu Chen, Kai Hwang, and Yu-Kwong Kwok.Collaborative Defense against Periodic Shrew DDoS Attacks in Frequency Domain [J]. University of Southern California, Los Angeles, CA 90089, USA.
[5] Aleksandar Kuzmanovic and Edward W. Knightly.Low-Rate TCP-Targeted Denial of Service Attacks (The Shrew vs. the Mice and Elephants) [J]. ECE/CS Departments, Rice University Houston, TX 77005, USA.
[6] Yu Chen, Yu-Kwong Kwok, and Kai Hwang.Filtering Shrew DDoS Attacks Using A New Frequency-Domain Approach [J].University of Southern California, Los Angeles, CA 90089, USA.
[7] 何炎祥,曹強,刘陶,韩奕,熊琦.一种基于小波特征提取的低速率DoS 检测方法 [J].软件学报,2009,20(4):930-941.
[8] 吴志军,张东.频域过滤DoS攻击方法的研究[J].电子与信息学报,2008,30(6): 1493-1495.
[9] 陈丹妮.基于数字信号处理的一种Shrew DDoS攻击检测方法[J].信息技术,2006,30(2): 53-56.
[10] 段涛,向军,张宏,李千目.基于混合测试的工控系统攻击测试模拟方法研究[J].网络空间安全,2019,10(3): 8-22.