基于时间窗统计的LDoS攻击检测方法的研究
2010-11-06吴志军曾化龙岳猛
吴志军,曾化龙,岳猛
(中国民航大学 电子信息工程学院 智能信号与图像处理天津市重点实验室,天津 300300)
1 引言
传输控制协议TCP(transfer control protocol)提供了一种可靠的面向连接的字节流传输层服务[1,2]。当可信任的用户遵守与合作的时候,TCP超时重传RTO(retransmission time out)机制[3]可以使网络的吞吐量(throughout)达到最大。然而,超时重传机制也存在弱点,容易遭受来自恶意用户实施的拒绝服务DoS(denial of service)攻击,使受害端合法TCP流(flow)的带宽吞吐量大幅度的降低。2001年在Internet2 Abilene骨干网络检测到一种新型的DoS攻击方式[4]。它是一种周期性的脉冲(pulse)攻击,由于该攻击在时域(time domain)上平均速率很低,具有流量占用带宽小的特点,被定义为低速率 DoS攻击,记为 LDoS(low-rate denial of service)。Aleksandar Kuzmanovic和 Edward W.Knightly[5]形象地将其称为“地鼠”分布式拒绝服务(shrew DDoS)攻击;由于LDoS攻击的信号形式为周期性的脉冲,LUO和CHANG[6]又将其称为“脉冲调制”(pulsing)攻击;因为LDoS攻击的最终表现形式是降低被攻击目标的服务质量,所以UIRGUIS等[7]将其称为“降质”(RoQ, reduction of quality)攻击。
单个LDoS攻击的波形如图1所示。它可以用一个三元参数组(T,L,R)来描述[5,8]。其中,T为攻击周期,是2次连续的攻击脉冲之间的时间间隔。它是通过来自可信赖源端估计的TCP RTO计时器执行情况来计算的;L为脉冲宽度,它描述了攻击者持续发包的时间段;R为脉冲幅度,它显示了攻击流的最高速率。
图1 LDoS攻击波形示意图
为了获得更高的吞吐量,TCP协议使用带固定增量的预定义的RTO值。在单一的TCP流中,如果攻击流量在往返时间RTT(round-trip time)内足够导致数据分组(packet)丢失时,这个TCP流将进入超时状态,并且尝试在 RTO时间后再发送一个新的数据分组。如果LDoS攻击的周期大致等于这个TCP流的RTO时,这个TCP流将持续丢失数据分组而不能够退出超时状态,以至于其吞吐量大幅度下降。
一个成功的LDoS攻击在保证不被检测的情况下必须具有:1) 足够大的R诱使合法的TCP流分组丢失;2) 足够长的L引起重传。如果R和L超过一定的值就存在被检测机制发现的可能。LDoS攻击可以估计RTO时间来调整其攻击周期,周期性地发送攻击脉冲。当脉冲达到最高速率R时,使得合法的TCP流试图发送数据分组到目的主机的网络链路被严重的阻塞,导致合法的TCP流量被迫启动拥塞控制。极大地降低它们的分组发送速率,影响正常的服务请求的响应时间,从而达到 LDoS的攻击的目的。
LDoS攻击的特点使其具有很强的隐蔽性,可使受害端主机长时间的遭受攻击而不被察觉。其表现出来的破坏性甚至比Flood DDoS攻击更大。因此,针对LDoS攻击检测方法的研究具有一定的实际应用价值。
2 相关工作
自从 LDoS攻击出现以来,受到了众多研究者们的关注。其中,Aleksandar Kuzmanovic和Edward W. Knightly[5]对LDoS攻击产生的机制进行了详细的研究,并提出了几种对付 LDoS攻击的方法;何炎祥和刘陶[9]等对 LDoS攻击方式进行了分类描述和建模,并对LDoS攻击的检测防范难点进行了讨论。
由于LDoS攻击具有极强的隐蔽性,其检测方法一直是研究的热点。传统的基于网络的入侵检测系统NIDS (network intrusion detection system) 主要是通过单位时间内的链路流量是否超过某一预先设定的阈值(threshold)来判断网络中是否发生DDoS攻击。现有的DDoS攻击检测方法大都是基于时间平均流量的。由于单个LDoS攻击的流量很小,其脉冲的幅度远小于NIDS中设定的阈值,所以LDoS可以逃避基于流量时间平均的检测方法。因此,时域检测几乎对LDoS攻击没有效果。目前,LDoS攻击的检测方法基本都是在频域(frequency domain)上采用信号处理技术实现的,主要方法有3种:1) 利用功率谱密度(PSD, power spectrum density)检测法。CHENG[10]首先提出了在频域利用功率谱密度PSD分析的方法检测和防御LDoS攻击的思想;YU CHEN和KAI HWANG等[11,12]采用归一化累计功率谱密度 NCPSD(normalized cumulative PSD),利用正常流量和攻击流量 NCPSD之间的最大距离位置作为检测点,用于判断 LDoS攻击。2) 离散小波变换DWT分析法。BARFORD.P.和KLINE. J.[13]等首先提出了采用小波(wavelet)处理的思想,利用离散小波变换(DWT,discrete wavelet transform)技术将网络流量(traffic)变换成高、中和低3个频率分量,以便查找攻击流量;Xiapu Luo和Rocky K. C. Chang等[6,14]对LDoS攻击的性能方面进行了仿真和试验,并采用小波技术在频域中检测LDoS攻击的频率分量;魏蔚和董亚波等[15]提出了以低频功率和为指标的检测方法,同时基于现有的漏桶限流和增加路由器接收缓存的响应方法,提出了结合包队列和漏桶的响应方法。3)自相关(autocorrelation)分析法。Amey Shevtekar和Karunakar Anantharam[16]等提出了在单个边界路由器(edge router)上实现的LDoS攻击流量检测方法。该方法通过对网络流量进行分析,利用流量的自相关特性检测周期性的攻击流量。
频域检测LDoS攻击的方法存在正确检测概率(detection probability)不能达到最佳,以及虚警(false negative)和漏警(false positive)概率偏大等问题。本文在分析LDoS攻击的原理和产生机制的基础上,针对其攻击的性能进行了研究;提出了一种在时域上利用时间窗(time window)采样,并对攻击流量的周期性进行统计分析的LDoS攻击检测方法。试验结果表明该检测方法具有较高的检测概率以及较低的漏报和误报概率。
3 时间窗统计检测
时间窗统计检测就是在一定的采样时间内,对到达的数据分组进行统计分析,准确判定LDoS攻击脉冲的突变时刻,即判定某个时刻是否有流量突变出现。因此,严格意义上来说,时间窗统计检测实际是一种脉冲峰值(peak)检测。如果连续采样的时间设置的足够长,则在一定时间内可以将不同特征参数T/L/R的多个攻击脉冲检测出来。
由于 LDoS攻击的脉冲持续时间很短①如果LDoS攻击的脉冲宽度较大,则它的平均速率就会很大,实际上就成为Flood DoS攻击了。,一般在几百毫秒时间内。因此,对于一般的网络流量采样②一般网络流量采样分析的采样间隔最小为0.5s,常用的为1s,3s,甚至 5s。分析几乎很难捕捉到LDoS攻击脉冲。并且,现有入侵检测方法为了提高检测的准确率,而采用较长时间的流量统计分析,导致其反应时间大于LDoS攻击脉冲的持续时间。所以,当LDoS攻击脉冲持续时间结束,入侵检测系统尚未反应过来。
3.1 LDoS攻击流量分析
为了研究LDoS攻击的流量特征,本文建立了LDoS攻击流量的模型,搭建了实验网络环境(如图2所示),并产生了真实的LDoS攻击流量。
图2 实验环境
图 2中的路由器为 Cisco2621,路由器间的带宽10Mbit/s,其他各设备配置如表1所示。
受害端服务器(Victim)提供FTP服务,正常用户对FTP服务器进行上传和下载操作。LDoS的攻击参数为:T=1s,L=300ms,R=10Mbit/s。
表1 实验设备配置
通过对到达目标网络(受害者)的数据分组进行采样和统计分析,观测到LDoS攻击的数据分组情况如图3所示。
图3 正常及攻击流量分组个数统计
图3 是实验中对正常流量和攻击流量,以及正常流量加攻击流量进行6 000个分组到达个数的采集和统计后得出的结果。从图3中可以看出LDoS攻击脉冲与正常流量之间的区别:1) 正常流量在短时间内的流量比较平稳,而LDoS攻击流则表现出明显的周期性,以及脉冲特性;2) 在遭到LDoS攻击后,正常流量明显下降,但是在整个短期时间段内却留下几个明显的不规则高速脉冲特征。
通过测试和分析发现LDoS攻击在它的每个攻击周期内均会产生一个较高的攻击脉冲。
3.2 时间窗统计
为了准确判定LDoS攻击脉冲的突变时刻(流量突变),统计的时间窗长度可以依据LDoS攻击流形成周期性的异常脉冲作为特征来匹配,即针对LDoS的几个特征参数T/L/R进行检测。根据LDoS攻击的脉冲持续时间很短的特点,在时间窗长度TWL(time window length)内采样的间隔(sample time)根据对网络流量学习统计的结果可以设定为100ms、200ms和300ms。这是因为LDoS攻击一个周期内的持续时间L通常小于300ms。这里选取3个典型时间分析。正确选取采样间隔可以完全记录下攻击发生时的峰值数据分组数。但采样间隔不能过小,否则当攻击发生时,可能导致与同周期其他采样点的差异不明显。
通过对LDoS攻击流量的模拟和分析,根据学习的经验设定3个门限系数:前门限系数∂、后门限系数β和中门限系数λ作为判定在某个时刻出现流量突变的依据。这里,门限系数∂、β和λ均为大于1的数值,其具体的设定值是根据大量试验得到的经验值。门限系数选取与采样时间和当时的采样值x(n)密切相关。当时间窗长度和采样时间选定后,采样值的均值乘以门限系数就可判定是否存在突变脉冲,从而可以判定是否存在LDoS攻击。因此,选取不同的采样时间,在不同的Iindex值下,选取不同的门限系数,可以得到不同的检测率。当检测率达到最高的情况下,此时选出的门限系数就是最佳的。
下面以时间窗TWL内采样长度为300ms为例说明时间窗统计检测算法的过程。其核心是比较所有采样点中最大值和其他值的平均最大值间的差异。若此差异明显,则说明可能存在攻击脉冲。其步骤如下。
1) 在设定的时间窗TWL内按照300ms采样间隔进行采样,每300ms采样得到的数据记为: x(n)(n=0,1,2,…,N-1,其中 N=(TWL)/300ms),表示在一定长度的时间窗内采样得到的数据个数。
2) 从 x(n)中选择最大值:
并记录最大值的角标Iindex值;对全部300ms中采样得到的数据进行逐一比较,查找其中最大数值的数据,作为比较判断的起始值。
3) 如果Iindex=0,判断是否成立。假如成立,则存在突变脉冲。
如果Iindex=0,说明在本次采样中第一个采样值就是最大的,即可能在一开始采样的时刻就存在突变脉冲。为了进一步证明,将后面连续2个采样值进行求和并平均,然后与前门限系数∂相乘,得到一个平均数值A。将最大值max与平均值A进行比较,如果max>A,则可以判定存在突变脉冲,即意味着存在LDoS攻击。
由于前门限系数∂是大于1的值,它与连续2个采样值的求和平均值相乘,是为了防止在2个采样值中间一个值很大(处于脉冲的边缘),而另外一个值很小(处于脉冲结束期),导致不能够正确检测出突变脉冲的情况。而在判定Iindex=0为最大值后再判定后面连续的2个采样值的求和平均,是为了防止在 Iindex=0时刻正好出现一个尖锐毛刺干扰的情况。上述2个措施均为保证检测的可靠性和检测率。
4) 如果Iindex=N-1,判断是否成立。假如成立,则存在突变脉冲。
如果Iindex=N-1,说明在本次采样中最后一个采样值就是最大的,即可能在本次采样结束前存在突变脉冲。为了进一步证明,将前面连续2个采样值进行求和并平均,然后与后门限系数β相乘,得到一个平均数值B。将最大值max与平均值B进行比较,如果max>B,则可以判定存在突变脉冲,即意味着存在LDoS攻击。
5) 如果3)和4)情况不成立,判断是否成立。假如成立,则存在突变脉冲,并输出检测信息。
如果最大值是出现在采样的中间,则把最大值出现前的2个连续的采样值求和并平均,然后再将最大值出现后的所有采样值(包括最大值在内)进行求和并平均,将这2个求和平均值相加并乘以中间门限系数λ得到值C。将最大值max与平均值C进行比较,如果max>C,则可以判定存在突变脉冲,即意味着存在LDoS攻击。
3.3 时间窗统计检测算法实现流程
根据时间窗统计检测的过程,本文设计实现了基于时间窗统计的检测算法,其流程如图4所示。
图4 时间窗统计检测流程
图 4所示的时间窗统计检测流程实现步骤如下。
1) 进行参数设置,例如:时间窗长度、采样时间和最大突变次数值(阈值)。
2) 根据单位时间窗内高速脉冲的个数是否超过设定的阈值,判定是否存在脉冲突变。如果没有脉冲突变,则继续开始在时间窗内采样数据;如果存在脉冲突变,则计数器 Kcount加 1。这里,Kcount表示在规定时间内突变的次数。
3) 判定在规定时间内,突变的脉冲次数是否大于预先设定的阈值。如果没有超过阈值,则继续采样数据;如果大于阈值则给出攻击告警,并提交检测结果。
4 实验及结果分析
为了测试时间窗统计检测方法的性能,下面在实际的网络平台上搭建更为复杂的测试环境,针对不同长度的采样时间情况进行了测试和统计分析。
4.1 测试环境
时间窗统计检测的实验环境由 6台计算机、3台服务器、2台交换机、2台路由器和1个防火墙组成,如图5所示。
在图5中,傀儡机1、2、3模拟LDoS攻击,采用本文编制的LDoS攻击流量(如图3所示)。3台傀儡机是在一台控制台计算机管理下发送攻击流量的;正常用户4和5用于模拟访问服务器的正常访问流量。防火墙设置在受害端的上一跳路由。
在操作系统配置方面,服务器1和2基于Linux系统,提供Web、FTP服务;服务器3基于Windows,同时提供Web及FTP服务。Web采用Apache,FTP采用Proftp。测试环境中其他设备的配置如表2所示。
表2 测试环境设备配置信息
图5 时间窗统计检测测试环境
测试环境中,正常用户数据流的RTT按照通常的设置为100ms[1~3];RTO按照RFC最小重传时间推荐RTOmin为1s[1~3]。LDoS攻击的R、T和L等参数的配置如表3所示。
表3 LDoS攻击的R、T和L等参数的配置
测试环境检测的有关参数设置如表4所示。
表4 测试环境中检测的有关参数设置
对网络中的流量按时间窗进行采样,采样间隔为 300ms,则检测突变计数器 Kcount是在统计时间长度(比如:6s)内统计超过设置的最大计数次数值(阈值)的次数。即如果时间窗长度为1.2s,则6s内可以得到5次判断数据,即6s内可以得到5组Kcount数据。如果5组数据中有3组(含3组)以上超出阈值,则判定存在脉冲突变,就可发出攻击的警报。因此,检测突变计数器 Kcount的最大值(阈值)设置为3。
4.2 测试结果
基于时间窗检测LDoS攻击的测试包含3个内容:1) 时域的时间窗统计检测测试;2) 频域的功率谱密度PSD检测;3) 时频域混合检测。
测试的性能指标主要包括3个:1) 正确检测概率(准确率);2) 漏报(漏警)概率;3) 误报(虚警)概率。
1) 时域的时间窗统计检测性能。
在时域的时间窗统计检测的参数设置如下:
① 采样时间为300ms。
② 门限系数取攻击发生时,1 000次试验中不同Iindex情况下,检测率达到最高时的值。
表5统计在不同角标和门限系数组合下,检测率的大小。根据表5的统计结果可以得出:设置门限系数的值为1.6∂=、1.6β=和1.8λ=时检测性能最佳。
注:其他采样时间(如200ms和250ms)下的最佳门限系数可以按照同样的方法获得。
③ 时间窗的取值设置为1.2s。
表5 不同角标和门限系数组合下检测率统计
同样地,本文在时域上针对采样时间长度为200ms、250ms和300ms的3种情况进行了测试,得到的测试结果统计如表6所示。
表6 时域的时间窗统计检测性能测试结果
从表6可以看出,时间窗统计检测方法的整体性能指标比较满意。准确率到达96.5%以上;而漏报率和误报率则小于 2.8%以下;另外,采样时间的长度与检测结果关联,采样的时间长度越大,则性能越好。
2) 频域的功率谱密度PSD检测性能。
本文根据Chen和Kai Hwang等[10,11]提出的采用归一化累计功率谱密度 NCPSD(normalized cumulative PSD),利用正常流量和攻击流量NCPSD之间的最大距离作为检测LDoS攻击依据的思想,在本文搭建的试验环境上进行了频域的功率谱密度PSD检测性能测试。其中,参数设置如下:
① NCPSD的门限的值设置在0.68~0.85之间;
② 判断点设置在频点10Hz。
在频域采样时间长度为3s、4s和6s的3种情况下得到的测试结果如表7所示。
表7 频域的功率谱密度PSD检测性能测试结果
从表7可以看出,准确率到达95.2%以上;而漏报率小于3.8%,误报率则小于4.5%;另外,频域采样时间的长度与检测结果关联,采样的时间长度越大,则性能越好。
3) 时频域混合检测性能。
在时域利用时间窗统计进行检测LDoS攻击的时候,由于网络流量在某一特定的情况下具有一定的突发性,即在某一时刻出现较大的流量峰值,导致时域的检测方法存在一定概率的误判。而且,对于分布式的LDoS攻击,由于每个攻击点的平均发送速率进一步下降,从而使得时域检测的准确率下降。因此,本文提出将时域的时间窗统计检测方法与频域的功率谱密度PSD检测方法组合使用,即采用时频域混合检测(hybrid detection)的方法,所利用的LDoS攻击特征更多,判断依据增多,使得检测准确率会进一步提高。
在时频域混合的检测方法中,可以根据具体情况选定其中的一种算法为主,而另一种算法为辅。检测的流程如图6所示。
图6 时频域混合检测流程
图6 中,Kcount为突变脉冲的统计次数;N为设置的突变脉冲次数的阈值;t为采样统计时间;T为判定时间阈值(规定的判定时间长度);E为NCPSD的阈值,即归一化的功率谱密度。时频域混合检测的流程如下。
① 判定单位时间窗内高速脉冲的个数是否超过设定的阈值,如果大于阈值并且还未到达最后的判决时间,则进行频域算法的运行;
② 判断 NCPSD是否大于门限,如果频域NCPSD也判断大于阈值,那么不必等待判决时间是否到达,直接认定是攻击;
③ 如果时域和频域检测算法中的一个没有检测到LDoS攻击,而另外一个检测到LDoS攻击,则按照判断出有攻击的那个算法进行跟踪,另外一个的算法暂时休眠。
时频域混合检测的测试仍然采用正常用户4或5进行大文件的下载,而傀儡机1、2和3实施攻击,释放LDoS攻击流量。其测试分为2个步骤进行:
① 准确率和漏报率测试;
② 误报率测试。
时域检测部分设置采样时间分别为 200ms,250ms和300ms;频域检测部分设置采样时间长度分别为2s、4s和6s。
为了测试采样时间长度对检测性能的影响,本文测试针对时频域的每个采样时间进行分组测试,每组测试20次。测试结果如表8所示。
表8 时频域混合检测结果
从表8可以看出,当时域采样时间为300ms,频域采样时间的长度选为6s时,检测的准确率最高达到99.3%,漏报率和误报率最低,分别为0.7%和0.8%。但是,当网络环境和服务发生变化时要通过实验来选择最佳的采样时间以达到最佳的检测准确率,以及最优的漏报率和误报率。
综合上述测试结果可以得出结论:时频域混合检测方法的检测性能最佳,具有较高的准确率,以及较低的漏报率和误报率。
5 结束语
本文针对低速率拒绝服务LDoS攻击的检测进行了研究,提出了在时域上基于时间窗统计的检测方法。为了验证检测方法的性能,本文主要进行了3个内容的试验:1)在时域上基于时间窗统计检测LDoS攻击方法的测试;2)在频域上的归一化功率谱密度NCPSD检测方法的测试;3)时频域混合检测方法的测试。针对每个内容的测试均得到了比较满意的测试结果。试验结果表明: 1)基于时间窗统计的检测方法准确率达到96.5%以上,而漏报率和误报率则小于2.8%;归一化功率谱密度NCPSD检测方法的准确率达到95.2%以上;而漏报率小于3.8%,误报率则小于4.5%;混合检测方法当时域采样时间为300ms,频域采样时间的长度选为6s时,检测的准确率最高达到99.3%,漏报率和误报率最低,分别为0.7%和0.8%。2)无论是时域或者是频域,其采样时间的长度与检测结果关联。采样的时间长度越大,则性能越好。3)时频域混合检测方法的检测性能最佳,具有较高的准确率,以及较低的漏报率和误报率。
通过上述结果可以发现,在未来研究LDoS攻击检测方面,必须结合时域和频域的特征进行分析,采用多种检测手段进行混合检测,才能得到比较满意的结果。由于本文测试的网络环境比较简单,得到的试验数据比较理想。因此,本文将来的工作重点就是把本文的方法移植到实际的大规模网络环境中进行测试。
[1] STEVENS W R. TCP/IP Illustrated, Vol.1: The Protocols[M]. Addison-Wesley Professional Computing Series, 1994.
[2] STEVENS W R. TCP/IP Illustrated Volume 1: The Protocols[M].Addison-Wesley, Hardcover, Published, 1994.
[3] PAXSON V, ALLMAN M. Computing TCP’s Retransmission Timer,November 2000. Internet RFC 2988[S].2000.
[4] DELIO M. New breed of attack zombies lurk[EB/OL]. http://www.wired. com/ news/technology/0,1282,43697,00.html, 2010.
[5] KUZMANOVIC A, KNIGHTLY E W. Low-rate TCP-targeted denial of service attacks—the shrew vs. the mice and elephants[A]. Proceedings of ACM SIGCOMM 2003[C]. 2003.75-86.
[6] LUO X P, ROCKY K, CHANG C. On a new class of pulsing denial-of-service attacks and the defense[A]. Network and Distributed System Security Symposium (NDSS'05)[C]. San Diego, CA, USA,2005.
[7] GUIRGUIS M, BESTAVROS A, MATTA I. Bandwidth stealing via link targeted RoQ attacks[A]. Proc 2nd IASTED International Conference on Communication and Computer Networks[C]. Cambridge,MA, 2004.
[8] SUN H B, LUI J C S, YAU D K Y. Defending against low-rate TCP attacks: dynamic detection and protection[A]. Proc IEEE International Conference on Network Protocols (ICNP)[C]. Berlin, Germany, 2004.
[9] 何炎祥, 刘陶, 曹强等. 低速率拒绝服务攻击研究综述[J]. 计算机科学与探索, 2008, 2(1): 1-17.HE Y X, LIU T, CAO Q, et al. A survey of low-rate denial-of-service attacks[J]. Journal of Frontiers of Computer Science & Technology,2008, 2(1): 1-17.
[10] CHENG C M, KUNG H, TAN K S. Use of spectral analysis in defense against DoS attacks[A]. Proc IEEE GLOBECOM[C]. Taipei,China. 2002.
[11] CHEN Y, HWANG K, KWOK Y K. Collaborative defense against periodic shrew DDoS attacks in frequency domain[A]. ACM Transactions on Information and System Security (TISSEC)[C]. 2005.1-30.
[12] CHEN Y, HWANG K. Collaborative detection and filtering of shrew DDoS attacks using spectral analysis[J]. Journal of Parallel and Distributed Computing, 2006, 66(9): 1137-1151.
[13] BARFORD P, KLINE J, PLONKA D, et al. A signal analysis of network traffic anomalies[A]. ACM Proc Internet Measurement Workshop[C]. Marseille, France, 2002. 71-82.
[14] LUO X P, CHAN E W W, CHANG R K C. Vanguard: a new detection scheme for a class of TCP-targeted denial-of-service attacks[A].Network Operations and Management Symposium (NOMS06)[C].Vancouver, Canada, 2006.507-518.
[15] 魏蔚, 董亚波, 鲁东明等. 低速率TCP拒绝服务攻击的检测响应机制[J]. 浙江大学学报(工业版), 2008, 42(5): 757-762.WEI W, DONG Y B, LU D M, et al. Detection and response of low-rate TCP-targeted denial of service attacks[J]. Journal of Zhejiang University(Engineering Science), 2008, 42(5): 757-762.
[16] SHEVTEKAR A, ANANTHARAM K, ANSARI N. Low rate TCP denial-of-service attack detection at edge routers[J]. IEEE Communications Letters, 2005, 9(4): 363-365.