首页 / 一种攻击的防御方法及防御设备

一种攻击的防御方法及防御设备有效专利 发明

技术领域

[0001] 本发明涉及计算机领域,尤其涉及一种攻击的防御方法及防御设备。

相关背景技术

[0002] 随着互联网的迅速发展,网络的安全性也越来越受到人们的重视,网络本身存在安全缺陷,其中拒绝服务(Denial of Service,简称DoS)攻击成为常见的网络攻击技术之一,极大地影响了网络和业务主机系统的有效服务,特别是分布式拒绝服务(Distributed Denial of Service,缩写:DDoS)攻击,由于其隐蔽性和分布性而难于检测和防御,从而严重威胁着互联网的安全。其中用户数据报协议(User Datagram Protocol,缩写:UDP)攻击是DDoS攻击中较为有代表性的类型,UDP是一个简单的面向数据包的传输层协议,它与传输控制协议(Transmission Control Protocol,缩写:TCP)协议不同之处在于不提供传输的可靠性。UDP的攻击目的是通过发送大量的UDP数据包占用网络带宽,达到阻塞网络的目的。
[0003] 通常的对抗攻击的防御方法中,UDP防御通常采用水印特征防御或限速防御来实现。其中,水印需要用户定制水印因子,对服务器程序进行定制化,根据实现约定好的包括水印因子的报文特征,对报文进行判断,不符合特征的报文直接丢弃。水印特征防御涉及程序的开发和修改,不适合大规模自动化部署的场景。而限速防御主要是根据历史经验值设置阈值,对报文的流量进行分析,分别从源端口,目的端口等等方面对报文进行限速。这种方法无法应对突发和异常等情况,容易导致将正常的报文误杀,从而导致正常报文的传输失败。

具体实施方式

