一种应用层智能抵御DDoS攻击的方法及系统与流程

文档序号:21000173发布日期:2020-06-05 22:36阅读:137来源:国知局
一种应用层智能抵御DDoS攻击的方法及系统与流程

本发明涉及计算机网络安全领域,尤其涉及一种应用层智能抵御ddos攻击的方法及系统。



背景技术:

分布式拒绝服务攻击(英文意思是distributeddenialofservice,简称ddos)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。分布式拒绝服务攻击可以使很多的计算机在同一时间遭受到攻击,使攻击的目标无法正常使用,分布式拒绝服务攻击已经出现了很多次,导致很多的大型网站都出现了无法进行操作的情况,这样不仅仅会影响用户的正常使用,同时造成的经济损失也是非常巨大的。

目前针对分布式拒绝服务攻击的常见应对方案有路由访问列表过滤、网络层或者传输层防火墙设备等,以上方案均是通过检测异常网络流量从而抵御攻击,针对单一或者少量ip的ddos攻击是有效的,但是针对大量不同ip引发的大流量攻击却无法起到响应作用,例如黑客利用海量肉鸡攻击固定网络(cc肉鸡攻击),在目标网络看,这些网络连接都是真实用户连接,并非异常网络流量,也就起不到防护作用。对这种“真实用户”的攻击,在应用层防护才能起到更好的防护作用。



技术实现要素:

本发明的目的在于提供一种应用层智能抵御ddos攻击的方法及系统,从而解决现有技术中存在的前述问题。

为了实现上述目的,本发明采用的技术方案如下:

一种应用层智能抵御ddos攻击的方法,所述方法包括如下步骤,

s1、获取用户ip和uid,根据用户ip和用户uid生成用户识别标志;

s2、根据所述用户识别标志,判断用户是否在受限期,若是,则返回用户受限提示;若否,则进入步骤s3;

s3、根据所述用户识别标志检测用户是否在黑名单或白名单中,若用户只在黑名单中,则返回用户受限提示;若用户只在白名单中,则用户放行,能够访问下游服务;否则,进入步骤s4;

s4、根据所述用户识别标志,判断用户是否处于放行期,若是,进入步骤s5;若否,则进入步骤s6;

s5、判断全网开关是否全部打开,若否,则用户放行,能够访问下游服务;若是,则进入步骤s6;

s6、判断用户是否是机器用户,若是,则进入步骤s7;若否,则进入步骤s8执行真实用户受限验证;

s7、执行机器用户受限验证,若验证为机器用户访问受限,则返回受限提示;若验证结果为机器用户访问不受限,则用户放行,能够访问下游服务;

s8、执行真实用户首先验证,若验证为真实用户访问受限,则执行步骤s9;若验证结果为真实用户访问不受限,则用户放行,能够访问下游服务;

s9、判断用户是否为真实用户,若是,则用户加入放行期,用户放行,能够访问下游服务;若否,则重新判断用户是否为真实用户。

优选的,用户放行,能够访问下游服务之后,执行全网开关控制逻辑;所述全网开关控制逻辑具体包括三种情况,分别为,

a、统计受限用户的个数,当机器ip大于机器阈值,或者当受限用户个数大于用户阈值,则自动打开全网开关;当受限用户个数小于用户阈值的60%,则关闭全网开关;

b、下游服务器强制要求关闭全网开关,则关闭全网开关;

c、管理员调整全网开关状态,则全网开关状态改变。

优选的,机器用户受限验证具体为,

s71、获取分钟级计数器、小时级计数器和天级计数器的数值,将分钟级计数器数值、小时级计数器数值和天级计数器的数值都加1;

s72、比较加1后的分钟级计数器数值是否大于分钟级阈值,若是,则表示机器用户访问受限,触发分钟级受限,受限第一设定时长,将分钟级计数器数值降低50%,并返回受限提示;若否,则进入步骤s73;

s73、比较加1后的小时级计数器数值是否大于小时级阈值,若是,则表示机器用户访问受限,触发小时级受限,受限第二设定时长,将小时级计数器数值降低40%,并返回受限提示;若否,则进入步骤s74;

s74、比较加1后的天级计数器数值是否大于天级阈值,若是,则表示机器用户访问受限,触发天级受限,受限第三设定时长,将天级计数器数值降低40%,并将用户加入受限期,返回受限提示;若否,则表示机器用户访问不受限,则用户放行,能够访问下游服务。

