一种防御ICMPflood攻击的方法和装置与流程

文档序号:12752866阅读:210来源:国知局
一种防御ICMP flood攻击的方法和装置与流程
本发明涉及防御领域,尤其涉及一种防御ICMPflood攻击的方法和装置。
背景技术
:若路由器接收到源主机发送的大量的控制报文(internetcontrolmessageprotocol,ICMP)ICMP报文,其中,ICMP报文携带目的主机的地址,则根据目的主机的地址将该大量的ICMP报文发送给目的主机。该情况下,可以认为目的主机受到ICMPflood(洪水)攻击。ICMPflood攻击会使目的主机的处理器的占有率过高,从而使目的主机的系统崩溃。目前,一种防御ICMPflood攻击的方法包括:路由器若接收到大量的携带目的主机的地址的ICMP报文,则不向该目的主机发送任何ICMP报文。虽然,上述方法中,路由器可以防御目的主机不受到ICMPflood攻击;然而,路由器在防御目的主机不受到ICMPflood攻击的过程中,目的主机无法接收正常的通过ICMP协议传递的消息,影响目的主机的正常通信。技术实现要素:本发明的实施例提供一种防御ICMPflood攻击的方法和装置,以使目的主机在防御ICMPflood攻击的过程中,可以向目的主机发送ICMP信息,从而保证目的主机的通信质量。为达到上述目的,本发明的实施例采用如下技术方案:一方面,提供一种防御ICMPflood攻击的方法,该方法可以包括:交换设备获取接收到的ICMP报文的速率,其中,ICMP报文携带目的主机的地址,用于指示将ICMP报文发送至目的主机;交换设备根据ICMP报文的类型和速率,确定目的主机待受的ICMPflood攻击的攻击类型,ICMP报文的类型包括ICMP请求报文或ICMP回应报文;交换设备根据攻击类型,在后续流程中拒绝接收引起ICMPflood攻击的ICMP报文。另一方面,提供一种防御ICMPflood攻击装置,该装置可以包括:接收单元,用于接收ICMP报文;获取单元,用于获取接收单元接收到的ICMP报文的速率;其中,ICMP报文携带目的主机的地址,用于指示将ICMP报文发送至目的主机;确定单元,用于根据ICMP报文的类型和速率,确定目的主机待受的ICMPflood攻击的攻击类型;ICMP报文的类型包括ICMP请求报文或ICMP回应报文;接收单元还用于,根据攻击类型,在后续流程中拒绝接收引起ICMPflood攻击的ICMP报文。本发明实施例提供的技术方案中,根据ICMP报文的类型和速率,确定目的主机待受到的ICMPflood攻击的攻击类型,并根据不同的攻击类型ICMPflood攻击,拒绝接收引起ICMPflood攻击的ICMP报文。与现有技术相比,本发明实施例在防御目的主机受到ICMPflood攻击的同时,可以接收ICMP报文和正常通过ICMP协议传递的消息;而现有技术在防御目的主机受到ICMPflood攻击的同时不可以接收ICMP报文和正常通过ICMP协议传递的消息;因此,本发明实施例提供的技术方案不影响目的主机的正常通信。附图说明图1为本发明实施例提供技术方案所适用的一种系统架构示意图;图2为本发明实施例提供的一种防御ICMPflood攻击方法流程图;图3为本发明实施例提供的一种防御直接攻击和伪造攻击方法流程图;图4为本发明实施例提供的一种防御反射攻击的方法的流程示意图;图5为本发明实施例提供的一种防御ICMPflood攻击装置结构示意图;图6为本发明实施例提供的另一种防御ICMPflood攻击装置结构示意图。具体实施方式本申请提供的实施例适用于如图1所示的系统架构中,图1所示的系统包括:源主机、第三方主机、交换设备和目的主机。源主机经交换设备向目的主机发送ICMP报文。ICMP报文是指通过ICMP报文协议传递的报文。ICMP报文可以包括源地址和目的地址。交换设备可根据ICMP报文中的目的地址,将ICMP报文发送给目的主机,其中,目的地址为目的主机的地址。交换设备具体可以是路由器和交换机。第三方主机是网络中除源主机和目的主机之外的任一主机。第三方主机可通过交换设备向源主机和目的主机发送ICMP报文。本文中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。本文中的术语“多个”是指两个或两个以上。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行示例性描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。如图2所示,为本发明实施例提供的一种防御ICMPflood攻击的方法流程示意图;该方法包括:S101:交换设备获取接收到的ICMP报文的速率;其中,ICMP报文携带目的主机的地址,用于指示将ICMP报文发送至目的主机。在S101之前,交换设备接收源主机和第三方主机发送的ICMP报文;并根据接收的ICMP报文的目的地址,将ICMP报文发送给目的主机和第三方主机;该情况下,交换设备记录在单位时间内接收的ICMP报文的个数。其中,目的主机可以是网络中的任一主机。ICMP报文包括ICMP请求报文、ICMP回应报文、ICMP超时报文和ICMP重定向报文;其中,引起ICMPflood攻击的ICMP报文包括ICMP请求报文和ICMP回应报文,正常的通过ICMP协议传递的消息包括除ICMP请求报文和ICMP回应报文之外的,其它类型的ICMP报文。ICMP报文的速率用于表示交换设备在单位时间内接收到的ICMP报文的个数。S102:交换设备根据ICMP报文的类型和速率,确定目的主机待受的ICMPflood攻击的攻击类型;ICMP报文的类型包括ICMP请求报文或ICMP回应报文。在S102之前,交换设备确定ICMP报文的速率是否等于或大于预设阈值;若大于或等于预设阈值,则确定目的主机会受到ICMPflood攻击;若小于预设阈值,则确定目的主机不会受到ICMPflood攻击。该情况下,交换设备若确定目的主机会受到ICMPflood攻击,则确定目的主机待受到ICMPflood攻击的攻击类型。其中,ICMPflood攻击的攻击类型可以包括:直接攻击、伪造攻击和反射攻击。直接攻击是指源主机通过交换设备向目的主机发送大量的ICMP请求报文,该ICMP请求报文中的源地址为源主机的地址,目的地址为目的主机的地址。伪造攻击是指源主机通过交换设备向目的主机发送大量的ICMP请求报文,其中,该ICMP请求报文中的源地址为第三方主机的地址,目的地址为目的主机的地址。反射攻击是指源主机通过交换设备向多个第三方主机发送大量的ICMP请求报文,其中,该ICMP请求报文中的源地址为目的主机的地址,目的地址为第三方主机的地址。因此,第三方主机根据ICMP请求报文的源地址,通过交换设备向目的主机发送大量的ICMP回应报文。S103:交换设备根据攻击类型,在后续流程中拒绝接收引起ICMPflood攻击的ICMP报文。其中,拒绝接收引起ICMPflood攻击的ICMP报文包括:拒绝接收源地址发送的所有ICMP报文,或限制ICMP报文的速率。具体的,交换设备若确定目的主机会受到直接攻击,则在后续流程中拒绝接收引起直接攻击的ICMP请求报文的源地址发送的任何ICMP报文和通过ICMP传递的消息。交换设备若确定目的主机会受到伪造攻击,则在后续流程中,限制接收ICMP请求报文的速率;也就是说,交换设备在该单位时间的后续单位时间内,接收预设数量的ICMP请求报文;该情况下,交换设备可以向目的主机发送任何ICMP报文,因此,目的主机可以接收正常的通过ICMP协议传递的消息。交换设备若确定目的主机待受到反射攻击,则在后续流程中,限制接收ICMP回应报文的速率;也就是说,交换设备在该单位时间的后续单位时间内,接收预设数量的ICMP回应报文;该情况下,交换设备可以向目的主机发送任何ICMP报文,因此,目的主机可以接收正常的通过ICMP协议传递的消息。本发明实施例提供的防御ICMPflood攻击的方法中,交换设备根据ICMP报文的类型和速率,确定目的主机待受到的ICMPflood攻击的攻击类型,并根据不同的攻击类型ICMPflood攻击,拒绝接收引起ICMPflood攻击的ICMP报文。与现有技术相比,本发明实施例在防御目的主机受到ICMPflood攻击的同时,可以接收ICMP报文和正常通过ICMP协议传递的消息;而现有技术在防御目的主机受到ICMPflood攻击的同时不可以接收ICMP报文和正常通过ICMP协议传递的消息;因此,本发明实施例提供的防御ICMPflood攻击的方法不影响目的主机的正常通信。下面通过几个具体的示例对上文提供的方法进行说明:实施例1:如图3所示,为一种防御直接攻击和伪造攻击的方法的流程示意图。S201:交换设备接收ICMP请求报文。S202:交换设备获取接收到的ICMP请求报文的速率。其中,ICMP请求报文的速率可以表示为交换设备在单位时间内接收的目的地址为目的主机的地址的ICMP请求报文的个数。S203:交换设备判断ICMP请求报文的速率是否大于或等于第一预设阈值。第一预设阈值是指交换设备确定目的主机可能会受到ICMPflood攻击的ICMP请求报文的速率的临界值。若是,说明:交换设备接收到大量的ICMP请求报文,目的主机可能会受到因ICMP请求报文引起的ICMPflood攻击,则执行S204;若否,说明:交换设备没有接收到大量的ICMP请求报文,目的主机不会受到因ICMP请求报文引起的ICMPflood攻击,则结束。S204:交换设备确定ICMP请求报文的类型和各个类型的ICMP请求报文的个数。其中,本发明实施例中,ICMP请求报文的类型是根据ICMP请求报文的源地址确定的。具体的,交换设备记录各个ICMP请求报文的源地址;根据ICMP请求报文的源地址确定ICMP请求报文的类型;源地址相同的ICMP请求报文为同一类型的ICMP请求报文,源地址不相同的ICMP请求报文为不同类型的ICMP请求报文。示例的,交换设备接收的多个ICMP请求报文及每个ICMP请求报文所携带的源地址如表1所示:表1ICMP请求报文源地址报文1a报文2b报文3c报文4b报文5c报文6c基于表1得到的ICMP请求报文的类型及各个类型的ICMP请求报文的个数如表2所示:表2ICMP请求报文的类型ICMP请求报文的个数类型1(源地址a)1个,具体为:报文1类型2(源地址b)2个,具体为:报文2和报文4类型3(源地址c)3个,具体为:报文3、报文5和报文6其中,“类型1(源地址a)”可以表示源地址是a的ICMP请求报文的类型。其他的示例与此类似,不再一一说明。S205:交换设备判断ICMP请求报文的类型的个数是否大于或等于第二预设阈值。第二预设阈值是确定目的主机可能会受到的直接攻击或伪造攻击,交换设备接收的ICMP请求报文的类型的个数的临界值。若是,说明:交换设备接收到大量类型的ICMP请求报文,符合伪造攻击的某一攻击特征,也就是说,目的主机可能会受到伪造攻击,则执行S208。其中,伪造攻击的攻击特征包括:交换设备接收到大量类型的ICMP请求报文,且至少一个类型的ICMP请求报文的个数大于或等于预设阈值。若否,说明:交换设备接收到少量类型的ICMP请求报文,符合直接攻击的某一攻击特征,也就是说,目的主机可能会受到直接攻击,则执行S206。其中,直接攻击的攻击特征包括:交换设备接收到少量类型的ICMP请求报文,且至少一个类型的ICMP请求报文的个数大于或等于预设阈值。S206:交换设备判断是否存在至少一个类型的ICMP请求报文的个数大于或等于第三预设阈值。第三预设阈值是指确定目的主机会受到直接攻击,交换设备接收的各个类型的ICMP请求报文的个数的临界值。若是,说明目的主机会受到直接攻击,则执行S207。若否,说明目的主机不会受到直接攻击,则结束。S207:交换设备拒绝接收个数大于或等于第三预设阈值的类型的ICMP请求报文。执行S207之后,则结束。具体的,交换设备将引起直接攻击的ICMP请求报文的源地址加入黑名单,也就是说,在该单位时间的后续单位时间内拒绝接收引起直接攻击的ICMP请求报文的源地址发送的任何ICMP报文和通过ICMP协议传递的消息,从而防御目的主机不受到直接攻击。S208:交换设备判断是否存在至少一个类型的ICMP请求报文的个数大于等于第四预设阈值。其中,第四预设阈值与第三预设阈值的取值可以相同,也可以不同。第四预设阈值是指确定目的主机会受到伪造攻击,交换设备接收的各个类型的ICMP请求报文的个数的临界值。若是,说明:交换设备接收的ICMP请求报文的类型的个数大于或等于第二预设阈值,且至少一个类型的ICMP请求报文的个数大于或等于第四预设阈值,即目的主机会受到伪造攻击,则执行S207。若否,说明目的主机不会受到伪造攻击,则结束。S209:交换设备限制在单位时间的后续单位时间内接收ICMP请求报文的最大数量。执行S209之后,则结束。S209可以理解为:在该单位时间的后续单位时间内减少接收的ICMP请求报文的个数,这样,能够防御目的主机不受到伪造攻击。可选的,S209可以替换为:交换设备若接收到最大数量的ICMP请求报文,则不接收任何ICMP请求报文,该ICMP请求报文的目的地址为目的主机的地址。可选的,在S201之前,该方法还可以包括:交换设备筛选出不满足筛选条件的ICMP请求报文。该情况下,S202可以包括:交换设备获取接收到的不满足筛选条件的ICMP请求报文的速率。其中,筛选条件包含交换设备确定的目的主机会受到的ICMPflood攻击的ICMP报文的源地址,可选的,筛选条件还可以包括与该源地址对应的攻击类型。可选的,在S201之前,该方法还可以包括:交换设备若接收到满足筛选条件的ICMP请求报文,则根据ICMP请求报文的源地址,直接确定目的主机会受到的ICMPflood攻击的攻击类型,并在后续一个或多个单位时间内,拒绝接收符合筛选条件的源地址发送的所有ICMP报文,或限制符合筛选条件的ICMP报文的速率。具体的:交换设备若确定接收到的ICMP请求报文的源地址对应的攻击类型为直接攻击,则在后续单位时间内拒绝接收携带该源地址发送的所有ICMP请求报文。交换设备若确定接收到的ICMP请求报文的源地址对应的攻击类型为反射攻击,则在后续单位时间内携带该源地址的限制符合筛选条件的ICMP请求报文的速率。示例的,基于表2,假设交换设备的筛选条件包括类型3的源地址,且类型3的源地址对应的攻击类型为伪造攻击。若交换设备在单位时间内,接收到类型3的ICMP请求报文,则交换设备在该单位时间内,接收的类型3的ICMP请求报文的个数不超过最大数量。可选的,在S207之后,该方法还可以包括:交换设备检测在后续一个或多个单位时间内,接收的ICMP请求报文的个数;若接收的ICMP请求报文的个数小于第一阈值,则不拒绝接收任何ICMP请求报文。可选的,在S209之后,该方法还可以包括:交换设备检测在后续一个或多个单位时间内,接收的ICMP请求报文的个数;若接收的ICMP请求报文的个数小于第一阈值,则不限制ICMP请求报文的速率。若在后续多个时间段内接收的至少一个类型的ICMP请求报文的个数等于或大于第一阈值,说明:目的主机可能会受的ICMPflood攻击,则具体实施方式可参考S201至S209。实施例2:如图4所示,为一种防御反射攻击的方法的流程示意图。S301:交换设备接收ICMP回应报文。交换设备接收源主机和第三方主机发送的ICMP回应报文。其中,源主机可通过交换设备向第三方主机发送ICMP请求报文;第三方主机接收到源主机发送的ICMP请求报文后,向交换设备发送ICMP回应报文,该ICMP回应报文的源地址为第三方主机的地址,目的地址为目的主机的地址。目的主机可通过交换设备向源主机发送ICMP请求报文;源主机接收到目的主机发送的ICMP请求报文后,向交换设备发送ICMP回应报文,该ICMP回应报文的源地址为源主机的地址,目的地址为目的主机的地址。S302:交换设备获取接收到的ICMP回应报文的速率。其中,获取的ICMP回应报文的速率可以表示为交换设备在单位时间内接收的目的地址为目的主机的地址的ICMP回应报文的个数。S303:交换设备判断ICMP回应报文的速率是否大于或等于第五阈值。第五预设阈值是指确定目的主机会受到反射攻击时,交换设备接收的ICMP回应报文的个数的临界值。若是,说明:目的主机会受到反射攻击,则执行304;若否,说明:目的主机不会受到反射攻击,则结束。S304:交换设备限制在单位时间的后续单位时间内接收ICMP回应报文的最大数量。执行S304之后,则结束。S304可以理解为:交换设备在该单位时间的后续单位时间内减少接收的ICMP回应报文的个数,这样能够防御目的主机不受到反射攻击。可选的,S304可以替换为:交换设备若所接收到的ICMP回应报文的数量达到最大数量,则不接收任何ICMP回应报文,该ICMP回应报文的目的地址为目的主机的地址。可选的,该方法还可以包括:交换设备检测在后续一个或多个单位时间段内,接收的ICMP回应报文的个数,若接收的所有类型的ICMP回应报文的个数小于第五阈值,则交换设备不限制在单位时间的后续单位时间内接收ICMP回应报文的最大数量。若在后续多个时间段内接收到的ICMP回应报文的个数大于或等于第五阈值,说明目的主机会受到反射攻击,则防御反射攻击的具体实施方式可参考S304。本发明实施例还提供了与上文所述的方法实施例对应的装置实施例,以下装置实施例中相关内容的解释均可以参考上文,此处不再赘述。如图5示,是本发明实施例提供的一种防御ICMPflood攻击装置50的结构示意图。图5所示的防御ICMPflood攻击装置50用于执行上文所提供的任一种防御ICMPflood攻击方法中交换设备所执行的动作,防御ICMPflood攻击装置50可以包括相应步骤所对应的模块,示例的,可以包括:获取模块501、确定模块502和接收模块503。其中,接收模块503,用于接收ICMP报文。获取模块501,用于获取接收模块503接收到的ICMP报文的速率;其中,ICMP报文携带目的主机的地址,用于指示将ICMP报文发送至目的主机。确定模块502,用于根据ICMP报文的类型和速率,确定目的主机待受的ICMPflood攻击的攻击类型;ICMP报文的类型包括ICMP请求报文或ICMP回应报文。接收模块503,用于根据攻击类型,在后续流程中拒绝接收引起ICMPflood攻击的ICMP报文。可选的,获取模块501还可以用于,获取单位时间内接收模块503接收到的ICMP请求报文的类型的个数,以及单位时间内接收到的至少一种类型的ICMP请求报文的个数;其中,单位时间是指速率对应的单位时间,携带同一源主机的地址的ICMP请求报文为同一类型的ICMP请求报文。确定模块502具体可以用于,若速率大于或等于第一预设阈值、单位时间内接收到的ICMP请求报文的类型的个数小于或等于第二预设阈值、且至少一种类型的ICMP请求报文的个数大于或等于第三预设阈值,则确定目的主机待受的ICMPflood攻击为直接攻击;或,若速率大于或等于第一预设阈值、单位时间内接收到的ICMP请求报文的类型的个数大于第二预设阈值、且至少一种类型的ICMP请求报文的个数大于或等于第四预设阈值,则确定目的主机待受到的ICMPflood攻击为伪造攻击。可选的,接收模块503具体可以用于,若确定的目的主机待受的ICMPflood攻击为直接攻击,则在单位时间的后续单位时间内,接收模块503拒绝接收个数大于或等于第三预设阈值的类型的ICMP请求报文。可选的,接收模块503具体可以用于,若确定的目的主机待受的ICMPflood攻击为伪造攻击,则接收模块503限制在单位时间的后续单位时间内接收ICMP请求报文的最大数量。可选的,确定模块502具体可以用于,若速率大于或等于第五预设阈值,则确定目的主机待受的ICMPflood攻击为反射攻击。可选的,接收模块503具体可以用于,接收模块503限制在单位时间的后续单位时间内接收ICMP回应报文的最大数量。可选的,该装置还可以包括筛选模块504,用于筛选接收模块503接收的ICMP报文。该情况下,获取模块501具体可以用于,获取不符合筛选条件的ICMP报文的速率;其中,筛选条件包含目的主机会受到ICMPflood攻击时的ICMP报文的源地址。本发明实施例提供的防御ICMPflood攻击装置50用于执行上文所提供的任一种防御ICMPflood攻击方法中交换设备的动作,因此,其所能达到的有益效果可以参考上文,此处不再赘述。在硬件实现上,接收模块503可以被称为收发器。获取模块501、确定模块502和筛选模块504可以以硬件形式内嵌于或独立于防御ICMPflood攻击装置50的处理器中,也可以以软件形式存储于防御ICMPflood攻击装置50的存储器中,以便于处理器调用执行以上各个模块对应的操作。如图6所示,是本发明实施例提供的一种防御ICMPflood攻击装置60的结构示意图。图6所示的防御ICMPflood攻击装置60用于执行上文所提供的任一实施例中防御ICMPflood攻击装置所执行的动作,本实施例中相关内容的解释可以参考上文,此处不再赘述防御ICMPflood攻击装置60可以包括:存储器601、通信接口602、处理器603和系统总线604。通信接口602和处理器603通过系统总线604连接。存储器601用于存储计算机执行指令,当防御ICMPflood攻击装置60运行时,处理器603执行存储器601存储的计算机执行指令,以使防御ICMPflood攻击装置60执行上述任一实施例中防御ICMPflood攻击装置的动作。本实施例还提供一种存储介质,该存储介质可以包括存储器601。在具体实现过程中,上述任一实施例中防御ICMPflood攻击装置所执行的各步骤均可以通过硬件形式的处理器603执行存储器601中存储的软件形式的计算机执行指令实现。为避免重复,此处不再赘述。由于本发明实施例中的防御ICMPflood攻击装置60可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。上文中的存储器601可以包括易失性存储器(volatilememory),例如RAM(random-accessmemory,随机存取存储器);也可以包括非易失性存储器(non-volatilememory),例如ROM(read-onlymemory,只读存储器),快闪存储器(flashmemory),HDD(harddiskdrive,硬盘)或SSD(solid-statedrive,固态硬盘);还可以包括上述种类的存储器的组合。上文中的处理器603可以是一个处理器,也可以是多个处理元件的统称。例如,处理器可以为CPU(centralprocessingunit,中央处理器);也可以为其他通用处理器、DSP(digitalsignalprocessing,数字信号处理器)、ASIC(applicationspecificintegratedcircuit,专用集成电路)、FPGA(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等;还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。进一步地,该专用处理器还可以包括具有该处理器所在的设备中其他专用处理功能的芯片。上文中的通信接口602具体可以是收发器。该收发器可以为无线收发器。例如,无线收发器可以是天线等。上文中的处理器603通过该处理器所属的设备中的通信接口602与其他设备进行通信。上文所提供的系统总线可以包括数据总线、电源总线、控制总线和信号状态总线等。本实施例中为了清楚说明,将各种总线都示意为系统总线。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1