一种提供分布式拒绝攻击的防护方法与流程

文档序号:25615241发布日期:2021-06-25 15:56阅读:99来源:国知局
一种提供分布式拒绝攻击的防护方法与流程

1.本发明涉及一种提供分布式拒绝攻击的防护方法,属于ddos攻击安全领域。


背景技术:

2.ddos攻击全称是分布式拒绝服务,该攻击方式利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用ip欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。cc攻击全称challenge collapsar,属于ddos攻击的一种升级版,原理是通过大量代理服务器或者僵尸网络模拟正常用户访问网页,造成服务器的资源耗尽。目前对于cc攻击检测的技术通常是通过流量统计的方式来实现,将访问流量超出阈值的情况认为是攻击行为并进行拦截,然而由于高流量和多用户访问是cc攻击和当前热门网站所具备的共有特征,因此仅凭借流量的统计特征并不能有效检测真正的攻击。因此,如何进行准确有效的cc攻击防护已经称为web应用必备的安全举措,尤其是针对热门网站。


技术实现要素:

3.本发明提供了一种分布式拒绝攻击的防护方法,通过多重防护规则的设置,对访问ip进行量化评分,实现对异常ip的准确检测,对cc攻击的有效拦截。具体的方案如下:
4.步骤1:接收客户端发送的http请求;
5.步骤2:解析http请求的header信息;
6.步骤3:将解析的信息发送到安全组件进行验证,其中安全组件包含多重防护规则;所属安全组件首先校验所述请求是否在ip黑名单中,若在黑名单中则直接丢弃;若不在,则校验所述请求是否在ip白名单中,若在白名单中则直接将所述http请求发送至目标服务器并响应;若不在,则进行进一步验证。
7.步骤4:将验证通过的http请求发送至目标服务器,将验证未通过的http请求进行拦截,并记录日志。
8.进一步地,建立所述多重防护规则的过程包括:记录每一个ip地址访问次数,系统定期基于ip地址访问次数情况计算对应ip地址的置信度,根据所述置信度建立对应的信任等级,根据不同的信任等级对ip地址进行校验;其中,影响置信度的因素包括:该ip地址发送请求频率、该ip地址访问目标服务器时目标服务器遭受攻击的可能性、该ip地址对应的最近一次验证问题是否验证通过、该ip地址访问目标服务器的频率、每秒下载流量。
9.进一步地,所述信任等级包括:可疑信任、长期信任、否定信任;将长期信任的ip地址加入ip白名单中,将否定信任的ip地址加入ip黑名单中;所述信任等级随着每一次置信度的计算而更新,其中,长期信任包含有效时间,当到达有效时间后重新开始置信度计算。
10.进一步地,对于信任等级为可疑信任等级ip地址对应的发送http请求的用户发送验证问题,当验证通过后,将验证通过的http请求发送至目标服务器,当验证未通过,则将
验证未通过的http请求进行拦截,并记录日志。
11.进一步地,建立所述多重防护规则的过程还包括:计算当前访问目标服务器所有ip地址的平均置信度,当平均置信度小于阈值时,则认为目标服务器遭受到cc攻击。因此系统要实时采集目标服务器的负载情况,当检测到目标服务器的负载超出预设值时,触发步骤3中上述规则验证。
12.进一步地,该方法还包括步骤5:目标服务器接收请求,并响应请求。当步骤3检测到目标服务器遭受到cc攻击时,直接触发触黑洞效应,进入步骤5对客户端请求进行拦截,使得客户端在一段时间内无法发送http请求到目标服务器。
13.进一步地,黑洞效应可以根据用户设定或者默认配置持续的拦截客户端请求。
14.进一步地,系统记录客户端触发黑洞效应的次数,在单位时间内随着次数累计,黑洞效应的时长也会逐渐增加。
15.有益效果:
16.本发明通过上述步骤,基于ip访问情况构建对ip地址的置信度评价,并且采用ip地址的单独置信度评价指标以及平均置信度评价指标两种防护规则对cc攻击进行检测,能够有效区分出例如对热门网站的正常高访问量和cc攻击,提高了对包含cc攻击在内的应用层ddos攻击检测的准确性。
附图说明
17.图1为cc攻击检测防护全流程图;
18.图2

