一种报文洪泛攻击的防御方法及装置与流程

文档序号:17479417发布日期:2019-04-20 06:20阅读:217来源:国知局
一种报文洪泛攻击的防御方法及装置与流程

本发明涉及网络安全技术领域,尤其涉及一种报文洪泛攻击的防御方法及装置。



背景技术:

随着计算机网络规模的日趋增大,发生网络攻击的机会也随之不断增大,而且攻击过程也越来越不易被发现,尤其是随着网络种类的增多,对于网络攻击的防御变得日益具有挑战性。

拒绝服务(denialofservice,dos)攻击是目前常见的攻击手段,洪泛攻击是其最常用的攻击形式,当网络设备受到洪泛攻击时,都是通过被保护设备的中央处理器(centralprocessingunit,cpu)对报文进行解析过滤,即完全通过软件程序实现阻止攻击性的报文的不断转发,从而对洪泛攻击进行防御,然而随着网络流量的不断增大,cpu对报文的处理效率也越来越低,并且使得cpu的负荷越来越高。



技术实现要素:

本发明的目的是提供一种报文洪泛攻击的防御方法及装置,以降低cpu的处理负担,同时提高被保护设备对于具有攻击性的报文的处理效率。

本发明的目的是通过以下技术方案实现的:

第一方面,本发明提供一种报文洪泛攻击的防御方法,包括:

被保护设备接收未被保护的设备发送的报文,并对所述报文进行分类,得到至少一类报文;

针对每一类报文,确定满足预设条件的目标报文,并将所述目标报文发送给cpu;

获取所述cpu接收到的所述目标报文的源ip地址;

依据每一类报文中所述目标报文的源ip地址,对所述目标报文进行洪泛攻击的防御。

可选的,针对每一类报文,确定满足预设条件的目标报文,包括:

针对每一类报文,确定所述每一类报文的速率值;

确定所述每一类报文的速率值中,大于第一预设值且小于第二预设值的报文,并将所述满足速率值大于第一预设值且小于第二预设值的报文作为目标报文。

可选的,依据所述每一类报文中目标报文的源ip地址,对所述目标报文进行防御,包括:

对所述每一类报文中目标报文的源ip地址进行分类,得到所述每一类目标报文的至少一个源ip地址;

针对所述至少一个源ip地址,确定所述每一类目标报文的每一个源ip地址的目标报文的速率值;

确定所述每一个源ip地址的目标报文的速率值是否大于第三预设值,并对所述大于第三预设值的目标报文对应的源ip地址进行防御。

可选的,所述方法还包括:

获取所述cpu接收到的所述目标报文的类型;

依据所述目标报文的类型,确定每一类目标报文的第三预设值;

确定所述每一类目标报文的每一个源ip地址的目标报文的速率值,包括:

获取所述cpu接收到的所述目标报文的时间戳;

依据所述目标报文的时间戳,确定所述每一类目标报文的每一个源ip地址的目标报文的速率值。

可选的,对所述大于第三预设值的目标报文对应的源ip地址进行防御,包括:

在设定时间内轮询所述大于第三预设值的目标报文对应的源ip地址,并在设定时间后取消对所述大于第三预设值的目标报文对应的源ip地址的防御。

可选的,对所述报文进行分类之前,所述方法还包括:

确定所述接收到的报文的目的ip地址与被保护设备的ip地址相同。

第二方面,本发明提供一种报文洪泛攻击的防御装置,包括:

接收单元,用于接收未被保护的设备发送的报文,并对所述报文进行分类,得到至少一类报文;

确定单元,用于针对每一类报文,确定满足预设条件的目标报文;

发送单元,用于将所述目标报文发送给cpu;

获取单元,用于获取所述cpu接收到的所述目标报文的源ip地址;

防御单元,用于依据每一类报文中所述目标报文的源ip地址,对所述目标报文进行洪泛攻击的防御。

