检测及防御DDoS攻击的装置及方法与流程

文档序号:11156676阅读:376来源:国知局
检测及防御DDoS攻击的装置及方法与制造工艺

本发明涉及一种网络通信领域,尤其是涉及一种检测及防御DDOS攻击的方法及交换芯片。



背景技术:

在计算机网络中,DDoS攻击十分频繁,DDoS(Distributed Denial of service,分布式拒绝服务)是指由多个DOS攻击源同时攻击某台服务器就组成了DDoS攻击,DDoS攻击能够造成网络阻塞或者服务器资源耗尽从而导致拒绝服务,从而阻止合法用户对正常网络资源的访问,达成攻击者不可告人的目的,因此,DDoS攻击又称洪水式攻击,常见的DDoS攻击手段有SYN FLOOD,ACK FLOOD,UDP FLOOD,ICMP FLOOD等等。

通常的,通过给服务器打补丁或者安装防火墙软件来防范DDOS攻击,但是对于交换机来说,若给交换机安装防火墙软件,则会增加成本。

因此,在交换机中如何检测及预防DDoS攻击,是目前需要解决的问题。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供一种检测及防御DDoS攻击的装置和方法,能够针对洪泛类DDoS进行检测和防御,减轻网络服务器防御DDoS的负荷,同时对本地交换机系统CPU的DDoS攻击进行相应的检测和防御。

为实现上述目的,本发明提出如下技术方案:一种检测及防御DDoS攻击的装置,包括报文接收模块,DDoS报文识别模块,DDoS报文处理引擎模块,以及报文转发模块;

所述报文接收模块与DDoS报文识别模块相连接,报文接收模块接收报文正常处理后发送至DDoS报文识别模块进行DDoS报文识别;

所述DDoS报文识别模块与DDoS报文处理引擎模块相连接,DDoS报文识别模块对报文进行匹配,将匹配的报文标示为需要DDoS报文处理引擎模块处理的报文,并发送至DDoS报文处理引擎模块进行相应的处理;

所述DDoS报文处理引擎模块与报文转发模块相连接,DDoS报文处理引擎模块对标示为需要DDoS报文处理引擎模块处理的报文检测处理,若处理结果为丢弃报文,则丢弃报文,否则,将报文发送至报文转发模块进行转发处理。

优选地,所述DDoS报文识别模块通过访问控制列表项,以及本地CPU协议报文识别表项对报文进行匹配,将匹配的报文标示为需要DDOS报文处理引擎模块处理的报文。

优选地,所述DDoS报文识别模块根据所述访问控制列表项,以及本地CPU协议报文识别表项匹配报文,获得配置表项Index,根据所述配置表项Index能够读取相应的配置表项FlowProfile。

优选地,所述配置表项FlowProfile包括DDoS门限字段、流细分字段、检测周期字段,以及阻断时间长度字段。

优选地,所述流细分字段包括IP头和TCP头中的字段,通过选取所述IP头和TCP头中的字段并参与哈希计算对报文进行筛选。

一种检测及防御DDOS攻击的方法,包括如下步骤:

步骤1,接收报文并对所述报文进行DDoS报文识别,将匹配的报文进行标示为需要DDoS处理引擎模块处理的报文;

步骤2,所述DDoS报文处理引擎模块对需要DDoS处理引擎模块处理的报文检测处理,判断是否发生DDOS攻击,若是,则对所述报文进行阻断,否则,将所述报文发送至报文转发模块进行转发处理。

优选地,所述DDoS报文识别包括根据访问控制列表项,以及本地CPU协议报文识别表项对报文进行匹配,获得配置表项Index,根据所述配置表项Index读取相应的配置表项FlowProfile。

优选地,所述步骤2还包括如下步骤:

步骤201,接收需要DDoS处理引擎模块处理的报文,获得所述报文的配置表项Index,读取相应的配置表项FlowProfile;