优选的,所述第一设定时长为10分钟;所述第二设定时长和所述第三设定时长均为1小时。

优选的,真实用户受限验证具体为,获取天级计数器的数值,将天级计数器的数值加一,比较加一后的天级计数器数值是否大于天级阈值,若是,则表示真实用户访问受限,则执行步骤s9;若否,则表示真实用户访问不受限,则用户放行,能够访问下游服务。

优选的,所述放行期时长为2小时。

本发明的目的还在于提供一种应用层智能抵御ddos攻击的系统,所述系统用于实现上述任一所述的方法,所述系统包括,

受限期判断模块;用于根据所述用户识别标志,判断用户是否在受限期;

黑白名单识别模块;用于根据所述用户识别标志检测用户是否在黑名单或白名单中;

放行期判断模块;用于根据所述用户识别标志,判断用户是否处于放行期;

开关判断模块;用于判断全网开关是否全部打开;

机器用户判断模块;用于判断用户是否是机器用户;

机器用户受限验证模块;用于验证机器用户是否受限;

真实用户受限验证模块;用于验证真实用户是否受限;

真实用户判断模块;用于判断用户是否是真实用户;

全网开关控制逻辑模块;用于在用户放行,能够访问下游服务之后,执行全网开关控制逻辑。

本发明的有益效果是:1、本发明设置黑白名单可以对恶意ip一次性限制,不占用下游资源,减轻下游服务压力,对处于白名单的用户,在不打开全网开关时可以一次性放行。2、本发明配合通过分钟级、小时级、天级受限检测以及阈值动态调整,能充分防范大流量ddos以及突发性高流量cc肉鸡攻击。

附图说明

图1是本发明实施例中方法的流程示意图;

图2是本发明实施例中机器用户受限校验过程示意图;

图3是本发明实施例中真实用户受限校验过程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

实施例一

如图1至图3所示,本实施例中提供了一种应用层智能抵御ddos攻击的方法,所述方法包括如下步骤,

s1、获取用户ip和uid,根据用户ip和用户uid生成用户识别标志;

s2、根据所述用户识别标志,判断用户是否在受限期,若是,则返回用户受限提示;若否,则进入步骤s3;

s3、根据所述用户识别标志检测用户是否在黑名单或白名单中,若用户只在黑名单中,则返回用户受限提示;若用户只在白名单中,则用户放行,能够访问下游服务;否则,进入步骤s4;

s4、根据所述用户识别标志,判断用户是否处于放行期,若是,进入步骤s5;若否,则进入步骤s6;

s5、判断全网开关是否全部打开,若否,则用户放行,能够访问下游服务;若是,则进入步骤s6;

s6、判断用户是否是机器用户,若是,则进入步骤s7;若否,则进入步骤s8执行真实用户受限验证;

s7、执行机器用户受限验证,若验证为机器用户访问受限,则返回受限提示;若验证结果为机器用户访问不受限,则用户放行,能够访问下游服务;

s8、执行真实用户首先验证,若验证为真实用户访问受限,则执行步骤s9;若验证结果为真实用户访问不受限,则将用户加入放行期,用户放行,能够访问下游服务;

s9、判断用户是否为真实用户,若是,则用户加入放行期,用户放行,能够访问下游服务;若否,则重新判断用户是否为真实用户。

本实施例中,用户放行,能够访问下游服务之后,执行全网开关控制逻辑;所述全网开关控制逻辑具体包括三种情况,分别为,

a、统计受限用户的个数,当机器ip大于机器阈值,或者当受限用户个数大于用户阈值,则自动打开全网开关;当受限用户个数小于用户阈值的60%,则关闭全网开关;

b、下游服务器强制要求关闭全网开关,则关闭全网开关;

c、管理员调整全网开关状态,则全网开关状态改变。

本实施例中,机器用户受限验证具体为,

s71、获取分钟级计数器、小时级计数器和天级计数器的数值,将分钟级计数器数值、小时级计数器数值和天级计数器的数值都加1;

s72、比较加1后的分钟级计数器数值是否大于分钟级阈值,若是,则表示机器用户访问受限,触发分钟级受限,受限第一设定时长,将分钟级计数器数值降低50%,并返回受限提示;若否,则进入步骤s73;

s73、比较加1后的小时级计数器数值是否大于小时级阈值,若是,则表示机器用户访问受限,触发小时级受限,受限第二设定时长,将小时级计数器数值降低40%,并返回受限提示;若否,则进入步骤s74;