可选的,所述确定单元具体用于按如下方式针对每一类报文,确定满足预设条件的目标报文:

针对每一类报文,确定所述每一类报文的速率值;

确定所述每一类报文的速率值中,大于第一预设值且小于第二预设值的报文,并将所述满足速率值大于第一预设值且小于第二预设值的报文作为目标报文。

可选的,所述防御单元具体用于按如下方式依据每一类报文中所述目标报文的源ip地址,对所述目标报文进行防御:

对所述每一类报文中目标报文的源ip地址进行分类,得到所述每一类目标报文的至少一个源ip地址;

针对所述至少一个源ip地址,确定所述每一类目标报文的每一个源ip地址的目标报文的速率值;

确定所述每一个源ip地址的目标报文的速率值是否大于第三预设值,并对所述大于第三预设值的目标报文对应的源ip地址进行防御。

可选的,所述获取单元还用于:获取所述cpu接收到的所述目标报文的类型;

所述确定单元还用于:依据所述目标报文的类型,确定每一类目标报文的第三预设值;

所述确定单元具体用于按如下方式确定所述每一类目标报文的每一个源ip地址的目标报文的速率值:

获取所述cpu接收到的所述目标报文的时间戳;

依据所述目标报文的时间戳,确定所述每一类目标报文的每一个源ip地址的目标报文的速率值。

可选的,所述防御单元具体用于按如下方式对所述大于第三预设值的目标报文对应的源ip地址进行防御:

在设定时间内轮询所述大于第三预设值的目标报文对应的源ip地址,并在设定时间后取消对所述大于第三预设值的目标报文对应的源ip地址的防御。

可选的,所述确定单元还用于:确定所述接收到的报文的目的ip地址与被保护设备的ip地址相同。

第三方面,本发明提供一种报文洪泛攻击的防御装置,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行第一方面所述的方法。

第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行第一方面所述的方法。

本发明提供一种报文洪泛攻击的防御方法及装置,被保护设备接收未被保护设备发送的报文,并对报文进行分类,得到具有洪泛攻击的至少一类报文,将每一类报文中满足预设条件的目标报文发送给cpu,cpu根据目标报文的源ip地址进行防御,通过对接收到的报文进行分类处理,将分类处理后的目标报文发送给cpu进行防御处理,从而降低了cpu的处理负担,同时提高被保护设备对于洪泛攻击的报文的处理效率。

附图说明

图1为本申请实施例提供的一种网络结构示意图;

图2为本申请实施例提供的一种报文洪泛攻击的防御方法流程图;

图3为本申请实施例提供一种确定目标报文的方法流程图;

图4为本申请实施例提供一种防御方法流程图;

图5为本申请实施例提供的一种软件和硬件相结合的报文洪泛攻击的防御方法示意图;

图6为本申请实施例提供的一种报文洪泛攻击的防御装置的结构框图;

图7为本申请实施例提供的另外一种报文洪泛攻击的防御装置示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,为目前常见的网络结构,网络环境被安全设备划分为安全区和非安全区,位于安全区内的为被保护对象,非安全区内的为互联网或安全性不可控的局域网。非安全区是攻击者的潜伏区,一旦攻击者向安全区中的保护对象发起洪泛攻击,安全设备将检测到该事件并阻断攻击者与被保护对象之间的一切通信。

现有技术中安全设备在检测到有洪泛攻击的报文时,会将报文发送给cpu处理,由cpu对报文进行转发、解析和过滤,随着网络流量的增大,cpu的性能有限,处理负担比较大。

有鉴于此,本申请实施例提供了一种报文洪泛攻击的防御方法及装置,对接收到的报文进行分类处理,将分类后的报文发送给cpu,由cpu进行洪泛攻击的防御,从而减轻了cpu的负荷,提高了洪泛攻击的处理效率。

其中,需要理解的是,在下文的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。

如图2所示为本申请实施例提供的一种报文洪泛攻击的防御方法流程图,图2所示方法的执行主体可以为一种被保护的设备,参阅图2所示,该方法包括:

s101:被保护设备接收未被保护的设备发送的报文,并对报文进行分类,得到至少一类报文。

s102:针对每一类报文,确定满足预设条件的目标报文,并将目标报文发送给cpu。

s103:获取目标报文的源ip地址。

s104:根据目标报文的源ip地址,对目标报文进行防御。

本申请实施例中,在将目标报文发送给cpu之前,先对接收到的报文进行分类转发,而不是将接收到的报文直接发给cpu处理,从而降低了cpu的负荷。

以下将对上述所涉及到的步骤进行详细说明。

被保护的设备接收到其他设备发送的报文之后,可对接收到的报文进行分类,例如,可以分为四类,包括:用户数据报协议(userdatagramprotocol,udp)、控制报文协议(internetcontrolmessageprotocol,icmp)、传输控制协议(transmissioncontrolprotocol,tcp)同步序列编号(synchronizesequencenumbers,syn)、分片(fragment,frag)报文。

需要说明的是,本申请中主要针对上述四种类型的报文进行洪泛攻击的防御。

一种可能的实施方式中,可将目标报文的源ip地址、报文的类型以及报文的时间戳组成一个消息,发送给cpu。

可以理解的是,该报文的类型可以是报文的标识,并不限定为协议规定的报文类型,例如,可将udp记为标识1,将syn记为标识2等。

本申请实施例中,可采用如下方式针对每一类报文,确定满足预设条件的目标报文,参阅图3所示,该方法包括:

s1021:针对每一类报文,确定每一类报文的速率值。

本申请实施例中,每一类报文的速率值可以每秒传输帧数(framespersecond,fps)为单位,统计每一类报文的数量。

s1022:确定每一类报文的速率值中,大于第一预设值且小于第二预设值的报文。

具体的,本申请实施例中为了描述方便,可将“第一预设值”称为“初始值”,将“第二预设值”称为“极限值”。

当每一类报文的速率达到初始值后,可开始将报文发送给cpu,并且在速率大于极限值之后,可将大于极限值的报文丢弃。因此,发送给cpu的报文为报文的速率值大于初始值,且小于极限值的报文。

需要说明的是,针对每一类报文,均有对应的初始值和极限值,初始值和极限值的大小可通过用户自行设定。

s1023:将满足速率值大于第一预设值且小于第二预设值的报文作为目标报文。

本申请实施例中将目标报文发送给cpu之后,cpu可对接收到的目标报文进行防御处理。

具体的,本申请实施例中可采用如图4所示的方法进行防御处理,参阅图4所示,该方法包括:

s1041:对目标报文的源ip地址进行分类,得到至少一个源ip地址。

s1042:确定每一个源ip地址的目标报文的速率值。

s1043:确定每一个源ip地址的目标报文的速率值是否大于第三预设值,并对大于第三预设值的目标报文对应的源ip地址进行防御。

为了描述方便,本申请实施例中可将“第三预设值”称为“黑名单值”。

由于报文的源ip地址可能相同也可能不同,因此,在对报文进行防御时,确定报文的源ip地址尤其重要。

本申请实施例中,可对目标报文的源ip进行分类,得到至少一个源ip地址,然后确定每一源ip对应的报文的速率值,并判断每一个源ip地址的报文的速率值是否大于黑名单值,当大于黑名单值时,将其加入黑名单进行防御。

例如,对目标报文(以syn为例)的源ip地址进行分类后得到源ip1、源ip2、源ip3,假设黑名单值为5。

若源ip1、源ip2、源ip3对应的报文的速率分别为2、4、6,将速率分别与黑名单值3进行比较,可知:源ip3的报文速率值大于黑名单值,则将该源ip3的地址加入黑名单。

进一步的,当cpu接收到目标报文的类型后,可获取cpu接收到的目标报文的类型,并依据目标报文的类型,确定每一类目标报文的第三预设值。