步骤202,配置所述配置表项FlowProfile对所述需要DDoS处理引擎模块处理的报文进行筛选,获得DDoSRecord表项;

步骤203,选择DDoSRecord表项,判断是否设置阻断标志位,若设置,则阻断报文一个周期;否则,执行步骤204;

步骤204,判断DDoSRecord表项中统计的报文数量是否大于预设阈值,若是,则阻断报文;否则,转发报文。

优选地,阻断周期内DDoS报文处理引擎模块对DDoSRecord表项的处理方法包括如下步骤:

步骤301,判断时钟是否达到预设阈值,若否,时钟加一操作继续判断是否大于预设阈值,若是,执行步骤302;

步骤302,判断是否达到阻断时间长度字段中的数值,若是,则清空阻断标志位,指定下一条DDoSRecord表项,否则,执行步骤303;

步骤303,将阻断时间长度字段中的数值减一,指定下一条DDoSRecord表项,并将时钟清零,执行步骤S301~S303。

优选地,所述DDoSRecord表项包括Count字段,以及阻断标志位字段,所述Count字段表示流细分过后存在的报文数量,所述阻断标志位字段用于对报文是否进行阻断。

本发明的有益效果是:

本发明所述的检测及防御DDoS攻击的装置及方法,在交换芯片上进行针对洪流类DDoS攻击的检测和防御,在报文到达网络终端服务器前进行检测及防御,有效的减轻了网络终端服务器的负荷及压力;通过对DDoS攻击进一步防御,能够有效增加由于DDoS攻击而占用的网络带宽,提高网络整体利用效率。

附图说明

图1是本发明的检测及防御DDoS攻击的装置结构框图示意图;

图2是本发明的检测及防御DDoS攻击的装置报文处理流程图示意图;

图3是本发明的DDoS报文处理引擎模块报文处理流程图示意图;

图4是本发明的检测周期内报文处理流程图示意图;

图5是本发明的检测及防御DDoS攻击的方法示意图;

图6是本发明的DDoS报文处理引擎模块处理报文的方法示意图;

图7是检测周期内报文处理方法示意图。

具体实施方式

下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。

本发明所揭示的一种检测及防御DDoS攻击装置及方法,能够有效的检测及预防指定报文的洪泛攻击,减轻网络服务器的防御DDoS的负荷。

如图1所示,一种检测及预防DDoS攻击的装置,包括报文接收模块,DDoS报文识别模块,DDoS报文处理引擎模块,以及报文转发模块,所述报文接收模块与DDoS报文识别模块相连接,报文接收模块接收报文正常处理后发送至DDoS报文识别模块进行DDoS报文识别;所述DDoS报文识别模块与DDoS报文处理引擎模块相连接,DDoS报文识别模块对报文进行匹配,将匹配的报文标示为需要DDoS报文处理引擎模块处理的报文,并发送至DDoS报文处理引擎模块进行相应的处理;所述DDoS报文处理引擎模块与报文转发模块相连接,DDoS报文处理引擎模块对标示为需要DDoS报文处理引擎模块处理的报文进一步检测处理,若处理结果为丢弃报文,则将报文丢弃,否则,将报文发送至报文转发模块进行转发处理。

结合图1和图2所示,具体的,所述DDoS报文识别模块通过访问控制列表项,以及本地CPU协议报文识别表项对报文进行识别处理,将匹配的报文标示为需要DDOS报文处理引擎模块处理的报文。进一步的,在访问控制列表项中,通过配置访问控制列表,能够防止大多数洪流型DDoS攻击,如针对常见的TCP SYN洪流攻击,可以通过配置访问控制列表匹配类型为TCP,并有SYN标志位的报文,又如针对TCP RST洪流攻击,可以通过配置访问控制列表匹配类型为TCP,并有RST标志位的报文。通过配置访问控制列表,还能够匹配UDP洪流攻击、ICMP洪流攻击的报文。同样的,通过本地CPU协议报文识别表项,能够匹配出需要本地CPU处理的协议报文,将所述协议报文标示为需要DDoS报文处理引擎处理的报文。

