一种UDPFLOOD攻击的清洗方法及系统与流程

文档序号:11156517阅读:850来源:国知局
一种UDP FLOOD攻击的清洗方法及系统与制造工艺

本发明涉及计算机网路技术领域,尤其涉及一种UDP FLOOD攻击的清洗方法及系统。



背景技术:

拒绝服务攻击(DoS, Denial of Service)是指利用各种服务请求耗尽被攻击网络的系统资源,从而使被攻击网络无法处理合法用户的请求。而随着僵尸网络的兴起,同时由于攻击方法简单、影响较大、难以追查等特点,又使得分布式拒绝服务攻击(DDoS,Distributed Denial of Service)得到快速壮大和日益泛滥。成千上万主机组成的僵尸网络为DDoS攻击提供了所需的带宽和主机,形成了规模巨大的攻击和网络流量,对被攻击网络造成了极大的危害。

随着DDoS攻击技术的不断提高和发展,ISP、ICP、IDC等运营商面临的安全和运营挑战也不断增多,运营商必须在DDoS威胁影响关键业务和应用之前,对流量进行检测并加以清洗,确保网络正常稳定的运行以及业务的正常开展。同时,对DDoS攻击流量的检测和清洗也可以成为运营商为用户提供的一种增值服务,以获得更好的用户满意度。

而多种DDoS攻击方式,又以UDP_FLOOD的危害最大,UDP攻击往往能够制造巨大的攻击流量,不仅极大的影响被攻击的服务器,甚至可能令运营商的传输网络瘫痪,造成灾难性的损失,所以必须有效地清洗处理UDP FLOOD攻击流量。

目前的UDP FLOOD攻击清洗方法一般有两种,其一是使用UDP报文限流的方式;其二是通过统计报文特征,过滤大量特征相同的报文。

以上两种方法都有明显的缺点,第一种使用限流的方式,会把正常的UDP 报文也过滤掉,实际上由于攻击流量的巨大,相对较小的正常流量,在限流方式下,根本不可能被正常通过,此种方式只能用于保障其他相邻服务器不受攻击流量的影响;而第二种利用报文特征的手段来过滤报文,首先报文特征统计会极大地影响处理性能,而特征字段抽取的多与少都会极大的影响清洗准确率。

目前比较普遍的UDP FLOOD攻击都是新型的反射型攻击流量,这种流量的载体内容一般都比较随机,要应付新旧型UDP FLOOD攻击,只统计报文特征的手段已不再适用。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种能准确发现并过滤UDP攻击流量的一种UDP FLOOD攻击的清洗方法及系统。

本发明所采取的技术方案是:

一种UDP FLOOD攻击的清洗方法,包括以下步骤:

A、对预设的特定检测端口进行初始化;

B、当接收到报文时,判断该报文的类型是否为UDP报文,若是,则执行步骤C;反之,则放行该报文;

C、获取该报文的源地址、源端口、目标端口和报文校验码;

D、根据该报文的源地址、源端口、目标端口和报文校验码,计算得出该报文的负载内容校验码;

E、根据该报文的负载内容校验码,从而进行传统UDP攻击检测,并对通过检测的报文执行步骤F;反之,则对负载内容检测状态进行标记并执行步骤G;

F、根据预设的特定检测端口,对报文进行新型反射型UDP攻击检测,并对通过检测的报文执行步骤G;反之,则对端口检测状态进行标记后再执行步骤G;

G、判断负载内容检测状态或端口检测状态是否为需过滤,若是,则丢弃该报文;反之,则进行变种UDP攻击检测,并对通过检测的报文执行步骤H;

H、对该报文进行分片检测,并对通过检测的报文进行放行。

作为所述的一种UDP FLOOD攻击的清洗方法的进一步改进,所述步骤E包括:

E1、根据该报文的负载内容校验码,对负载内容进行频率统计,得到负载内容频率;

E2、判断该负载内容频率是否大于预设的负载内容频率阈值,若是,则将负载内容检测状态标记为需过滤,并执行步骤G;反之,则执行步骤F。

作为所述的一种UDP FLOOD攻击的清洗方法的进一步改进,所述步骤F包括:

F1、对预设的特定检测端口进行报文频率统计,得到端口报文频率;

F2、判断端口报文频率是否大于预设的端口频率阈值,若是,则将端口检测状态标记为需过滤,并执行步骤G;反之,则直接执行步骤G。

作为所述的一种UDP FLOOD攻击的清洗方法的进一步改进,所述的变种UDP攻击检测,其具体为:

根据该报文的负载内容的前16字节,判断是否均满足以下所有条件:

第1字节=第2字节;

第1~2字节=第3~4字节;

第1~4字节=第5~8字节;

第1~8字节=第9~16字节;

若是,则丢弃该报文;反之,则该报文通过变种UDP攻击检测。

作为所述的一种UDP FLOOD攻击的清洗方法的进一步改进,所述步骤H包括:

H1、判断该报文的类型是否为分片,若是,则执行步骤H2;反之,则将该报文的源地址存入放行记录中并放行该报文;

H2、判断该报文的源地址是否在放行记录中,若是,放行该报文;反之,则丢弃该报文。

本发明所采用的另一技术方案是:

一种UDP FLOOD攻击的清洗系统,包括:

端口初始化单元,用于对预设的特定检测端口进行初始化;

UDP判断单元,用于当接收到报文时,判断该报文的类型是否为UDP报文,若是,则执行信息获取单元;反之,则放行该报文;

信息获取单元,用于获取该报文的源地址、源端口、目标端口和报文校验码;

校验码计算单元,用于根据该报文的源地址、源端口、目标端口和报文校验码,计算得出该报文的负载内容校验码;

传统攻击检测单元,用于根据该报文的负载内容校验码,从而进行传统UDP攻击检测,并对通过检测的报文执行反射型攻击检测单元;反之,则对负载内容检测状态进行标记并执行过滤判断单元;

反射型攻击检测单元,用于根据预设的特定检测端口,对报文进行新型反射型UDP攻击检测,并对通过检测的报文执行过滤判断单元;反之,则对端口检测状态进行标记后再执行过滤判断单元;

过滤判断单元,用于判断负载内容检测状态或端口检测状态是否为需过滤,若是,则丢弃该报文;反之,则进行变种UDP攻击检测,并对通过检测的报文执行分片检测单元;

分片检测单元,用于对该报文进行分片检测,并对通过检测的报文进行放行。

作为所述的一种UDP FLOOD攻击的清洗系统的进一步改进,所述传统攻击检测单元包括:

负载内容频率统计单元,用于根据该报文的负载内容校验码,对负载内容进行频率统计,得到负载内容频率;

负载内容频率判断单元,用于判断该负载内容频率是否大于预设的负载内容频率阈值,若是,则将负载内容检测状态标记为需过滤,并执行过滤判断单元;反之,则执行反射型攻击检测单元。

作为所述的一种UDP FLOOD攻击的清洗系统的进一步改进,所述反射型攻击检测单元包括:

端口报文频率统计单元,用于对预设的特定检测端口进行报文频率统计,得到端口报文频率;

端口报文频率判断单元,用于判断端口报文频率是否大于预设的端口频率阈值,若是,则将端口检测状态标记为需过滤,并执行过滤判断单元;反之,则直接执行过滤判断单元。

作为所述的一种UDP FLOOD攻击的清洗系统的进一步改进,所述的变种UDP攻击检测,其具体为:

根据该报文的负载内容的前16字节,判断是否均满足以下所有条件:

第1字节=第2字节;

第1~2字节=第3~4字节;

第1~4字节=第5~8字节;

第1~8字节=第9~16字节;

若是,则丢弃该报文;反之,则该报文通过变种UDP攻击检测。

作为所述的一种UDP FLOOD攻击的清洗系统的进一步改进,所述分片检测单元包括:

分片判断单元,用于判断该报文的类型是否为分片,若是,则执行步骤H2;反之,则将该报文的源地址存入放行记录中并放行该报文;

源地址判断单元,用于判断该报文的源地址是否在放行记录中,若是,放行该报文;反之,则丢弃该报文。

本发明的有益效果是:

本发明一种UDP FLOOD攻击的清洗方法及系统通过统计预设的特定端口的端口报文频率,能够准确发现并过滤新型反射型攻击流量,并通过统计负载内容的真实校验码频率和取特征于负载内容的前16字节,能够准确识别传统的UDP攻击流量。本发明在准确的鉴别新旧UDP流量的基础上,进一步过滤UDP攻击所产生的分片流量,相比传统的限流方式,本发明能免除去大量地统计报文特征带来的性能损耗,面对即使数十Gbps的流量,也一样能够轻松应对,大大提高清除效果。

附图说明

下面结合附图对本发明的具体实施方式作进一步说明:

图1是本发明一种UDP FLOOD攻击的清洗方法的步骤流程图;