需要说明的是,本申请实施例中的“第三预设值”与报文的类型具有一一对应关系,即每一种类型的报文都可设置有一个第三预设值。

由于cpu的处理能力有限,假设在一个时间段内cpu比较忙,没有时间对目标报文进行处理,可能会将报文先暂时保存在缓存区,等到空闲时间时在处理缓存区的报文,这种情况下可能会使得报文的速率计算错误。

因此,为了提高攻击防御的精确度,本申请实施例中可获取cpu接收到的目标报文的时间戳,并根据目标报文的时间戳确定各个源ip的报文速率。

具体的,本申请实施例中的报文速率可以每秒为单位计算,例如,先接收到报文1的时间戳为t1,后接收到报文2的时间戳为t2,若t2-t1>1,则说明报文1与报文2不是在同一秒内发送的,若t2-t1<1,则说明报文1与报文2是在同一秒内发送的,将报文速率加1。

因此,cpu在接收到目标报文时,首先可比较报文的时间戳大小,若后接收到的报文时间戳晚于先接收到的报文的时间戳,则在先接收到的报文数量上加一。

进一步的,本申请实施例中可按照如下方式对大于第三预设值的目标报文对应的源ip地址进行防御,包括:

在设定时间内轮询大于第三预设值的目标报文对应的源ip地址,并在设定时间后取消对大于第三预设值的目标报文对应的源ip地址的防御。

具体的,将大于黑名单值的源ip加入黑名单之后,可对黑名单设置一个时效,例如,可设置为五分钟,通过不断轮询检查黑名单是否超时,如果超过设定的五分钟,则下发取消黑名单的命令,取消对黑名单中源ip地址的防御。

本申请实施例中通过设置轮询线程,不断检查黑名单,可防止伪装源ip的ip地址对安全设备进行攻击,例如,在五分钟内依然接收到黑名单中的源ip地址发送的报文,并且接收到的报文速率较大,则该源ip地址可能是具有攻击性的伪装源ip发送的,并不是黑名单中真正的源ip地址发送的报文。

如果在设定的五分钟内没有接收到黑名单中的源ip发送的报文或者接收到的速率比较小,则可取消对黑名单中的源ip的防御。

本申请实施例中,在对报文进行分类之前,所述方法还包括:

确定接收到的报文的目的ip地址与被保护设备的ip地址相同。

具体的,被保护设备接收到其他设备发送的报文时,首先比较发送来的报文的目的ip地址和被保护设备的ip地址是否相同,若不同,则继续进行转发,若相同,则确定报文是具有攻击性的报文,再对报文进行分类。

现有技术中的保护设备对于洪泛攻击的防御处理方式基本都是cpu来处理,即完全通过软件程序来实现,而本申请实施例中可将硬件和软件相结合,实现对报文洪泛攻击的防御。

一种可能的实施方式中,本申请实施例采用现场可编程逻辑门阵列(fieldprogrammablegatearray,fpga)芯片作为硬件实现对报文的转发和分类统计,通过cpu来对报文进行防御处理,从而提高了保护设备的整体性能,并且降低了cpu的处理负担。

如图5所示,为本申请实施例提供的一种软件和硬件相结合的报文洪泛攻击的防御方法示意图,图5中主要以syn报文为例进行详细说明。

具体的,保护设备接收到报文之后,可通过报文分类器对报文进行分类,例如分为udp、syn、icmp、frag四类,以syn为例继续进行说明,其他类别的处理方式参照syn的处理方式。

当syn的发送速率大于初始值时,开始将报文发送给cpu,直到速率大于初始值小于极限值,将接收到的报文以消息的形式发送给cpu,若速率值大于极限值,则可将多于极限值的报文丢弃。上述报文的转发分类都是由fpga完成。