[0031] 本发明实施例提供了一种攻击的防御方法及防御设备,用于降低正常的UDP数据包被误杀的概率,从而保证正常报文的成功传输。
[0032] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明保护的范围。
[0033] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0034] 为了方便理解,对本发明实施例中涉及的词语进行解释:
[0035] UDP Flood攻击:UDP是一个简单的面向数据包的传输层协议,是一个无连接的协议,它与TCP协议不同,不提供传输的可靠性。UDP Flood的攻击目的是通过发送大量的UDP数据包占用网络带宽,达到阻塞网络的目的。UDP Flood攻击特点是不发送请求报文,攻击设备直接发送大量虚假IP的UDP包或畸形UDP数据包对目标主机进行攻击。例如,当由很多攻击设备组成的攻击网络同时向网络发送高速率的实时视频流时,该网络就会发生拥塞而导致服务器拒绝服务。目标主机将不能进行正常的服务,从而达到UDP Flood的目的。
[0036] ICMP:控制报文协议用于逻辑错误的诊断,向数据包发送方反馈出错报告信息,将携带发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接收者,从而使得发送设备可以根据ICMP报文确定发生错误的类型。
[0037] 例如,请参阅下表1所示,下表1为该ICMP数据包所包括的出错报告信息的举例说明,ICMP数据包的出错报告信息包括很多内容,本发明实施例中只是以下面表1中的几种类型作为例子,并不造成对本发明的限定性说明,请参阅表1所示:
[0038] 表1
[0039]
[0040] 本发明实施例提供了一种攻击的防御方法,该攻击的防御方法为UDP Flood攻击提供了一种防御的方法,该攻击的防御方法应用于一种防御设备,请结合图1进行理解,图1为该防御设备的网络部署的架构示意图。在图1所示的架构示意图中,包括防御设备110、目标主机120和攻击设备130。其中,攻击设备130为攻击目标主机的设备,多台攻击设备130可以组成攻击网络,目标主机120为被攻击的设备,该目标主机120可以为服务器,也可以为其他网络设备,例如,该目标主机可以为域名系统(Domain Name System,缩写:DNS)服务器、流媒体视频服务器或Radius认证服务器、云服务器和数据中心服务器等。上述服务器只是对该目标主机的举例说明,并不造成对本发明的限定性说明。
[0041] 该防御设备110用于检测目标主机是否受到攻击设备的用户数据报协议UDP攻击,当防御设备110确定所述目标主机120被攻击时,所述防御设备110获取所述目标主机120反馈给所述攻击设备130的控制报文协议ICMP数据包,所述防御设备110提取所述ICMP数据包中的目标端口的信息,该目标端口为“不可达”的端口,所述防御设备110将所述攻击设备120向所述目标端口发送的UDP数据包进行拦截处理。
[0042] 该防御设备用于防御目标主机被攻击,该防御设备的功能可以集成在被攻击的目标主机内,也可以为一个独立的设备,在实际应用中,该防御设备的具体部署实现方式本发明不限定。
[0043] 本发明实施例中,在目标主机关闭UDP端口的情况下,当检测到UDP攻击时,结合ICMP的报错机制,通过获取ICMP报文中的目标端口信息,获知UDP数据包攻击目标主机的目标端口,然后,有针对性的对攻击设备发送到该目标端口UDP数据包进行拦截处理,从而达到防御UDP攻击的目的,本发明实施例中提供的方法能够避免传统方式中盲目的限速造成的将正常的UDP数据包误杀的情况,从而降低误杀率。
[0044] 下面对本发明实施例中提供的攻击的防御方法进行详细描述,请参阅图2所示,本发明实施例提供了一种攻击的防御方法的一个实施例包括:
[0045] 步骤201、所述防御设备检测目标主机是否受到攻击设备的用户数据报协议UDP攻击。
[0046] 防御设备用于检测目标主机是否受到攻击设备的UDP Flood的攻击,其中,检测的方法具体可以为:
[0047] 在第一种可能的实现方式中,防御设备监测所述目标主机在单位时间内接收到的UDP数据包的数量;若所述UDP数据包的数量大于第二门限,则确定所述目标主机受到攻击设备的UDP攻击。在实际应用中,该第二门限可以根据目标主机的实际处理能力来设置。例如,当防御设备监测到目标主机在1秒钟接收到的UDP数据包的数量大于1000个,则确定该目标主机已被UDP Flood攻击。
[0048] 在第二种可能的实现方式中,可以根据UDP数据包的特征来进行检测,黑客程序产生的UDP攻击数据包具有的一定的共性特征,该共性特征可以从以下方面进行检测。
[0049] 第一方面,数据包的长度,例如,攻击包的长度是定长或者长度在一定长度范围。第二方面,数据包的内容,例如,攻击包内容,可能有规律的变化,也可能不变化,或者攻击包中有指纹。第三方面,提供服务的程序本身所需要的特征,例如,数据包的源地址,该源地址要么是随机的,要么是顺序增加。在实际应用中,防御设备可以从上述三个方面中的至少一个方面进行检测,例如,可以将UDP数据包的长度及其数据内容作为特征,来确定目标主机是否受到攻击设备的UDP攻击。需要说明的是,实际应用中,随着技术的发展黑客程序产生的UDP攻击数据包的特征有可能发生变化,上述对于攻击数据包的三个方面的特征只是举例说明,并不造成对本发明的限定性说明。
[0050] 在第三种可能的实现方式中,可以监控UDP数据包的数量和目标主机的中央处理器(Central Processing Unit,缩写:CPU)的占用率,若UDP数据包的数量大于第三门限,CPU的占用率大于第四门限,则确定目标主机受到UDP攻击。
[0051] 在第一种和第三种可能的实现方式的基础上,对于UDP数据包的门限值的设置可以分不同的时间段来设定不同的门限,由于目标主机的服务内容可能会根据不同的时间段具有服务高峰时间段和服务低谷时间段。例如,若目标主机为流媒体视频服务器,当前的年轻人已经习惯于夜生活的生活方式,白天工作时间段(8点至18点),休闲的时间段大概在20点至23点之间,因此,该流媒体视频服务器的服务第一高峰时间段可能在20点至23点之间,而在23点至24点之间为第二高峰时间段。因此,在实际应用中,可以根据该流媒体视频服务器的历史数据进行设置。例如,将20点至23点之间检测到目标主机接收UDP数据大于第一阈值,则确定受到UDP攻击。23点至24点之间检测目标主机检测UDP数据大于第二阈值,则确定收到UDP攻击,其中,第二阈值小于第一预置。需要说明的是,上述对于时间段的划分在实际应用中可以根据不同的服务器类型进行设置,本发明实施例中只是针对一种服务器进行的举例说明,并不造成对本发明的限定性说明。
[0052] 步骤202、当确定所述目标主机被攻击时,所述防御设备获取所述目标主机反馈给所述攻击设备的控制报文协议ICMP数据包。
[0053] 目标主机包括多个UDP端口,最多端口数可以为65536个端口,当目标主机关闭UDP端口的情况下,若至少一个端口接收到攻击设备发送的UDP数据包时,例如,该端口为端口21(主要用于文件传输协议服务),该目标主机会向该攻击设备反馈类型type为“3”,代码为“3”的“端口不可达”的ICMP数据包,即该目标主机没有对外提供该端口UDP服务。
[0054] 当防御设备确定该目标主机当前受到UDP Flood攻击时,防御设备获取该目标主机反馈给所述攻击设备的控制报文协议ICMP数据包。
[0055] 步骤203、所述防御设备提取所述ICMP数据包中的目标端口的信息。
[0056] 该ICMP载荷中会携带攻击设备发送的UDP报文信息,其中,UDP报文包括:(1)源端口(source port);(2)目的端口(destination port);(3)长度:UDP用户数据报的长度。该防御设备提取该ICMP数据包中的目的端口,该目的端口为不可达的目标端口。例如,该目标端口为端口21。需要说明的是,该目标端口为举例说明,并不造成对本发明的限定性说明。
[0057] 步骤204、所述防御设备将所述攻击设备向所述目标端口发送的UDP数据包进行拦截处理。
[0058] 当防御设备接收到攻击设备发送的UDP数据包时,获取该UDP数据包中的目的端口,若该目的端口与该目标端口相同,则对该UDP数据进行拦截处理。
[0059] 可选的,该拦截处理具体可以为将该攻击设备发送的UDP数据包直接丢弃。例如,当防御接收再次接收到目的端口为端口21的UDP数据包,表明该UDP数据包为UDP攻击包,因此,该防御设备将该UDP数据包丢弃,从而达到防御该目标主机不受UDP攻击的目的。
[0060] 请参阅3所示,本发明实施例中提供了一种攻击的防御方法的另一个实施例包括:
[0061] 步骤301至步骤303与图2对应的实施例中的步骤101至步骤103相同,此处不赘述。
[0062] 步骤304、所述防御设备根据所述目标端口的信息确定所述目标端口的分布情况。
[0063] 攻击设备攻击目标主机的至少一个端口,当攻击设备攻击的端口大于两个端口时,防御设备可以根据该目标端口的信息确定该目标端口的分布情况,所述目标端口的分布情况包括集中分布和分散分布。
[0064] 其中,集中分布是指攻击设备所攻击的端口集中于少量的端口。端口的数量大于等于1,且小于目标阈值,例如,该目标阈值为10。攻击设备攻击的端口的分布集中在端口21和端口25。分散分布是指攻击设备所攻击的端口分散于大量的端口之间,或者,攻击设备所攻击的端口分散于某一个或某几个端口范围内例如,攻击的端口在端口0-955,端口1024-1120等。需要说明的是,本发明实施例中对于集中分布的端口和分散端口的具体端口号为举例说明,并不造成对本发明的限定性说明。
[0065] 步骤306、所述防御设备根据所述目标端口的分布情况,将所述攻击设备向所述目标端口发送的UDP数据包进行对应的拦截处理。
[0066] 在一种可能实现的方式中,当所述目标端口的分布情况为集中分布时,所述防御设备将向所述目标端口发送的UDP数据包丢弃。例如,所述目标端口为端口21和端口25,则该防御设备将发送到端口21和端口25的UDP数据包直接丢弃。可选的,由于被攻击的目标端口为集中分布,目标端口所包括的端口的数量较少,防御设备可以记录目标端口的情况形成目标端口列表。防御设备可以将向该目标端口列表中记录的端口发送的UDP数据包直接丢弃。
[0067] 当所述目标端口的分布情况为分散分布时,所述防御设备将向所述目标端口发送的UDP数据包的流量限制在第一门限内。即允许UDP数据包每秒钟通过的个数限制在第一门限内,该第一门限可以根据该目标服务器正常处理的数量进行设置。本发明实施例中,若该目标端口的分布情况为分散分布时,由于目标端口是一个被攻击的端口范围,或者该目标端口包括的被攻击的端口数量很大,因此会有一种概率比较低的可能性,目标端口中有被开启的服务端口,例如,目标端口为0-55,其中,端口22被开启,如果之间将发送到端口22的UDP数据丢弃,可能也将发送到端口22的正常的UDP数据包丢弃,为了解决此问题,可以将所述攻击设备向所述目标端口发送的UDP数据包的流量限制在第一门限内。以使正常的UDP数据包可以发送到该目标端口。进一步的,还可以结合UDP攻击包的特征,将发送到该目标端口的UDP攻击包直接丢弃。
[0068] 上述图2和图3对应的实施例可以基于图1的防御设备的网络部署的架构示意图,在另一个应用场景中,防御设备可以包括检测装置和防御装置,该防御设备的功能由该检测装置和防御装置来执行,请参阅图4所示,图4为该防御设备的网络部署的另一个实施例的架构示意图。在图4的架构示意图中,包括防御设备110、目标主机120和攻击设备130。其中,防御设备110包括检测装置1101和防御装置1102,所述检测装置1101检测所述目标主机120是否受到所述攻击设备的UDP攻击;当检测到所述目标主机120被攻击时,所述检测装置
1101获取所述目标主机120反馈给所述攻击设备的ICMP数据包;所述检测装置1101提取所述ICMP数据包中的目标端口的信息,并将所述目标端口的信息传输至所述防御装置1102;
所述防御装置1102将所述攻击设备130向所述目标端口发送的UDP数据包进行拦截处理。
[0069] 其中,检测装置1101可以执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件,该检测装置1101集成于目标主机内。该检测装置1101也可以为一个独立于该目标主机的硬件设备。
[0070] 该检测装置的功能可以参阅图2对应的实施例中步骤201至步骤203中防御设备所执行的方法,和图3对应的实施例中步骤301至步骤303中防御设备所执行的方法进行理解。防御装置的功能可以参阅图2对应的实施例中步骤204中防御设备所述执行的方法,和图3对应的实施例中304和步骤305中防御设备所执行的方法进行理解,此处不赘述。
[0071] 本发明实施例中,防御设备的功能由检测装置和防御装置功能来执行,提供了另一种防御UDP攻击的防御设备的部署场景,本发明实施例可以根据实际应用的场景选择不同的部署方式,例如,在实际应用中,该检测装置也可以为流量检测器,防御装置可以为防火墙。也就是说可以由流量检测器和防火墙来执行防御设备的功能,因此可以增加本发明方案的不同应用场景,增强本发明的适应性。
[0072] 请参阅图5所示,本发明实施例提供了一种防御设备500的一个实施例包括:
[0073] 检测模块501,用于检测目标主机是否受到攻击设备的用户数据报协议UDP攻击;
[0074] 获取模块502,用于当所述检测模块501确定所述目标主机被攻击时,获取所述目标主机反馈给所述攻击设备的控制报文协议ICMP数据包;
[0075] 信息提取模块503,用于提取所述ICMP数据包中的目标端口的信息;
[0076] 拦截处理模块504,用于将所述攻击设备向所述信息提取模块503确定的所述目标端口发送的UDP数据包进行拦截处理。
[0077] 可选的,所述拦截处理模块504,还用于将所述攻击设备向所述目标端口发送的UDP数据包丢弃。
[0078] 在图5对应的实施例的基础上,请参与图6所示,本发明实施例还提供了一种防御设备600的另一个实施例包括:
[0079] 该防御设备还包括确定模块505;
[0080] 所述确定模块505,用于根据所述目标端口的信息确定所述目标端口的分布情况;
[0081] 所述拦截处理模块504,还用于根据所述确定模块505确定的所述目标端口的分布情况,将所述攻击设备向所述目标端口发送的UDP数据包进行对应的拦截处理。
[0082] 可选的,所述目标端口的分布情况包括集中分布和分散分布,所述拦截处理处理模块,还用于当所述确定模块505确定所述目标端口的分布情况为集中分布时,将所述攻击设备向所述目标端口发送的UDP数据包丢弃。
[0083] 所述拦截处理处理模块,还用于当所述目标端口的分布情况为分散分布时,将所述攻击设备向所述目标端口发送的UDP数据包的流量限制在第一门限内。
[0084] 在图5对应的实施例的基础上,请参与图7所示,本发明实施例还提供了一种防御设备700的另一个实施例包括:
[0085] 所述检测模块501还包括监测单元5011和确定单元5012;
[0086] 所述监测单元5011,用于监测所述目标主机在单位时间内接收到的UDP数据包的数量;
[0087] 所述确定单元5012,用于当所述监测单元5011监测所述UDP数据包的数量大于第二门限时,则确定所述目标主机受到攻击设备的UDP攻击。
[0088] 进一步的,图5至图7中的防御设备是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specific integrated circuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,图5至图7中的防御设备可以采用图8所示的形式。
[0089] 图8是本发明实施例提供的一种防御设备结构示意图,该防御设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对防御设备中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在防御设备800上执行存储介质830中的一系列指令操作。
[0090] 防御设备800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
[0091] 上述图2和图3对应的实施例中由防御设备所执行的步骤可以基于该图8所示的防御设备结构。
[0092] 其中,所述中央处理器(central processing units,CPU)822用于使防御设备执行以下步骤:
[0093] 检测目标主机是否受到攻击设备的用户数据报协议UDP攻击;
[0094] 当所述检测模块确定所述目标主机被攻击时,获取所述目标主机反馈给所述攻击设备的控制报文协议ICMP数据包;
[0095] 提取所述ICMP数据包中的目标端口的信息;
[0096] 将所述攻击设备向所述信息提取模块确定的所述目标端口发送的UDP数据包进行拦截处理。
[0097] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0098] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0099] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0100] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0101] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0102] 以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页 第1页 第2页 第3页
相关技术
方法防御相关技术
防御方法相关技术
张浩浩发明人的其他相关专利技术