图2是本发明一种UDP FLOOD攻击的清洗方法中传统攻击检测的步骤流程图;

图3是本发明一种UDP FLOOD攻击的清洗方法中反射型攻击检测的步骤流程图;

图4是本发明一种UDP FLOOD攻击的清洗方法中分片检测的步骤流程图;

图5是本发明一种UDP FLOOD攻击的清洗系统的模块方框图。

具体实施方式

参考图1,本发明一种UDP FLOOD攻击的清洗方法,包括以下步骤:

A、对预设的特定检测端口进行初始化;

B、当接收到报文时,判断该报文的类型是否为UDP报文,若是,则执行步骤C;反之,则放行该报文;

C、获取该报文的源地址、源端口、目标端口和报文校验码;

D、根据该报文的源地址、源端口、目标端口和报文校验码,计算得出该报文的负载内容校验码;

E、根据该报文的负载内容校验码,从而进行传统UDP攻击检测,并对通过检测的报文执行步骤F;反之,则对负载内容检测状态进行标记并执行步骤G;

F、根据预设的特定检测端口,对报文进行新型反射型UDP攻击检测,并对通过检测的报文执行步骤G;反之,则对端口检测状态进行标记后再执行步骤G;

G、判断负载内容检测状态或端口检测状态是否为需过滤,若是,则丢弃该报文;反之,则进行变种UDP攻击检测,并对通过检测的报文执行步骤H;

H、对该报文进行分片检测,并对通过检测的报文进行放行。

参考图2,进一步作为优选的实施方式,所述步骤E包括:

E1、根据该报文的负载内容校验码,对负载内容进行频率统计,得到负载内容频率;

E2、判断该负载内容频率是否大于预设的负载内容频率阈值,若是,则将负载内容检测状态标记为需过滤,并执行步骤G;反之,则执行步骤F。

参考图3,进一步作为优选的实施方式,所述步骤F包括:

F1、对预设的特定检测端口进行报文频率统计,得到端口报文频率;

F2、判断端口报文频率是否大于预设的端口频率阈值,若是,则将端口检测状态标记为需过滤,并执行步骤G;反之,则直接执行步骤G。

进一步作为优选的实施方式,所述的变种UDP攻击检测,其具体为:

根据该报文的负载内容的前16字节,判断是否均满足以下所有条件:

第1字节=第2字节;

第1~2字节=第3~4字节;

第1~4字节=第5~8字节;

第1~8字节=第9~16字节;

若是,则丢弃该报文;反之,则该报文通过变种UDP攻击检测。

参考图4,进一步作为优选的实施方式,所述步骤H包括:

H1、判断该报文的类型是否为分片,若是,则执行步骤H2;反之,则将该报文的源地址存入放行记录中并放行该报文;

H2、判断该报文的源地址是否在放行记录中,若是,放行该报文;反之,则丢弃该报文。

其中,由于一些UDP FLOOD攻击容易产生IP分片,因为IP分片并没有UDP报文头字段,本方法通过记录放行的正常源地址,以此来选择放行分片报文,达到能够彻底清洗UDP FLOOD攻击流量的目的。

本发明实施例中,预设的负载内容频率阈值设为100,预设的端口频率阈值设为100,则具体实施例如下:

S1、建立全局数组reply_sport,并初始化预设的特定检测端口reply_sport[53, 1900, 123, 19, 520, 5353, 17, 137, 138, 139, 111, 161, 69]的值为1;

S2、建立全局数组sport_count、check_count、accept_ip、drop_sport、drop_check;

S3、当接收到报文时,判断该报文的类型是否为UDP报文,若是,则执行步骤S4;反之,则放行该报文;

S4、取出报文源地址sip、源端口sport、目标端口dport、校验码check;

S5、根据该报文的源地址、源端口、目标端口和报文校验码,按照如下方法算出报文屏蔽源地址、源端口和目标端口后的负载内容校验码:

sum=0, o1=sip>>16, o2=sip&0xffff;

sum += (ntohs(o1) + ntohs(o2) + (~ntohs(0) & 0xffff) + (~ntohs(0) & 0xffff));

sum += (ntohs(sport) + (~(0) & 0xffff));

sum += (ntohs(dport) + (~(0) & 0xffff));

sum += check;

sum = (sum & 0xffff) + (sum >> 16);

sum即为最后得到的负载内容校验码;