本实施例中,所述DDoS报文识别模块根据访问控制列表项,以及本地CPU协议报文识别表项匹配报文的过程中,获得配置表项Index,根据所述配置表项Index能够读取相应的配置表项FlowProfile。所述配置表项FlowProfile预先进行配置,用于对报文进行处理,所述配置表项FlowProfile包括DDoS门限字段、流细分字段、检测周期字段,以及阻断时间长度字段,其中,DDoS门限字段用于设置数据报文的数量,当数据报文的数量超过DDoS门限字段的预设值时,则表明发生DDOS攻击;所述流细分字段能够对数据报文进一步的筛选;检测周期字段用于设置DDOS报文处理引擎模块对数据报文的检测周期,阻断时间长度字段用于设置对数据报文的阻断时间。

更进一步地,在DDoS报文识别模块中,对报文进行匹配的访问控制列表项,以及本地CPU协议报文识别表项通常采用较模糊的关键字对报文进行匹配,在网络遭受攻击时,应当不影响其他的报文的通过,如针对TCP SYN洪流攻击,应当不影响其他类型为TCP,并有SYN标志位的正常报文通过,通过配置流细分字段能够对报文进行进一步的细分,获得DDoSRecord表项,具体地,所述流细分字段包括IP头和TCP头中的各个字段,通过选取相应的字段并进行哈希计算,能够得到DDoSRecord表项Index,根据所述DDoSRecord表项Index能够读取DDoSRecord表项,所述DDoSRecord表项包括Count字段,以及阻断标志位字段,所述Count字段表示流细分过后存在的报文数量,所述阻断标志位字段用于对报文是否进行阻断。网络遭遇DDoS攻击时,通常只针对一个目的地址进行攻击,因此,本实施例中,通过在流细分字段中增加目的地址的网络地址对报文进一步进行的细分。

结合图3所示,通过进一步的流细分得到DDoSRecord表项后,所述DDoS报文处理引擎模块对所述DDoSRecord表项进一步检测,判断是否为DDoS攻击,若是DDoS攻击,则进行阻断。具体的,流细分字段参与流表的计算,选择DDoSRecord表项,本实施例中,根据流细分字段的配置以及流表的哈希计算,能够得到对应当前报文的DDoSRecord表项Index,根据DDoSRecord表项Index读取相应的DDoSRecord表项,判断所述DDoSRecord表项中的阻断标志位字段是否已经设置阻断标志位,若已设置,说明当前报文需要阻断,进而对报文进行阻断处理;若未设置阻断标志位,则对Count字段中的数值进行加一操作,进一步判断加一后的数值是否大于DDoS门限字段中设定的数值。若未达到DDoS门限字段中设定的数值,则表示报文检测通过,进行正常转发;若大于DDoS门限字段中设定的数值,需要对该报文进行阻断处理,通过设置阻断标志位用以阻断该报文,并且将阻断时间长度设置到当前DDoSRecord表项中,进一步设置对该报文的阻断时间,同时将该报文发送至CPU芯片中;当Count字段中的数值执行加一操作后的大于DDoS门限字段中设定的数值,也可以暂时对报文不进行阻断处理,由CPU芯片进行处理,所述CPU芯片通过设置阻断标志位,进而对该报文进行阻断一定的时间。

结合图4所示,本实施例中,是以一定的检测周期对报文进行循环检测,进而判断是否发生DDoS攻击,若发生DDoS攻击,则对该报文阻断一定的检测周期。所述配置表项FlowProfile中的阻断时间长度字段表示当发生DDoS攻击时,将该报文阻断一定的检测周期,如当发生TCP SYN洪流攻击时,需要将该类报文阻断10秒,若检测周期为1秒,则阻断时间长度应该设置为10,即将TCP SYN报文阻断10个检测周期。