当报文以消息的形式发送给cpu之后,cpu可对消息进行解析,根据报文的源ip地址进行分类,并统计每个源ip地址的报文速率,然后将速率与黑名单值进行比较,如果速率值大于黑名单值,则生成黑名单,将黑名单发送给访问控制列表(accesscontrollist,acl)模块,由acl模块进行处理,同时判断黑名单的时间是否超过设定的时间,例如为5分钟,当超时后,删除黑名单。

需要理解的是,acl模块为报文在转发流程中的一个处理模块,该模块可通过设定规则来阻止特定类型报文的转发。

基于与上述一种报文洪泛攻击的防御方法实施例相同的构思,本发明实施例还提供一种报文洪泛攻击的防御装置。图6所示为本发明实施例提供的一种报文洪泛攻击的防御装置的结构框图,包括:接收单元101、确定单元102、发送单元103、获取单元104以及防御单元105。

其中,接收单元101,用于接收未被保护的设备发送的报文,并对报文进行分类,得到至少一类报文。

确定单元102,用于针对每一类报文,确定满足预设条件的目标报文。

发送单元103,用于将目标报文发送给cpu。

获取单元104,用于获取cpu接收到的目标报文的源ip地址。

防御单元105,用于依据每一类报文中目标报文的源ip地址,对目标报文进行洪泛攻击的防御。

具体的,确定单元102具体用于按如下方式针对每一类报文,确定满足预设条件的目标报文:

针对每一类报文,确定每一类报文的速率值;确定每一类报文的速率值中,大于第一预设值且小于第二预设值的报文,并将所述满足速率值大于第一预设值且小于第二预设值的报文作为目标报文。

进一步的,所述防御单元105具体用于按如下方式依据每一类报文中目标报文的源ip地址,对目标报文进行防御:

对每一类报文中目标报文的源ip地址进行分类,得到每一类目标报文的至少一个源ip地址;针对所至少一个源ip地址,确定每一类目标报文的每一个源ip地址的目标报文的速率值;确定每一个源ip地址的目标报文的速率值是否大于第三预设值,并对所述大于第三预设值的目标报文对应的源ip地址进行防御。

较佳的,获取单元104还用于:获取cpu接收到的目标报文的类型。

确定单元102还用于:依据目标报文的类型,确定每一类目标报文的第三预设值。

进一步的,确定单元102具体用于按如下方式确定每一类目标报文的每一个源ip地址的目标报文的速率值:

获取cpu接收到的所述目标报文的时间戳;依据目标报文的时间戳,确定每一类目标报文的每一个源ip地址的目标报文的速率值。

进一步的,防御单元105具体用于按如下方式对大于第三预设值的目标报文对应的源ip地址进行防御:

在设定时间内轮询大于第三预设值的目标报文对应的源ip地址,并在设定时间后取消对大于第三预设值的目标报文对应的源ip地址的防御。

更进一步的,确定单元102还用于:确定接收到的报文的目的ip地址与被保护设备的ip地址相同。

需要说明的是,本发明实施例中上述涉及的报文洪泛攻击的防御装置中各个单元的功能实现可以进一步参照相关方法实施例的描述,在此不再赘述。

本申请实施例还提供另外一种报文洪泛攻击的防御装置,如图7所示,该装置包括:

存储器202,用于存储程序指令。

收发机201,用于接收和发送的报文洪泛攻击的防御指令。

处理器200,用于调用所述存储器中存储的程序指令,根据收发机201接收到的指令按照获得的程序执行本申请实施例所述的任一方法流程。处理器200用于实现图6所示的确定单元(102)以及防御单元(105)所执行的方法。

其中,在图7中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器200代表的一个或多个处理器和存储器202代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。

收发机201可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。

处理器200负责管理总线架构和通常的处理,存储器202可以存储处理器200在执行操作时所使用的数据。

处理器200可以是中央处理器(cpu)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)。

本申请实施例还提供了一种计算机存储介质,用于储存为上述本申请实施例中所述的任一装置所用的计算机程序指令,其包含用于执行上述本申请实施例提供的任一方法的程序。

所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1