S6、根据该报文的负载内容校验码,对负载内容进行频率统计,得到负载内容频率check_count[sum],并判断是否满足check_count[sum]>100,则负载内容检测状态drop_check[check]=1,并执行步骤S8;

S7、判断是否满足reply_sport[sport]=1,若是则表明其为预设的特定检测端口,则端口报文频率sport_count[sport]++,若最后得到的端口报文频率sport_count[sport]>100,则端口检测状态drop_sport[sport]=1;

S8、若端口检测状态drop_sport[sport]或负载内容检测状态drop_check[check]为1,则丢弃该报文;反之,则执行步骤S9

S9、根据该报文的负载内容的前16字节,判断是否均满足以下所有条件:第1字节=第2字节、第1~2字节=第3~4字节、第1~4字节=第5~8字节、第1~8字节=第9~16字节,满足以上四个条件,则丢弃该报文;反之,则执行步骤S10;

S10、判断该报文的类型是否为分片,且该报文的源地址不在放行记录中,即该源地址的放行状态accept_ip[sip]不为1,则丢弃该报文;反之,则将该源地址的放行状态accept_ip[sip]设为1,并放行该报文。

参考图5,本发明一种UDP FLOOD攻击的清洗系统,包括:

端口初始化单元,用于对预设的特定检测端口进行初始化;

UDP判断单元,用于当接收到报文时,判断该报文的类型是否为UDP报文,若是,则执行信息获取单元;反之,则放行该报文;

信息获取单元,用于获取该报文的源地址、源端口、目标端口和报文校验码;

校验码计算单元,用于根据该报文的源地址、源端口、目标端口和报文校验码,计算得出该报文的负载内容校验码;

传统攻击检测单元,用于根据该报文的负载内容校验码,从而进行传统UDP攻击检测,并对通过检测的报文执行反射型攻击检测单元;反之,则对负载内容检测状态进行标记并执行过滤判断单元;

反射型攻击检测单元,用于根据预设的特定检测端口,对报文进行新型反射型UDP攻击检测,并对通过检测的报文执行过滤判断单元;反之,则对端口检测状态进行标记后再执行过滤判断单元;

过滤判断单元,用于判断负载内容检测状态或端口检测状态是否为需过滤,若是,则丢弃该报文;反之,则进行变种UDP攻击检测,并对通过检测的报文执行分片检测单元;

分片检测单元,用于对该报文进行分片检测,并对通过检测的报文进行放行。

进一步作为优选的实施方式,所述传统攻击检测单元包括:

负载内容频率统计单元,用于根据该报文的负载内容校验码,对负载内容进行频率统计,得到负载内容频率;

负载内容频率判断单元,用于判断该负载内容频率是否大于预设的负载内容频率阈值,若是,则将负载内容检测状态标记为需过滤,并执行过滤判断单元;反之,则执行反射型攻击检测单元。

进一步作为优选的实施方式,所述反射型攻击检测单元包括:

端口报文频率统计单元,用于对预设的特定检测端口进行报文频率统计,得到端口报文频率;

端口报文频率判断单元,用于判断端口报文频率是否大于预设的端口频率阈值,若是,则将端口检测状态标记为需过滤,并执行过滤判断单元;反之,则直接执行过滤判断单元。

进一步作为优选的实施方式,所述的变种UDP攻击检测,其具体为:

根据该报文的负载内容的前16字节,判断是否均满足以下所有条件:

第1字节=第2字节;

第1~2字节=第3~4字节;

第1~4字节=第5~8字节;

第1~8字节=第9~16字节;

若是,则丢弃该报文;反之,则该报文通过变种UDP攻击检测。

进一步作为优选的实施方式,所述分片检测单元包括:

分片判断单元,用于判断该报文的类型是否为分片,若是,则执行步骤H2;反之,则将该报文的源地址存入放行记录中并放行该报文;

源地址判断单元,用于判断该报文的源地址是否在放行记录中,若是,放行该报文;反之,则丢弃该报文。

从上述内容可知,本发明一种UDP FLOOD攻击的清洗方法及系统通过统计预设的特定端口的端口报文频率,能够准确发现并过滤新型反射型攻击流量,并通过统计负载内容的真实校验码频率和取特征于负载内容的前16字节,能够准确识别传统的UDP攻击流量。本发明在准确的鉴别新旧UDP流量的基础上,进一步过滤UDP攻击所产生的分片流量,相比传统的限流方式,本发明能免除去大量地统计报文特征带来的性能损耗,面对即使数十Gbps的流量,也一样能够轻松应对,大大提高清除效果。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

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