具体的,所述检测周期通过芯片内部时钟进行控制,当时钟到达门限值时,即表示一个检测周期。当到达检测周期时,DDoS报文处理引擎模块对当前的DDoSRecord表项进行处理,将当前DDoSRecord表项中的Count字段中的数值进行清空,进一步判断阻断时间长度是否为零,若为零,表明已经到达预先设置的阻断时间,则清除当前DDoSRecord表项中的阻断标志位,并指定下一个处理的DDoSRecord表项,指定下一个处理的DDoSRecord表项后,将时钟置为零;若阻断时间长度字段中的数值不为零,则阻断时间长度的数值进行减一操作,并指定下一个处理的DDoSRecord表项,指定下一个处理的DDoSRecord表项后,将时钟置为零。

通过上述装置,能够对洪流型DDoS攻击进行有效的检测和防御。

结合图2和图5所示,一种检测及防御DDoS攻击的方法,基于上述检测及防御DDoS攻击的装置,所述方法包括如下步骤:

步骤1,接收报文并对所述报文进行DDoS报文识别,将匹配的报文进行标示为需要DDoS处理引擎模块处理的报文;

步骤2,所述DDoS报文处理引擎模块对需要DDoS处理引擎模块处理的报文检测处理,判断是否发生DDOS攻击,若是,则对所述报文进行阻断,否则,将所述报文发送至报文转发模块进行转发处理。

具体的,通过访问控制列表项,以及本地CPU协议报文识别表项对报文进行识别处理,将匹配的报文标示为需要DDoS处理引擎模块处理的报文。进一步的,在访问控制列表项中,通过配置访问控制列表,能够防止大多数洪流型DDoS攻击,如针对常见的TCP SYN洪流攻击,可以通过配置访问控制列表匹配类型为TCP,并有SYN标志位的报文,又如针对TCP RST洪流攻击,可以通过配置访问控制列表匹配类型为TCP,并有RST标志位的报文。通过配置访问控制列表,还能够匹配UDP洪流攻击、ICMP洪流攻击的报文。同样的,通过本地CPU协议报文识别表项,能够匹配出需要本地CPU处理的协议报文,将所述协议报文标示为需要DDoS报文处理引擎处理的报文。

结合图3和图6所示,所述DDoS报文处理引擎模块对报文进行检测处理包括如下步骤:

步骤201,接收需要DDoS处理引擎模块处理的报文,根据所述报文的配置表项Index,读取相应的配置表项FlowProfile;

步骤202,配置所述配置表项FlowProfile对所述需要DDoS处理引擎模块处理的报文进行筛选,获得DDoSRecord表项;

步骤203,选择DDoSRecord表项,判断是否设置阻断标志位,若设置,则阻断报文;否则,执行步骤204;

步骤204,判断DDoSRecord表项中统计的报文数量是否大于预设阈值,若是,则阻断报文;否则,转发报文。

具体的,配置表项FlowProfile预先进行配置,用于对报文进行处理,所述配置表项FlowProfile包括DDoS门限字段、流细分字段、检测周期字段,以及阻断时间长度字段,其中,DDoS门限字段用于设置数据报文的数量,当数据报文的数据超过预设值时,则表明发生DDOS攻击;所述流细分字段能够对数据报文进一步的筛选;检测周期字段用于设置DDOS报文处理引擎模块对数据报文的检测周期,阻断时间长度字段用于设置对数据报文的阻断时间。

所述DDoS报文识别模块根据访问控制列表项,以及本地CPU协议报文识别表项匹配报文的过程中,获得配置表项Index,所述配置表项Index能够读取相应的配置表项FlowProfile。

