专利名称::一步预测卡尔曼滤波检测LDoS攻击的方法
技术领域:
:本发明涉及一种针对低速率拒绝服务LDoS(Low-rateDenialofService)攻击的检测方法,它属于计算机网络安全领域入侵检测(IntrusionDetection)
技术领域:
。
背景技术:
:拒绝服务DoS(DenialofService)攻击和分布式拒绝服务DDoS(DistributedDenialofService)攻击是目前互联网面临的最大威胁。传统的拒绝服务攻击主要是通过攻击机器发送海量的数据包,消耗目标服务器的网络资源或计算资源,使得用户无法使用服务器资源,以达到拒绝服务的目的,这种方式的攻击称为泛洪式拒绝服务FDoS(FloodDoS)攻击,典型的例子有SYN/ACK泛洪攻击、UDP泛洪攻击、ICMP泛洪攻击等。目前己经有很多针对FDoS攻击的检测和防御方法。然而,随着攻击技术的进一步发展,新的拒绝服务攻击层出不穷,LDoS攻击就是其中的一类。在2003年的SIGCOMM会议上,美国Rice大学的Kuzmanovic和Knightly提出了LDoS攻击,指出只需要周期性发送短暂脉冲,就可以使得TCP流吞吐量严重下降。2005年,在lnternet2的Abilene骨干网上发现了LDoS攻击,LDoS攻击成为现实。LDoS攻击可以使得通过被攻击链路的TCP流吞吐量严重下降。由于互联网上大量应用都是使用TCP作为传输层协议,因此LDoS攻击对网络的损害并不逊色于传统的泛洪式拒绝服务攻击。另一方面,由于LDoS攻击的攻击脉冲持续时间很短,攻击机器的平均流量小,可以使用任意流量作为攻击流量,因此容易避开检测,具有较大的隐蔽性。LDoS攻击的原理TCP协议采用滑动窗口机制和差错控制机制实现端到端流量控制,在实际应用中,这两种机制和其他一些措施结合使用,以达到拥塞检测、拥塞避免以及拥塞恢复的目的。这些措施包括RTT方差估计、指数RTO退避、Karn算法、慢启动、拥塞避免、快速重传、快速恢复等。其中,前三者属于重传定时器(RetmnsmissionTimer)管理机制,其余属于窗口管理机制。TCP的拥塞控制机制使得TCP用户能充分利用带宽,是TCP应用蓬勃发展的一个重要原因。但与其他一些机制类似,TCP的拥塞控制机制在设计的时候没有充分考虑安全性,因而有可能成为拒绝服务攻击的目标。第一种情况,如果瓶颈链路拥塞持续的时间足够长,合法用户在一个往返时间RTT(RoundTripTime)发送的所有数据都被丢弃,那么合法用户将无法收到服务器对其数据的确认,认为网络中存在严重的拥塞,它将等待重传超时RTO(RetransmissionTimeOut)再重新传输数据。在此期间,TCP发送端不发送任何数据,这种机制称为超时等待机制。为了获得更好的性能,RFC298建议TCP流的RTO的最小值为ls,而且每经历一次超时就增加1倍。在结束等待后,合法用户将使用慢启动算法传输数据,开始的拥塞窗口为一个报文段,只有在收到接收端回应之后才成倍增加拥塞窗口。超时等待机制避免了TCP流在网络拥塞的时候加剧网络拥塞,慢启动算法又使得TCP流在网络拥塞消失后有效增加吞吐量。但是,TCP只根据对端返回的响应报文判断网络是否拥塞,容易被欺骗,如果攻击主机在合法用户每次超时重传开始的时候造成瓶颈链路的拥塞,合法用户将反复进入等待超时状态,无法发送数据。第二种情况,瓶颈链路拥塞的持续时间不长,合法用户的部分数据到达服务器,根据TCP协议,服务器将发送重复的响应给合法用户(即在传给合法用户的报文段中响应序号不变),而合法用户收到3个重复响应之后将立刻重传认为已经丢失的数据,而不需要等待超时。当合法用户使用快速重传机制重传报文段时,它认为网络中存在拥塞,需要采取拥塞避免措施。除了使用慢启动算法外,合法用户还可能使用快速恢复算法探测网络的拥塞情况传输数据。慢启动算法需要将拥塞窗口置为一个报文段再开始执行,而快速恢复算法则根据加性增加乘性减少AIMD(Additive-Increase-Multiplicative-Decrease)的方法,把拥塞窗口减少至原来的一半再逐渐增加。无论采用慢启动还是快速恢复算法,合法用户的拥塞窗口都会经历先大幅减少再重新增加的过程,需要一定时间才能恢复到拥塞前的大小。如果攻击机器在短时间内造成瓶颈链路拥塞,合法用户的拥塞窗口无法恢复到较大的值,合法用户的吞吐量也将大幅下降。理想情况下,没有其他流占用链路带宽时,TCP流通过AIMD算法可以在充分利用带宽和不造成拥塞之间取得平衡,拥塞窗口保持一个较大的均值,而在受攻击情况下,TCP流为了不加剧拥塞,会不断减少拥塞窗口直到达到新的平衡为止,这种情况下拥塞窗口的均值往往较小,从而导致吞吐量减少。需要指出的是,攻击机器并不需要造成瓶颈链路长期拥塞,只需要在合法用户的拥塞窗口未完全恢复以前造成短时间拥塞就可以达到攻击目的。上述两种情况表明,攻击机器只需要在合适的时刻发送攻击流,就可以达到攻击目的,这种攻击方式称为LDoS攻击。LDoS攻击使用如图1所示的攻击模式对TCP流进行攻击,一个单源LDoS攻击脉冲序列可以用一个四元组表示为^(rr印。",w),其中r^e",是脉冲攻击长度,代表攻击者持续发包的时间段;S^^是脉冲幅度,代表流量的最高速率;7>^表示两个脉冲之间的时间间隔;W是一次攻击发出的脉冲总数。而多元的LDoS攻击需要产生周期、幅度等特征一致的方波,这些方波到达受害端正好汇聚成一个足够大的脉冲。LDoS攻击的攻击效果与攻击参数选择、被攻击TCP流的性质等因素有关。LDoS攻击的攻击效果取决于参数选取攻击强度决定攻击是否能够使得瓶颈链路拥塞,一般取值需要5大于瓶颈链路带宽;攻击脉冲持续时间决定攻击是否能够使得TCP流进入等待超时状态,理想状态是使得一个RTT内发送的数据报都全部被丢弃从而进入超时状态,取值需要大于TCP流的往返时间;攻击周期决定攻击是否能够使得TCP流周期性进入超时状态,由于大多数TCP流的RTO值都是Is的倍数,因此T一般取攻击持续时间加上ls。Kuzmanovic和Knightly在局域网内、局域网间和广域网做的实验中,TCP最低的吞吐量不超过12%。可见,LDoS攻击在攻击效果方面并不逊色于传统的泛洪式拒绝服务攻击。TCP流的吞吐量并不是一定随着攻击流流量增大而增大,这一点与传统的泛洪式拒绝服务攻击有明显的区别,Luo和Guirouis对最优化攻击参数的问题分别进行了讨论。另一方面,LDoS攻击的攻击效果也与被攻击TCP流的RTT有关,RTT较小的TCP流受到攻击后吞吐量下降较大,主要是因为这些流的最小RTO—般都为ls,RTT较大的TCP流受到攻击后吞吐量下降较小,但其吞吐量本身也不大。此夕卜,多个TCP流受到攻击后,由于同时超时同时恢复可能出现同步现象,也会对各自的吞吐量产生影响。传统的LDoS攻击往往针对某个目标服务器或者某种具体应用,例如针对Web服务器进行SYN攻击会向服务器的80端口发送大量的SYN包等,LDoS攻击可以影响所有通过瓶颈链路的TCP流,其影响更大。根据有关研究,LDoS攻击对于多种版本的TCP协议,包括TCPTahoe、TCPReno、TCPNewReno、TCPSACK等都有很好的攻击效果,其原因是这些版本的TCP协议在设计的时候都没有考虑安全性,容易被攻击制造的短期拥塞所欺骗。同时,瓶颈链路采用不同的队列管理机制,包括Droptail、RED、RED-PD、Choke等,对LDoS攻击的攻击效果影响不大。这些队列管理机制对较长时间尺度的流量进行统计检测,能限制长时间的大流量的异常流,但LDoS攻击只是在很短时间内发送大流量,其平均流量不大,因而容易避开检测和过滤。与传统的泛洪式拒绝服务攻击相比,LDoS攻击更为隐蔽,更具威胁性。这是因为(1)LDoS攻击只是在较短时间拥塞链路,可以使用较小的流量达到相近的攻击目的,意味着黑客不需要控制大量傀儡机器就可以发动攻击,更容易达到攻击的目的;(2)LDoS攻击可以采用多种形式进行攻击,可以使用单台主机发动,也可以采用多台主机联合发动攻击,多台主机发动的攻击可以使得每台攻击主机的攻击流量进一步减少,更容易逃避检测;(3)LDoS攻击只需要造成链路拥塞就可以达到攻击目的,因此它可以使用任何流量,包括TCP流。攻击流混合在正常TCP流中更难被过滤,同时流量的目的地址也可以有所变化,只要流量通过瓶颈链路即可。自从LDoS攻击出现以来,由于其具有极强的隐蔽性,其检测方法一直是研究的热点。传统的基于网络的入侵检测系统NIDS(NetworkIntrusionDetectionSystem)主要是通过单位时间的链路流量是否超过某一预先设定的阈值(Threshold)来判断网络中是否发生DDoS攻击。由于单个LDoS攻击的流量很小,其脉冲的幅度远小于NIDS中设定的阈值,所以LDoS可以逃避基于时间平均流量的检测方法。现有的DDoS攻击检测方法大都是基于时间平均流量的。然而,时域检测几乎对LDoS攻击没有效果。现有的检测LDoS攻击的方法基本都是在频域(FrequencyDomain)上实现的。目前,在频域上采用信号处理技术针对LDoS的检测方法主要有3种方法功率谱PSD、离散小波变换DWT和自相关。CHENG等首先提出了在频域利用功率谱密度PSD(PowerSpectrumDensity)分析防御LDoS攻击的思想;YUCHEN禾BKAIHWANG等采用归一化累计功率普密度NCPSD(NormalizedCumulativePSD),利用正常流量和攻击流量NCPSD之间的最大距离作为检测点,用于判断LDoS攻击;BARFORD.R和KLINE.J.等首先提出了采用小波(Wavelet)处理的思想,利用离散小波变换DWT(DiscreteWaveletTransform)技术将网络流量(Traffic)变换成为高、中和低3个频率分量,以便査找攻击流量;XiapuLuo和RockyK.C.Chang等对LDoS攻击的性能方面进行了仿真和试验,并采用小波技术在频域中检测LDoS攻击的频率分量;AmeyShevtekar和KarunakarAnantharam等提出了实现在单个边界路由器(EdgeRouter)上的LDoS攻击流量检测方法。该方法通过对网络流量进行分析,利用流量的自相关(Autocorrelation)特性检测周期性的攻击流量。而在LDoS攻击的分析和防御方面取得了很多的成果。国内针对LDoS的研究刚刚起步,武汉大学计算机学院的何炎祥教授带领的研究小组,正在开展LDoS攻击模型等相关的研究;中国科技大学的研究小组研究了LDoS针对快速TCP攻击的性能。目前己有检测方法有(1)在ICCNMC05上提出的HAWK检测方法。HAWK是一种特征匹配的检测方法,实现相对容易,在检测传统的LDoS攻击时有一定的效果,但是由于网络流本就具有一定的突发性,使得HAWK的误报率偏高;对于分布式的LDoS攻击,由于其平均发送速率进一下降也会使得HAWK的检测率下降;(2)在ICNP2004上提出的基于DTW的检测方法。分布式DTW检测方法则在2006年提出,主要针对LDoS攻击特有的周期性进行检测。这种方法的缺点在于攻击模板基于LDoS攻击,对于非周期性的LDoS攻击效果不佳。G)在LCN05上提出基于频谱分析的检测方法。它的主要思想是提取流量的频域特性来进行检测。但是这种检测方法漏警律比较高,并且频率点取不同值造成的检测结果不够稳定。
发明内容为了克服现有检测方法检测率不够高的缺陷,本发明提出一种基于卡尔曼滤波技术的LDoS检测方法,能够提高检测率,并且容易实现。根据网络流量矩阵估算理论,利用卡尔曼滤波的结合网络在遭受LDoS攻击时流量突然下降的情况。其步骤如下(1)设定一个检测周期在受害端对流量进行抽样;(2)对取样的数据,用离散小波变换进行处理。对于一个信号/(/)£丄2(/),可以用尺度函数(^)和小波函数将其表示为.其中c乂A:)和力("分别是原信号的平滑信号和细节信号,它们可以通过Mallat算法求出。("=Z/zoO"—2"c广i0")式中/2。和A,分别是低通滤波器系数和高通滤波器系数。因为平滑信号具有低通特性,所以它能滤除原始信号的高频分量。经过这一变换,原始波形变得相对平滑了,只有在攻击发生和结束的时刻有突变,同时待处理的数据量也减少了,从而有利于卡尔曼滤波器的运算。(3)基于卡尔曼滤波算法采用一步预测与最优估算的误差值e,+,H}<+11,-;^+1|(+11作为检测异常突变的依据。由于>,只是靠?状态及以前的信息得出的,而对>u,的估算还用到了^+l状态的信息,因此当突然出现异常时估算值与预测值会产生很大的误差。通过与门限值的比较确定突变的发生。因为从受攻击状态恢复正常流量也是发生了突变,所以攻击开始和结束时误差都很大。为了只对攻击发生时的突变进行报警,最后用一个假设检验的方法判定攻击的开始与结束,用t检验法,这样就可以减小误报。一旦检测出&的值超过门限的情况,就开始对下一时刻的原始流量进行检测。把一个检测周期分为w个相同的时间间隔小段,用t检验法来判定攻击是开始还是结束。需要检验仏/^//0=M4/"其中,MA是在正常情况下通过学习得到的一个流量的数学期望。则拒绝域为:式中,F,为这一段时间流量的平均值。如果/Z,可以接受,则认为攻击刚刚开始;如果//,被拒绝,则认为攻击已经结束。这样就只留下一个突变点认为是攻击,另一个突变点不做报警。图1为LDoS攻击模型。其中,(a)表示单源的LDoS攻击流,(b)表示两个半速率的LDoS攻击流;图2为本发明所应用的实验环境,模拟LDoS的攻击场景;图3为本发明的设计流程图。具体实施例方式1.在图2所模拟的LDoS场景中,路由器为Cisco2621,路由器间的瓶颈带宽10Mbps。其它各设备配置如下表所示<table>tableseeoriginaldocumentpage9</column></row><table>先让合法用户正常与受害端(Victim)服务器建立FTP连接,在用户端和服务器端监视流量的变化,180s待流量稳定后Attacker发起基于LDoS攻击,每次攻击持续时间为540s,然后再让合法用户正常下载180s,以此类推。合理的设置攻击脉冲序列的参数A(200ms,5Mbps,ls,540),达到理想的攻击效果。在受害端端采集流量。时间间隔&0.25s,一个采样周期r-40s。这就得到了待处理的原始信号。2.使用db(l)小波做5级分解,取平滑信号。主要实现函数:voidwd(intN,double*h,double*g,double*c0,double*c,double*d)"N点数,h,g滤波器系数,c0平化信号,c,d平滑信号和细节信号中间变量*/<formula>formulaseeoriginaldocumentpage10</formula>3.利用卡尔曼滤波算法,对小波处理后得到的这个一维信号,计算一步预测值与最优估计值,零时刻的值事先设定。实现的程序流程如图3所示。主要实现程序<formula>formulaseeoriginaldocumentpage10</formula>/*n为信号点数*/<formula>formulaseeoriginaldocumentpage10</formula><formula>formulaseeoriginaldocumentpage11</formula>4.计算一步预测与最优估计的误差值,主要实现程序for(j=0;j<n;j++)严n为信号点数"e[j]-K[j]*((Ca7[j])-Ak*Xl/*&+1=|1=1—1,I*/5.将误差值的归一化值与门限的归一化值进行比较,如果误差小于门限则不做报警;如果误差大于门限则进入下面一个模块。6.t检验模块,当误差大于门限时启动此模块。在下一个10s的周期内监测受害端的流量,每0.25s—段,分成40个时间间隔小段。进行t检验,如果//2^。=^^/"则判定攻击结束;如果A<^4/"则判定攻击开始。实验结果在图2所示实验环境中共进行1000次攻击,得到实验结果如下表所示:<table>tableseeoriginaldocumentpage11</column></row><table>由上表可以看出不同门限下所得到的检测率不同,折中考虑,选取门限为0.65。这种情况下的检测率可以达到89.6%,漏警率为10.4%,虚警率为12.6%。与现有的检测方法相比提高了近两个百分点。权利要求1.一种基于卡尔曼滤波算法的LDoS(Low-rateDenialofService)的检测方法,其特征在于是通过以下步骤实现的(1)在受害端对流量进行采样;(2)用小波分析的方法对采样信号进行平滑处理;(3)利用流量矩阵模型,将处理过的数据看作一个离散控制过程;(4)基于卡尔曼滤波算法利用一步预测和最优估计的误差值作为检测依据;(5)如果误差值大于门限值C,则判定为有突变;(6)利用t假设检验法判定突变的原因是攻击的开始还是结束,如果是攻击开始则报警。2.根据权利要求l所述的基于卡尔曼滤波的LDoS检测方法,其特征在于其中步骤(1)是在受害端的上一跳路由监测流量,每隔f秒的间隔对流量进行取样,一个取样周期为r秒。抽样数据就成为一个离散的序列。步骤(2)对采样的信号做小波分解,取平滑信号部分。这样信号变得平滑了,只有在攻击开始与结束的时候波形有突变。步骤(3)在上面小波分析的基础上建立一个流量矩阵模型并用卡尔曼滤波算法进行预测和估算。把平滑信号作为观测值y,,它与实际的系统状态值X,的关系可以用线性方程表示为其中A表示路由器矩阵,F,表示一个非相关,零均值的高斯白噪声。对下一时刻状态的一步预测表示为其中C,反映了流量的时空相关性,『,是非相关,零均值的高斯白噪声,由流的随机波动造成。步骤(4)根据卡尔曼滤波的原理,基于上一状态可预测出现在的状态,同时更新X,的自协方差P,。用公式表示为<formula>formulaseeoriginaldocumentpage3</formula>有了现在状态的预测结果,然后再收集现在状态的测量值。结合预测值和测量值,可以得到状态wi的最优化估算值}<+1|,+1,同时更新,+1状态下〖+1|,+,的自协方差尸<+1|,+1。其中=iVuM「+iU,户,+u,Z+i+,及,表示K的协方差,随着卡尔曼的工作,义会逐渐的收敛。对/+1时刻的一步预测值与最优估算值进行比较,误差表达式为步骤(5)门限值C是通过学习得到的。步骤(6)在(5)判定突变之后,对下一个周期r内的流量进行t假设检验。需要检验仏//^//0=仏/"Mt是在正常情况下通过学习得到的一个流量的数学期望,拒绝域为尸w为这一段时间流量的平均值。3.根据2所述的基于卡尔曼滤波的LDoS检测方法,其特征在于设定/=0.25s,r=40s,使用db(l)小波做5级分解,归一化门限C二0.65。若^+1><:,则执行步骤(6),如果/^可以接受,则认为攻击刚刚开始;如果7/,被拒绝,则认为攻击已经结束。全文摘要低速率拒绝服务LDoS(Low-rateDenialofService)攻击是一种新型的DoS攻击。它利用TCP协议超时重传RTO(RetransmissionTimeOut)机制,向受害者发送周期性的脉冲(Pulse)攻击。LDoS平均攻击速率较低,因此它能躲避传统的检测方法。本发明针对LDoS攻击提出了一种基于卡尔曼(Kalman)滤波的检测方法。首先设定一个检测周期对受害端的流量进行采样;然后对采样数据进行小波变换,利用小波系数提取波形趋势;再采用卡尔曼滤波算法以一步预测与最优估算的误差值作为检测突变的依据;最后利用t假设检验来判定攻击的开始与结束。试验结果表明采用本发明所提出的方法能有效的检测出LDoS攻击。文档编号H04L12/26GK101577642SQ200810094189公开日2009年11月11日申请日期2008年5月8日优先权日2008年5月8日发明者吴志军,猛岳申请人:吴志军;岳猛