3为防护规则校验流程图;
具体实施方式
19.为了使本发明的目的和技术方案表述更加清晰,下面结合附图对本发明实施方式作进一步地详细描述。
20.cc攻击是一个依赖http协议,并通过构造特殊的http请求导致服务器保持连接等待状态,直至服务器cpu、内存、连接数等资源被打满,从而造成拒绝服务的一种攻击方式,属于典型的应用层ddos攻击。由于cc攻击是典型的应用层ddos攻击,因此传统安全设备,如防火墙、运营商清洗等很难起到很好的防护作用。
21.实施例1:
22.本发明针对cc攻击的检测的防护,提出了一种基于ip置信度的多重检测和防护方案,如附图1,本发明涉及的针对cc攻击检测防护的方法包括如下步骤:
23.步骤1:接收客户端发送的http请求;
24.步骤2:解析http请求的header信息;
25.步骤3:将解析的信息发送到安全组件进行验证,其中安全组件包含多重防护规则;
26.步骤4:将验证通过的http请求发送至目标服务器,将验证未通过的http请求进行拦截,并记录日志。
27.进一步地,在接收到http请求后,校验所述请求是否在ip黑名单中,若在黑名单中则直接丢弃,若不在,则校验所述请求是否在ip白名单中,若在白名单中,则直接将所述
http请求发送至目标服务器并响应。
28.在实际的网络环境中,数据洪流的出现可能并非是由于恶意攻击导致的,可能是大量合法用户并发地发送访问请求至目标服务器而产生的“突增流”。这种由于合法用户的多并发访问引起的突增流也会使得目标服务器无法及时、有效地处理每一个用户的正常请求,此时客户端便会表现出丢包率增加,访问速度变慢,甚至无法访问等情况,这是网络中的一种无法避免的常见现象,但实际上并不是发生了cc攻击。
29.传统的异常检测技术往往并不能准确地区分突增流与cc攻击流,从而会产生误报,一旦产生误报触发防御系统的防护规则,就会自动断开正常用户的连接,从而影响用户的正常访问行为。这就会为合法用户的正常访问带来严重影响,因此需要将其与cc攻击进行区分对待。
30.通过对cc攻击流和突增流的研究和分析可知,突增流往往是由正常用户的访问请求汇聚而成的,大部分发出访问请求的用户都是老用户,新用户可能仅占一小部分,而cc攻击的发起者往往有过攻击先例或者是从未访问过该目标服务器的新用户。针对这一特点,本发明将建立针对ip地址的置信度,根据该置信度能帮助筛选出合法用户和非法用户。。
31.本发明在计算置信度时,需要采集的指标包括:
32.ip地址发送请求频率(平均每分钟发送请求数量):正常情况下,平均每分钟发送的请求数量会低于一个阈值,如果发送请求过于地频繁,则很有可能为cc攻击。
33.ip地址访问目标服务器时目标服务器遭受攻击的可能性:最近一周内访问时服务器遭受攻击被标记次数/总访问次数。该数值能够直观反应出此ip地址与cc攻击的直接相关性,如果比例高则说明该ip总是在服务器遭受攻击时进行访问,因此有很大的攻击嫌疑。
34.最近一次验证问题是否验证通过:该ip地址最近一次访问时如果触发了验证问题以及是否验证通过,能够反应出近期该ip地址的访问是否正常。这一指标主要针对之前被cc攻击当作“肉鸡”被清理后门后重新恢复为正常用户的ip地址,提升这类ip地址的置信度能够帮助这类用户正常访问目标服务器。
35.ip地址访问目标服务器的频率:该ip地址最近一个月访问过目标服务器的次数能够客观地反应出此ip是否为经常访问该服务器的老用户。如果该ip地址为经常访问目标服务器的老用户,则对应的置信度评分相应会高一些。
36.每秒下载流量:该指标能够反应该ip对于网络带宽的消耗程度,作为判断cc攻击的参考指标。如果每秒下载流量远远超过正常访问时的大小,则该ip的置信度相应降低。
37.这5个评分指标涵盖了cc攻击中常见的攻击方法和用户的访问记录习惯,并且不同指标对于cc攻击判断的区分程度也不同,要根据这5种评分指标对于cc攻击的区分程度来设置不同的权重值,具体在设置指标权重值时可以采用现有技术中已有的层次分析法等方式进行,本发明不做进一步赘述。根据上述评分指标计算置信度的方法可以为加权求和等方式。
38.建立步骤3中的防护规则的过程包括:基于上述5个指标以及各自的权重值为ip地址计算各自的置信度,根据所述置信度建立对应的信任等级。所述信任等级包括:可疑信任、长期信任、否定信任;将长期信任的ip地址加入ip白名单中,将否定信任的ip地址加入ip黑名单中;所述信任等级随着每一次置信度的计算而更新,其中长期信任包含有效时间,当到达有效时间后重新开始置信度计算。
39.如附图2所示,具体步骤3中安全组件进行验证的过程包括,对于信任等级为可疑信任等级ip地址对应的发送http请求的用户发送验证问题,当验证通过后,将验证通过的http请求发送至目标服务器,当验证未通过,则将验证未通过的http请求进行拦截,并记录日志。
40.实施例2:
41.为了进一步有效检测cc攻击,在实施例一的基础上,可以通过目标服务器访问请求变化情况来判断当前服务器是否处于正常用户多并发访问的情况、还是可能正在遭受cc攻击。
42.基于对用户的访问习惯可知,正常的情况下,访问某一目标服务器的老用户与新用户比例通常稳定在某一数值,即便是多用户多并发导致访问量暴增的情况下,这个比例也并不会发生明显的变化。即,在正常情况下访问该目标服务器的ip的平均置信度波动情况不大。但当发生cc攻击时,会致使大量的“肉鸡”出现,老用户的占比会严重下降,或者置信度较低的ip地址会大量出现,这样就导致访问该目标服务器的ip地址的平均置信度会下降,引起平均置信度的波动。因此,在本实施例中,可以根据平均置信度的波动情况来判断当前是否可能出现了cc攻击。
43.在实施例1的基础上,假设数据库存中已经存储了所有ip置信度,首先将与服务器相连接的客户端ip进行读取并编号,得到ip地址集合为address={add1,add2,

,add
n
},其中n代表当前与服务器相连的客户端总数,addn代表编号为n的ip地址,将集合中的元素存入数组add[n]={add[0],add[1],

,add[n

1]}中。该add[n]所有元素的平均值代表当前系统的状态,下一步通过观察服务器访问用户在正常情况下的平均值以及波动情况确定合理的阈值。当平均值小于阈值时可以判断此时服务器正在发生cc攻击,并及时地启动cc防御系统,当平均值大于阈值时,认为此时为突增流。
[0044]
因此,本实施例涉及的方案包括如下步骤:
[0045]
步骤1:接收客户端发送的http请求。
[0046]
步骤2:解析http请求的header信息。
[0047]
步骤3:将解析的信息发送到安全组件进行验证,其中安全组件包含多重防护规则。
[0048]
步骤4:将验证通过的http请求发送至目标服务器,将验证未通过的http请求进行拦截,并记录日志。
[0049]
如附图3所示,在实施例1公开的方案的基础上,步骤3中的多重防护规则还包括了:
[0050]
计算当前访问目标服务器所有ip地址的平均置信度,当平均置信度小于阈值时,则认为目标服务器遭受到cc攻击,触发黑洞效应并跳转至步骤5,使得客户端在一段时间内无法发送http请求到目标服务器。
[0051]
具体地,系统要实时检测目标服务器的负载情况,当检测到目标服务器的负载超出预设值时,触发步骤3中上述规则验证。即当检测到当前向目标服务器发送http请求的数量过大时,则进入ip地址平均置信度的校验规则,当认为目标服务器遭受到cc攻击时则直接触发触黑洞效应,进入步骤5对客户端请求进行拦截。
[0052]
步骤5:目标服务器接收请求,并响应请求。
[0053]
具体地,黑洞效应可以根据用户设定或者默认配置持续的拦截客户端请求。当目标服务器修改防护规则或者达到了黑洞效应时长时黑洞状态就会取消,此时之前被拦截的客户端,便可以再次成功请求。当取消黑洞效应的客户端再次触发防护策略阈值时,还是会再次被拦截,并且再次触发黑洞效应,并且在单位周期内随着次数累计,黑洞效应的时长也会逐渐增加。如此便可以实现智能的拦截高频率的非法请求,提升正常业务请求的效率,保证了服务器的可用性。
[0054]
最后应说明的是:显然,上述实施例仅仅是为清楚地说明本申请所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本申请型的保护范围之中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1