更进一步地,在DDoS报文识别模块中,对报文进行匹配的访问控制列表项,以及本地CPU协议报文识别表项通常采用较模糊的关键字对报文进行匹配,在网络遭受攻击时,应当不影响其他的报文的通过,如针对TCP SYN洪流攻击,应当不影响其他类型为TCP,并有SYN标志位的正常报文通过,通过配置流细分字段能够对报文进行进一步的细分,获得DDoSRecord表项,具体地,所述流细分字段包括IP头和TCP头中的各个字段,通过选取相应的字段并进行哈希计算,能够得到DDoSRecord表项Index,根据所述DDoSRecord表项Index能够读取DDoSRecord表项,所述DDoSRecord表项包括Count字段,以及阻断标志位字段,所述Count字段表示流细分过后存在的报文数量,所述阻断标志位字段用于对报文是否进行阻断。网络遭遇DDoS攻击时,通常只针对一个目的地址进行攻击,因此,本实施例中,通过在流细分字段中增加目的地址的网络地址对报文进一步进行的细分。

DDOSRecord表项的选择是通过流细分字段参与流表的计算进行选择的,本实施例中,根据流细分字段的配置以及流表的哈希计算,能够得到对应当前报文的DDoSRecord表项Index,根据DDoSRecord表项Index读取相应的DDoSRecord表项,判断所述DDoSRecord表项中的阻断标志位字段是否已经设置阻断标志位,若已设置,则说明当前报文需要阻断;若未设置阻断标志位,则对Count字段中的数值进行加一操作,进一步判断加一后的数值是否大于DDoS门限字段中设定的数值。若未达到DDoS门限字段中设定的数值,则表示报文检测通过,进行正常转发;若大于DDoS门限字段中设定的数值,需要对该报文进行阻断处理,通过设置阻断标志位用以阻断该报文,并且将阻断时间长度设置到当前DDoSRecord表项中,进一步设置对该报文的阻断时间,同时将该报文发送至CPU芯片中;当Count字段中的数值执行加一操作后的大于DDoS门限字段中设定的数值,也可以暂时对报文不进行阻断处理,由CPU芯片进行处理,所述CPU芯片通过设置阻断标志位,进而对该报文进行阻断一定的时间。

结合图4和图7所示,本实施例中,是以一定的检测周期对报文进行循环检测,进而判断是否发生DDoS攻击,若发生DDoS攻击,则对该报文阻断一定的检测周期。

所述检测周期通过芯片内部时钟进行控制,当时钟到达门限值时,即表示一个检测周期,所述DDOS报文处理引擎模块对DDOSRecord表项进一步处理。

阻断周期内DDOS报文处理引擎模块对DDOSRecord表项进一步处理方法包括如下步骤:

步骤301,判断时钟是否达到预设阈值,若否,时钟加一操作继续判断是否大于预设阈值,若是,执行步骤2;

步骤302,判断是否达到阻断时间长度字段中的数值,若是,则清空阻断标志位,指定下一条DDOSRecord表项,否则,执行步骤3;

步骤303,将阻断时间长度字段中的数值减一,并指定下一条DDOSRecord表项,并时钟清零,执行步骤S1~S3。

具体的,所述检测周期通过芯片内部时钟进行控制,当时钟到达门限值时,即表示一个检测周期。当到达检测周期时,DDoS报文处理引擎模块对当前的DDoSRecord表项进行处理,将当前DDoSRecord表项中的Count字段中的数值进行清空,进一步判断阻断时间长度是否为零,若为零,表明已经到达预先设置的阻断时间,则清除当前DDoSRecord表项中的阻断标志位,并指定下一个处理的DDoSReeord表项,指定下一个处理的DDoSReeord表项后,将时钟置为零;若阻断时间长度字段中的数值不为零,则阻断时间长度的数值进行减一操作,并指定下一个处理的DDoSRecord表项,指定下一个处理的DDoSRecord表项后,将时钟置为零。

本发明所述的检测及防御DDoS攻击的装置及方法,在交换芯片上进行针对洪流类DDoS攻击的检测和防御,在报文到达网络终端服务器前进行检测及防御,有效的减轻了网络终端服务器的负荷及压力;通过对DDoS攻击进一步防御,能够有效增加由于DDoS攻击而占用的网络带宽,提高网络整体利用效率。

本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。

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