s74、比较加1后的天级计数器数值是否大于天级阈值,若是,则表示机器用户访问受限,触发天级受限,受限第三设定时长,将天级计数器数值降低40%,并将用户加入受限期,返回受限提示;若否,则表示机器用户访问不受限,则用户放行,能够访问下游服务。

本实施例中,所述第一设定时长为10分钟;所述第二设定时长和所述第三设定时长均为1小时。

本实施例中,真实用户受限验证具体为,获取天级计数器的数值,将天级计数器的数值加一,比较加一后的天级计数器数值是否大于天级阈值,若是,则表示真实用户访问受限,则执行步骤s9;若否,则表示真实用户访问不受限,则用户放行,能够访问下游服务。

本实施例中,所述放行期时长为2小时。

实施例二

本实施例中提供了一种应用层智能抵御ddos攻击的系统,所述系统用于实现所述的方法,所述系统包括,

受限期判断模块;用于根据所述用户识别标志,判断用户是否在受限期;

黑白名单识别模块;用于根据所述用户识别标志检测用户是否在黑名单或白名单中;

放行期判断模块;用于根据所述用户识别标志,判断用户是否处于放行期;

开关判断模块;用于判断全网开关是否全部打开;

机器用户判断模块;用于判断用户是否是机器用户;

机器用户受限验证模块;用于验证机器用户是否受限;

真实用户受限验证模块;用于验证真实用户是否受限;

真实用户判断模块;用于判断用户是否是真实用户;

全网开关控制逻辑模块;用于在用户放行,能够访问下游服务之后,执行全网开关控制逻辑。

实施例三

本实施例中,使用应用层智能抵御ddos攻击的方法及系统,在实际的网页搜索应用层中防ddos攻击,具体为:在用户开始进入搜索时,

1、首先获取用户ip和用户的uid生成用户识别标志,用户识别标志与用户ip和用户uid一一对应;

2、受限期判断模块根据用户识别标志,判断用户是否处于受限期,若是,则直接返回401页面;若否,则进入3;

3、通过黑白名单识别模块,检查用户是否处于黑名单或白名单中,若在黑名单中,则返回401页面,白名单中,则返回用户搜索结果,执行全网开关逻辑;否则执行5;

4、放行期判断模块根据用户识别标识判断用户是否处于放行期,如果是,且开关判断模块判断全网开关没有全部打开,则直接放行返回用户搜索结果,执行全网开关逻辑;否则,执行5;

5、机器用户判断模块通过http请求的cookie中是否含有uid以及是否含有useragent,判断http请求是否是机器行为,如果是,进入6;进行机器受限校验,否则进入7;

6、机器受限校验模块:获取访问计数器数据,计数器加一,依次检验加一后的数据是否依次大于下面的数值:分钟级阈值,小时级阈值,天级阈值,如果满足以上条件则机器访问受限,加入受限期降低计数器值,然后返回受限提示:触发分钟级受限则受限10分钟,计数器值降低50%;触发小时和天级受限则受限1小时,计数器值降低40%;并将用户加入受限期,返回401页面。如果不满足受限条件则返回用户搜索结果,执行全网开关逻辑;

7、真实用户受限校验模块:获取访问计数器数据,计数器加一,检验加一后的数据是否大于下面数值:天级阈值,如果不满足受限条件用户放行可以访问下游服务,如果满足受限条件则返回用户验证码页面要求用户输入验证码,真实用户判断模块判断用户是否是真实用户,如果是则加入放行期,放行期时间2小时,返回用户搜索结果,执行全网开关逻辑,如果不是则重新返回用户验证码页面要求用户输入验证码。

本实施例中,全网开关逻辑包括三种情况,具体为,

统计当10分钟内受限用户的个数,当机器ip大于1000或者受限用户个数大于5000,自动打开全网开关,当受限用户个数小于用户阈值的60%(3000)时,关闭全网开关;

搜索服务通过返回结果强制要求打开开关则打开开关;

管理员修改开关状态则开关状态改变。

通过采用本发明公开的上述技术方案,得到了如下有益的效果:

本发明提供了一种应用层智能抵御ddos攻击的方法及系统,本发明设置黑白名单可以对恶意ip一次性限制,不占用下游资源,减轻下游服务压力,对处于白名单的用户,在不打开全网开关时可以一次性放行;配合通过分钟级、小时级、天级受限检测以及阈值动态调整,能充分防范大流量ddos以及突发性高流量cc肉鸡攻击。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

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