一种基于网络流量的泛洪拒绝服务攻击防御方法

文档序号:7945457阅读:200来源:国知局

专利名称::一种基于网络流量的泛洪拒绝服务攻击防御方法
技术领域
:本发明涉及一种计算机网络中的泛洪拒绝服务攻击防御方法,特别涉及一种基于网络流量的泛洪拒绝服务攻击防御方法。
背景技术
:拒绝服务(Denial-of-Service,简称DoS)攻击已经成为当今互联网所面临的最严重的威胁。DoS的攻击方式有很多种,既可以采用暴力淹没方式耗尽系统资源,也可以采取欺骗手段,人为构造畸形或错误的数据包来触发服务器错误响应,导致其死机或崩溃。其中最为主要的、发生最多的一种攻击方式即泛洪DoS攻击(Flooding-basedDoSAttack,简称泛洪攻击/floodingattack)。泛洪攻击不是依靠畸形数据包,它是依靠占用大量带宽的数据包来达到攻击的目的。泛洪拒绝服务攻击由于发起攻击简单、攻击效果好,己经成为目前最流行的拒绝服务攻击形式目前,针对拒绝服务攻击的防御技术要么集中于攻击检测,要么集中于真实攻击源的追踪,且多采用被动防御的方式。对于泛洪拒绝服务攻击来讲,由于其攻击效果完全依赖于攻击数据包的数量,仅当大量的攻击数据包传到目标(受害者)时,攻击方才有效。因此,若在受害者处观测网络流量的变化,当泛洪攻击流量到达时,其一定会表现出超出正常流量的异常特征。因而对于泛洪攻击的检测不应只使用传统的入侵检测技术,而应采用基于流量测量与统计的泛洪攻击检测算法。其次,如果能够追踪到攻击者,则攻击事件的影响会减少许多,并且便于追究攻击者的责任,同时也达到威慑的效果。然而,泛洪攻击中攻击包的源地址常常是经过伪造的虚假地址,难以从收到的攻击包中直接获取攻击者的真实地址。因此,为了防御攻击首先需要追踪到真正的攻击者。但是泛洪攻击主要采用分布式攻击方式,利用傀儡主机进行攻击,人们很难追査到真正的攻击者。因此,防御攻击的另一个重要工作就是要追踪到攻击数据包的源头。然而目前所用到的攻击源追踪方法多是基于IP数据包标记的,追踪过程复杂,计算时间长,误报率大。若能采用基于流量抛弃的追踪算法,则能快速有效地追踪到攻击源。最后,对于已经发现的攻击,不应该被动防御,应采取主动进攻的姿态,将攻击流量进行限流或者屏蔽,进而追踪到攻击源并将其扼杀,才能从根本上解决泛洪拒绝服务攻击的威胁,将损失减到最小。由此可见,目前缺乏一种能将攻击检测、追踪以及主动防御相结合的攻击防御方法。
发明内容本发明的目的在于克服上述现有技术的缺点,提供一种全面高效的基于网络流量的泛洪拒绝服务攻击防御方法防御方法。为达到上述目的,本发明采用的技术方案是-1)首先由攻击检测模块统计所采集的流量信息,并根据攻击检测算法判定该主机是否受到攻击,一旦受到攻击则向协同模块报警,并触发追踪模块定位攻击源;2)位于离受害主机最近路由器上的追踪模块,利用追踪算法确定出转发攻击流量的上游路由器,同时屏蔽来自该路由器的所有流量,并向协同模块报告该步追踪结果;3)协同模块指示上游转发攻击流量的路由器继续步骤2),直至追踪到攻击源头路由器,协同模块将记录整个过程中追踪到的每个攻击路径上的路由器,并将其放入等待恢复队列,待追踪过程结束后,协同模块将重构出所有的攻击路径和攻击源;4)追踪过程结束后,协同模块启动流量恢复过程,即对等待恢复队列中的每个路由器逐个进行以下操作a)指示追踪模块撤销该路由器上的屏蔽,恢复所有流量的转发;b)启动攻击检测模块重新工作,若检测到攻击说明该路由器仍在转发攻击流量,再次指示追踪模块屏蔽该路由器,并将其重入等待恢复队列;若没有检测到攻击则该路由器己无危害,对等待恢复队列的下一个路由器重复步骤a)直到队列为空。本发明的攻击检测算法采用短期流量预测检测算法,依据发生泛洪拒绝服务攻击后,受害主机收到的数据包会在原来的基础上发生一个跳变,叠加一个较高的平台,并波动很小的特点,结合短期流量预测对于平稳流量的预测误差较小的特点,根据预测误差来判断是否发生攻击,即流量正常时预测误差较大,而发生泛洪拒绝服务攻击时,预测误差则明显减小,对收到的数据包数构成的时间序列进行分析,如果预测误差发生明显减小的情况,即判定攻击的发生。本发明的追踪算法采用的是基于流量抛弃的追踪算法,算法描述如下设路由器R的所有输入节点的流量为^......累计P请求和P响应,定义AP-P请求""P响应;求所有节点流量之和^-2^;找出输入流量最大的节点T-MAX^—7"将除流量最大的节点T之外的所有输入流量变为原来的a倍,累计P'请求禾口P,口向应,计算AP,-P,请求一P,响应;求A=APVAP对A进行判断A=l:表明除了T之外没有其他攻击点;A=OC:表明T不是攻击点;a<A<l:表明除了T之外还有其他攻击点,并继续运用以上算法判断其余攻击点,直到将T同层节点依次处理结束。本发明是一种综合了攻击检测、追踪与主动防御的综合性泛洪拒绝服务攻击防御方法。另外,由于本发明所采用的检测和追踪算法都是基于网络流量的,因此实时性高,并且在追踪攻击源的过程中即可减弱攻击的影响。图l为本发明的系统结构图2为本发明实施所提供的技术方案流程图。具体实施例方式下面结合附图对本发明作进一步详细说明。参见图1,本发明由三个代理模块组成,分别为攻击检测模块DetectionAgent(DA)、协同模块CoordinationAgent(CA)和追踪模块TracebackAgent(TA)。DA检测VICTIM是否受到攻击;CA负责构造攻击路径以及与DA、TA交互;TA负责对流量进行控制、检测该节点是否存在攻击,并协助CA对攻击源定位及实现对攻击的防御。参见图2,本发明由攻击检测模块DetectionAgent(DA)、协同模块CoordinationAgent(CA)和追踪模块TracebackAgent(TA)相互协调,DA分析接收和发送的数据包检测网络中是否发生攻击,如果发生攻击则向CA发送报警消息,CA向根节点TA发启动消息,TA逐层启动攻击源定位进程,并判断其是否为攻击源,当TA逐级找到攻击源后,将攻击源屏蔽,CA则构造攻击路径和网络拓扑结构,TA通知攻击源CA降低屏蔽的等级,同时CA通知DA检测是否有攻击发生。其中,DA位于受害主机,其主要功能是使用攻击检测算法监听主机流量,检测是否存在攻击。包括1)根据流量模型(正常情况下是正常模型,异常情况下是异常模型)的变化,判断攻击是否发生;2)发生攻击后,向CA发出攻击源定位请求消息;3)与CA、TA协作实现对攻击源路由器的隔离解除。DA的工作流程为在接收到启动命令之后开始统计接收流量,并调用短期流量预测检测算法进行攻击检测。判断发生攻击时向CA发出警报,并请求定位攻击源。DA在接收到CA的停止命令后停止工作。CA同样位于受害主机,主要功能有以下几点1)与DA通信,接收DA的报警消息及当前攻击状态参数;2)与TA通信,启动攻击源定位功能;3)根据TA反馈信息,构建攻击路径;4)与DA、TA协作实现对攻击源的隔离和恢复;5)建立日志,记录CA的所有操作过程;6)建立智能信息库,保留历史攻击路径,对以后发生攻击时快速定位。CA进行攻击源定位的工作流程为CA在接受到DA发送的报警信息后,启动TA的攻击源定位处理进程,向最近一级的TA发送定位命令。DA检测到攻击发生时,启动CA工作。所有被启动的TA向CA发路径四元组信息(Routerup,Routerlocal,Flag,Nodestyle),Routerup,Routerlocal,Flag,Nodestyle各占1字节。Routerup表示上游TA所在路由器的标识;Routerlocal表示本级TA所在路由器的标识;Flag是否被攻击的标识(Flag=00000001,Routerup对Routerlocal发送攻击,Flag=00000000为否);Nodestyle表示节点(本地路由器)类型,即是否为叶子节点,00000001是,00000000为否。在对攻击源定位的过程中,CA不断接受TA发送的攻击路径信息,通过这些信息可以逐步得到攻击的路径。CA的另一个主要功能是通过降低攻击源屏蔽等级逐步恢复路由器的正常工作CA接收TA发送的攻击源路由器隔离消息,在At(此时间值可在试验时根据网络的具体情况设置)时间段后通知TA尝试逐步解除隔离,并与协作检测是否重新引起攻击,如果正常则完全恢复该路由器的工作,否则将攻击源重新屏蔽,继续等待2At时间后,再降低屏蔽等级,由DA再次检测,直至攻击彻底结束。TA位于路由器上,主要功能有-1)定位接收CA发送的丢弃命令及丢弃参数,实现路由器按照CA要求对数据包按一定比例进行丢弃,协助CA攻击路径的构造。同时,当攻击源确定后,抛弃该路由器上发向受害主机的所有流量,实现对攻击的防御措施;2)恢复TA、CA协作,实现攻击源路由器的转发恢复过程。即在抛弃攻击源头路由器的所有流量后,间隔一段时间,TA应该与DA、CA协作,缓慢增加攻击源头路由器数据包的通过率,若没有产生新的攻击流量则解除攻击警报,恢复路由器的正常工作;若仍然有攻击流量的存在,则继续阻塞该路由器一定时间。TA实现定位功能的工作流程为当根节点路由器的TA收到CA发来的要求启动定位功能的消息时(消息中包括三个参数a代表在定位时丢弃数据包的比例,P代表确定攻击源后为防御攻击而丢弃数据包的比例,ID代表此次跟踪定位请求的攻击序列号),TA启动定位功能模块以找到攻击源。当非根节点路由器收到下游TA要求跟踪定位的消息时,判断当前TA是否正在运行定位跟踪,如果是则继续其原来的动作;如果没有则找出所有的上游节点,判断是否为叶子节点,若是叶子节点则屏蔽该路由器,若不是则用定位算法找出攻击节占。"、、o本发明中的消息格式采用UDP数据报文格式,用于一次传输交换少量报文的情况,以提供高效率的服务。消息格式包括以下几种1、DA向CA发送消息DA检测到攻击时所发的报警消息<table>tableseeoriginaldocumentpage10</column></row><table>2、CA向DA发送消息CA完成攻击源定位并对攻击源路由器实现屏蔽后,在A'时间段后尝试解除对攻击源路由器的隔离,此时向DA发送启动攻击检测模块消息以恢复主机的攻击检测进程<table>tableseeoriginaldocumentpage10</column></row><table>3、TA向CA发送消息<table>tableseeoriginaldocumentpage10</column></row><table>其中Routerup,Routerlocal,Flag,nodestyle各占1字节;并说明Routerup是否为攻击节点,Routerlocal是否为叶子节点。其中,Routerup:表示上游路由器;Routerlocal:表示本地路由器;Flag:表示此节点是否发动攻击。00000001表示Routerup对Routerlocal发动攻击,00000000表示没有发动攻击;Nodestyle:表示节点(本地路由器)类型,即是否为叶子节点,00000001是,00000000不是。4、CA向根节点TA发送启动攻击检测消息根节点TA收到CA要求跟踪定位的消息(包含攻击序列号ID、参数ot、卩),其中1)启动在UDP报文中的数据区占一个字节(8bit),值为00000001;2)攻击序列号ID代表此次跟踪定位请求的ID,在UDP报文中的数据区占一个字节(8bit);3)a代表在定位时对数据包丢弃的比例数,占4个字节(32bit浮点数);4)卩代表定位后(即确定攻击点后)为了防御攻击而对数据包丢弃的比例数,占4个字节(32bit浮点数)。01631UDP源端口号UDP目的端口号UDP报文长度UDP校验和启动IDa5、CA向TA发降低屏蔽等级消息攻击源路由器TA收到CA发的限流的消息,收到这个消息后,攻击源以通过率P来限流,以实现恢复功能。a、P,各占4个字节(32bit浮点数),降低等级消息值为00000010。01631UDP源端口号UDP目的端口号UDP报文长度UDP校验和降低屏蔽B6、TA内部消息1)启动、中止消息(包含参数a、|3、攻击序列号ID、Rqueen)1631UDP源端口号UDP目的纟諧口号UDP报文长度UDP校验和启动/中止IDaPRqueen其中,启动消息为00000001,中止信息为00000000;攻击序列号ID在UDP报文中的数据区占一个字节(8bit);a、|3,各占4个字节(32bit浮点数);Rqueen代表此请求途径的路由器节点,为数组格式。2)降低屏蔽等级消息降低屏蔽消息为00000000。找到攻击源路由器后,告知下游TA调整其卩至l。01631UDP源端口号UDP目的端口号UDP报文长度UDP校验和降低屏蔽1权利要求1、一种基于网络流量的泛洪拒绝服务攻击防御方法,其特征在于1)首先由攻击检测模块统计所采集的流量信息,并根据攻击检测算法判定该主机是否受到攻击,一旦受到攻击则向协同模块报警,并触发追踪模块定位攻击源;2)位于离受害主机最近路由器上的追踪模块,利用追踪算法确定出转发攻击流量的上游路由器,同时屏蔽来自该路由器的所有流量,并向协同模块报告该步追踪结果;3)协同模块指示上游转发攻击流量的路由器继续步骤2),直至追踪到攻击源头路由器,协同模块将记录整个过程中追踪到的每个攻击路径上的路由器,并将其放入等待恢复队列,待追踪过程结束后,协同模块将重构出所有的攻击路径和攻击源;4)追踪过程结束后,协同模块启动流量恢复过程,即对等待恢复队列中的每个路由器逐个进行以下操作a)指示追踪模块撤销该路由器上的屏蔽,恢复所有流量的转发;b)启动攻击检测模块重新工作,若检测到攻击说明该路由器仍在转发攻击流量,再次指示追踪模块屏蔽该路由器,并将其重入等待恢复队列;若没有检测到攻击则该路由器已无危害,对等待恢复队列的下一个路由器重复步骤a)直到队列为空。2、根据权利要求1所述的基于网络流量的泛洪拒绝服务攻击防御方法,其特征在于所说的攻击检测算法采用短期流量预测检测算法,依据发生泛洪拒绝服务攻击后,受害主机收到的数据包会在原来的基础上发生一个跳变,叠加一个较高的平台,并波动很小的特点,结合短期流量预测对于平稳流量的预测误差较小的特点,根据预测误差来判断是否发生攻击,即流量正常时预测误差较大,而发生泛洪拒绝服务攻击时,预测误差则明显减小,对收到的数据包数构成的时间序列进行分析,如果预测误差发生明显减小的情况,即判定攻击的发生。3、根据权利要求1所述的基于网络流量的泛洪拒绝服务攻击防御方法,其特征在于所说的追踪算法采用的是基于流量抛弃的追踪算法,算法描述如下设路由器R的所有输入节点的流量为^......累计P请求和P响应,定义AP:P请求""P响应;求所有节点流量之和7^-Z71';找出输入流量最大的节点T-MAX化r");将除流量最大的节点T之外的所有输入流量变为原来的a倍,累计P'请求禾口P,响应,计算AP,二P,请求一P'响应;求A=AP7AP对A进行判断A=l:表明除了T之外没有其他攻击点;A=a:表明T不是攻击点;a<A<l:表明除了T之外还有其他攻击点,并继续运用以上算法判断其余攻击点,直到将T同层节点依次处理结束。全文摘要一种基于网络流量的泛洪拒绝服务攻击防御方法,是一种针对泛洪拒绝服务攻击能引起网络流量异常激增的特征采用的方法通过对流量的监听和统计,检测出能引起网络流量异常变化的泛洪拒绝服务攻击;通过上游路由器节点的数据包抛弃算法,实现对攻击源的逐级定位,同时屏蔽攻击流量并最终在源头隔断攻击流量,实现对泛洪拒绝服务攻击的防御;尝试逐步解除隔离,并检测是否重新引起攻击,如正常则完全恢复路由器工作,否则重新攻击源屏蔽直至攻击结束。本发明综合了攻击检测、追踪与主动防御的泛洪拒绝服务攻击防御方法。另外,由于本发明所采用的检测和追踪算法都是基于网络流量的,因此实时性高,并且在追踪攻击源的过程中即可减弱攻击的影响。文档编号H04L9/36GK101459519SQ20091002083公开日2009年6月17日申请日期2009年1月8日优先权日2009年1月8日发明者椸史,勇齐申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1