一种检测拒绝服务攻击的方法及装置转让专利

申请号 : CN201510715982.7

文献号 : CN106656912B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋武

申请人 : 华为技术有限公司

摘要 :

本申请公开了一种检测拒绝服务攻击的方法及装置,涉及通信领域,用于解决现有技术对拒绝服务攻击的检测不够精确的技术问题。该方法包括:网关设备接收服务器发送的基于应用层协议的响应消息;所述响应消息用于对来自于客户端的基于应用层协议的资源访问请求消息进行响应,所述资源访问请求消息携带所述服务器提供的资源的统一资源定位符URL;获取所述响应消息的特征信息;根据所述特征信息确定所述服务器是否受到拒绝服务攻击。该方法用于检测拒绝服务攻击。

权利要求 :

1.一种检测拒绝服务攻击的方法,其特征在于,包括:

网关设备接收服务器发送的基于应用层协议的响应消息;所述响应消息用于对来自于客户端的基于应用层协议的资源访问请求消息进行响应,所述资源访问请求消息携带所述服务器提供的资源的统一资源定位符URL;

获取所述响应消息的特征信息;

根据所述特征信息确定所述服务器是否受到拒绝服务攻击;

其中,所述特征信息为响应时长,所述获取所述响应消息的特征信息,包括:确定在预设时间段内,所述服务器对访问同一个URL的资源访问请求消息进行响应的响应时长并记录;

所述根据所述特征信息确定所述服务器是否受到拒绝服务攻击,包括:确定所述预设时间段内,响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目;若所述数目不小于第一阈值,则确定所述服务器受到拒绝服务攻击;

所述预设时间段包括顺序连接且互不重合的至少两个子时间段,所述确定在预设时间段内,服务器对访问同一个URL的每条资源访问请求消息进行响应的响应时长并记录,还包括:针对访问同一个URL的每条资源访问请求消息,所述网关设备记录接收到所述资源访问请求消息的时刻与所述服务器对所述资源访问请求消息进行响应的响应时长的对应关系;

所述确定所述预设时间段内,响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目,包括:针对所述预设时间段中包括的每个子时间段,执行:

从预先存储的子时间段与第二时长阈值的对应关系中,查找到所述子时间段对应的第二时长阈值;

根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,确定在所述子时间段内接收到的所有资源访问请求消息中,响应时长超过所述第二时长阈值的访问同一个URL的资源访问请求消息的数目;

将响应时长超过各子时间段对应的第二时长阈值的访问同一个URL的资源访问请求消息的数目进行求和,将求和的结果作为所述预设时间段内响应时长超过所述第一时长阈值的访问同一个URL的资源访问请求消息的数目。

2.根据权利要求1所述的方法,其特征在于,所述确定在预设时间段内,所述服务器对访问同一个URL的资源访问请求消息进行响应的响应时长,包括:在所述预设时间段内,针对访问同一个URL的每条资源访问请求消息,执行:记录接收到所述资源访问请求消息的第一时刻,并将所述资源访问请求消息发送至所述服务器;

记录接收到所述服务器用于对所述资源访问请求消息进行响应而发送的响应消息的第二时刻;

根据所述第一时刻以及所述第二时刻,确定所述服务器对所述资源访问请求消息的响应时长。

3.根据权利要求1所述的方法,其特征在于,还包括:

若所述数目小于所述第一阈值,针对所述预设时间段中包括的每个子时间段,执行:根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,计算所述子时间段内接收到的所有资源访问请求消息的响应时长的平均值;

根据所述平均值调整所述子时间段对应的第二时长阈值。

4.一种网关设备,其特征在于,包括:

接收单元,用于接收服务器发送的基于应用层协议的响应消息;所述响应消息用于对来自客户端的基于应用层协议的资源访问请求消息进行响应,所述资源访问请求消息携带所述服务器提供的资源的统一资源定位符URL;

获取单元,用于获取所述接收单元接收到的所述响应消息的特征信息;

确定单元,用于根据所述获取单元获取到的所述特征信息确定所述服务器是否受到拒绝服务攻击;

其中,所述特征信息为响应时长,所述获取单元具体用于,确定在预设时间段内,所述服务器对访问同一个URL的资源访问请求消息进行响应的响应时长并记录;所述确定单元具体用于,确定所述预设时间段内,响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目,并在所述数目不小于第一阈值时,确定所述服务器受到拒绝服务攻击;

所述预设时间段包括顺序连接且互不重合的至少两个子时间段,所述获取单元具体用于:针对访问同一个URL的每条资源访问请求消息,所述网关设备记录接收到所述资源访问请求消息的时刻与所述服务器对所述资源访问请求消息进行响应的响应时长的对应关系;

所述确定单元具体用于,针对所述预设时间段中包括的每个子时间段,执行:从预先存储的子时间段与第二时长阈值的对应关系中,查找到所述子时间段对应的第二时长阈值;

根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,确定在所述子时间段内接收到的所有资源访问请求消息中,响应时长超过所述第二时长阈值的访问同一个URL的资源访问请求消息的数目;

所述确定单元还用于,将响应时长超过各子时间段对应的第二时长阈值的访问同一个URL的资源访问请求消息的数目进行求和,将求和的结果作为所述预设时间段内响应时长超过所述第一时长阈值的访问同一个URL的资源访问请求消息的数目。

5.根据权利要求4所述的网关设备,其特征在于,

所述获取单元具体用于,在所述预设时间段内,针对访问同一个URL的每条资源访问请求消息,执行:记录接收到所述资源访问请求消息的第一时刻,并将所述资源访问请求消息发送至所述服务器;

记录接收到所述服务器用于对所述资源访问请求消息进行响应而发送的响应消息的第二时刻;

根据所述第一时刻以及所述第二时刻,确定所述服务器对所述资源访问请求消息的响应时长。

6.根据权利要求4所述的网关设备,其特征在于,还包括调整单元,用于在所述数目小于所述第一阈值时,针对所述预设时间段中包括的每个子时间段,执行:根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,计算所述子时间段内接收到的所有资源访问请求消息的响应时长的平均值;

根据所述平均值调整所述子时间段对应的第二时长阈值。

说明书 :

一种检测拒绝服务攻击的方法及装置

技术领域

[0001] 本申请涉及通信领域,尤其涉及一种检测拒绝服务攻击的方法及装置。

背景技术

[0002] 拒绝服务(英文全称:Distributed Denial of Service,简称:DOS)攻击是指攻击者向服务器发起大量的互联网控制报文协议(英文全称:Internet Control Message Protocol,简称:ICMP)、同步(英文全称:synchronous,简称:SYN)信号、用户数据报协议(英文全称:User Datagram Protocol,简称:UDP)等连接请求,使得服务器忙于处理这些突增请求而无法正常响应合法用户请求,从而造成服务器瘫痪的攻击手段。
[0003] 更严重的,攻击者可以非法侵入一些主机,将这些主机作为主控主机,攻击者在主控主机上面安装特定程序,使得主控主机可以接受攻击者发来的特殊指令,并且可以把这些命令发送到其他受感染的主机上,也就是说,攻击者可以利用主控主机做跳板,控制大量受感染而被控制的主机组成攻击网络来对服务器进行大规模的DOS攻击。这种攻击被称为分布式拒绝服务(英文全称:Distributed Denial of Service,简称:DDOS)攻击,其往往能把单个攻击者的攻击效果进行放大,从而对服务器造成重大影响,对网络也会造成严重拥塞。
[0004] 现有技术通常是通过流量异常检测技术或者发包频率异常检测技术,来确定服务器是否受到拒绝服务攻击。具体地,设置服务器的流量阈值或者发包频率阈值,当检测到服务器当前流量大于流量阈值,或者检测到当前的发包频率大于频率阈值时,则认为服务器收到了拒绝服务攻击。但是,对于小流量下的拒绝服务攻击,服务器的流量和发包频率短期内变化不是特别大,因此,流量异常检测技术和发包频率异常检测技术不能准确检测出小流量下的拒绝服务攻击,容易出现漏报。另外,对于一些合法用户的正常请求,例如,代理请求或网络地址转换(英文全称:Network Address Translation,简称NAT)服务请求,也有可能在短时间内流量和发包频率很大,此时,流量异常检测技术和发包频率异常检测技术容易出现误报。由此可知,现有技术对拒绝服务攻击的检测不够精确。

发明内容

[0005] 本申请的目的在于提供一种检测拒绝服务攻击的方法及装置,用于解决现有技术对拒绝服务攻击的检测不够精确的技术问题。
[0006] 为了达到上述目的,本申请实施例采用如下的技术方案:
[0007] 第一方面,提供一种检测拒绝服务攻击的方法,包括:
[0008] 网关设备接收服务器发送的基于应用层协议的响应消息;所述响应消息用于对来自于客户端的基于应用层协议的资源访问请求消息进行响应,所述资源访问请求消息携带所述服务器提供的资源的统一资源定位符URL;
[0009] 获取所述响应消息的特征信息;
[0010] 根据所述特征信息确定所述服务器是否受到拒绝服务攻击。
[0011] 采用上述方案,网关设备基于应用层服务质量来确定服务器是否受到拒绝服务攻击,值得说明的是,所述服务器发送的基于应用层协议的响应消息的特征信息即可表明应用层的服务质量,例如,服务器对访问同一URL的资源访问请求消息的响应时长,或者,在预设时间段内,来自于所述服务器的请求失败消息。由于服务器在受到拒绝服务攻击时,其应用层的服务质量必然发生变化,并且服务器受到的拒绝服务攻击与应用层的服务质量之间的相关性,强于服务器受到的拒绝服务攻击与传输层或网络层的流量之间的相关性。因此,相对于现有技术基于传输层的流量检测来确定服务器是否受到拒绝服务攻击,本申请基于应用层的服务质量来确定服务器是否受到拒绝服务攻击提高了对拒绝服务攻击进行检测的精确度。
[0012] 在结合第一方面的第一种可能的实现方式中,所述特征信息为响应时长;
[0013] 所述获取所述响应报文的特征信息,包括:
[0014] 确定在预设时间段内,所述服务器对访问同一个URL的资源访问请求消息进行响应的响应时长并记录;
[0015] 所述根据所述特征信息确定所述服务器是否受到拒绝服务攻击,包括:
[0016] 确定所述预设时间段内,响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目;
[0017] 若所述数目不小于第一阈值,则确定所述服务器受到拒绝服务攻击。
[0018] 值得说明的是,服务器在受到拒绝服务攻击时,服务器针对发起攻击的客户端访问URL的资源访问请求消息进行响应的响应时长必然会快速增加。采用上述方案,网关设备在预设时间段内,在确定响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目不小于第一阈值时,即可确定所述服务器受到拒绝服务攻击。其中,所述第一时长阈值的初始设置是在确保服务器不会受到拒绝服务攻击的场景下进行的,所述第一阈值可以根据实际应用预先进行设置。这样,相比现有技术通过检测服务器总的流量或者发包速率判断是否受到拒绝服务攻击,由于服务器受到拒绝服务攻击时,服务器的总流量或者发包速率不一定快速增加,因此,上述方案提高了对拒绝服务攻击进行检测的精确度。
[0019] 结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述确定在预设时间段内,所述服务器对访问同一个URL的资源访问请求消息进行响应的响应时长,包括:
[0020] 在所述预设时间段内,针对访问同一个URL的每条资源访问请求消息,执行:
[0021] 记录接收到所述资源访问请求消息的第一时刻,并将所述资源访问请求消息发送至所述服务器;
[0022] 记录接收到所述服务器用于对所述资源访问请求消息进行响应而发送的响应消息的第二时刻;
[0023] 根据所述第一时刻以及所述第二时刻,确定所述服务器对所述资源访问请求消息的响应时长。
[0024] 上述方案提供了网关设备确定响应时长的一种实现方式,具体是由所述网关设备自身记录所述第一时刻以及所述第二时刻并通过计算确定所述响应时长。可选地,在另一种实现方式中,服务器记录接收到资源访问请求消息的时刻,并在对所述资源访问请求消息进行响应的响应消息中携带所述服务器接收到所述资源访问请求消息的时刻,以及发送所述响应消息的时刻,这样,网关设备在接收到所述响应消息后,也可以根据所述服务器接收到所述资源访问请求消息的时刻,以及发送所述响应消息的时刻计算得到响应时长。
[0025] 结合第一方面至第一方面的第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述预设时间段包括顺序连接且互不重合的至少两个子时间段;
[0026] 所述确定在预设时间段内,服务器对访问同一个URL的每条资源访问请求消息进行响应的响应时长并记录,还包括:
[0027] 针对访问同一个URL的每条资源访问请求消息,所述网关设备记录接收到所述资源访问请求消息的时刻与所述服务器对所述资源访问请求消息进行响应的响应时长的对应关系;
[0028] 所述确定所述预设时间段内,响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目,包括:
[0029] 针对所述预设时间段中包括的每个子时间段,执行:
[0030] 从预先存储的子时间段与第二时长阈值的对应关系中,查找到所述子时间段对应的第二时长阈值;
[0031] 根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,确定在所述子时间段内接收到的所有资源访问请求消息中,响应时长超过所述第二时长阈值的访问同一个URL的资源访问请求消息的数目;
[0032] 将响应时长超过各子时间段对应的第二时长阈值的访问同一个URL的资源访问请求消息的数目进行求和,将求和的结果作为所述预设时间段内响应时长超过所述第一时长阈值的访问同一个URL的资源访问请求消息的数目。
[0033] 上述方案表明了不同的子时间段对应的第二时长阈值可以不同。下面举例说明上述方案能够达到的技术效果:若服务器在未受到拒绝服务攻击的情况下,客户端在早上9:00~10:00,10:00~11:00,11:00~12:00三个时间段,向服务器发送访问同一个URL的资源访问请求消息的频率是依次上升的。在此种情况下,初始设置的预设时间段可以是9:00~
12:00,其包括9:00~10:00,10:00~11:00,11:00~12:00三个子时间段,并且子时间段9:
00~10:00对应的第二时长阈值小于子时间段10:00~11:00对应的第二时长阈值,子时间段10:00~11:00对应的第二时长阈值小于子时间段11:00~12:00对应的第二时长阈值。相比在三个子时间段设置相等的第二时长阈值,上述方案基于不同子时间段客户端对同一个URL的不同访问情况,分别设置对应每个子时间段的第二时长阈值,更能准确反映客户端访问URL的情况。
[0034] 结合第一方面至第一方面的第三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,还包括:
[0035] 若所述数目小于所述第一阈值,针对所述预设时间段中包括的每个子时间段,执行:
[0036] 根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,计算所述子时间段内接收到的所有资源访问请求消息的响应时长的平均值;
[0037] 根据所述平均值调整所述子时间段对应的第二时长阈值。
[0038] 也就是说,在所述数目小于所述第一阈值时,所述网关设备即认为所述服务器未受到拒绝服务攻击,此时,所述网关设备可以利用在所述预设时间段内的响应时长,调整所述第一时长阈值,即所述第一时长阈值在被初始设置后,并非保持不变,而是在对拒绝服务攻击进行检测的过程中被动态调整的,从而使得所述第一时长阈值设置更合理。
[0039] 结合第一方面至第一方面的第四种可能的实现方式中的任一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述响应消息是来自于所述服务器的请求失败消息,所述特征信息为预设时间段内响应消息的数目;
[0040] 所述获取所述响应消息的特征信息,包括:
[0041] 在所述预设时间段内,计算接收到来自于所述服务器的请求失败消息的数目;
[0042] 所述根据所述特征信息确定所述服务器是否受到拒绝服务攻击,包括:
[0043] 若所述数目不小于第二阈值,则确定所述服务器受到拒绝服务攻击。
[0044] 值得说明的是,服务器在受到拒绝服务攻击时,所述服务器忙于处理这些突增请求而无法正常响应合法用户发送的资源访问请求消息,在此种情况下,服务器发送的基于应用层协议的请求失败消息必然会快速增加,相比现有技术通过检测服务器总的流量或者发包速率判断是否受到拒绝服务攻击,由于服务器受到拒绝服务攻击时,服务器的总流量或者发包速率不一定快速增加,因此,上述方案提高了对拒绝服务攻击进行检测的精确度。
[0045] 在本申请一种可能的实施例中,网关设备在确定所述服务器受到拒绝服务攻击后,向所述服务器发送关闭服务消息,所述关闭服务消息用于指示所述服务器关闭与客户端的连接。避免了所述服务器继续受到拒绝服务攻击。
[0046] 进一步地,所述网关设备接收客户端发送的资源访问请求消息,所述资源访问请求消息包括所述客户端的标识,所述网关设备根据所述客户端的标识,在确定所述客户端不是白名单内的客户端时,向所述客户端发送验证指示消息;所述网关设备接收所述客户端根据所述验证指示消息发送的验证请求消息,并在验证通过后,将所述客户端加入所述白名单。
[0047] 值得说明的是,服务器在收到网关设备发送的关闭服务消息后,可以将原URL对应的资源转移到另一个URL,因此,进一步地,所述网关设备在将所述客户端加入所述白名单后,向所述客户端发送重定向报文,所述重定向报文包括所述另一个URL,所述网关设备在接收到客户端发送的携带所述另一个URL的资源访问请求消息后,若确定所述客户端为所述白名单内的客户端,则将所述资源访问请求消息发送至所述服务器。
[0048] 这样,所述网关设备在确定服务器受到拒绝服务攻击后,对请求访问服务器的客户端进行验证,并只将通过验证的处于白名单内的客户端发送的资源访问请求消息发送至服务器,避免了未通过验证的客户端对服务器可能进行的拒绝服务攻击。
[0049] 第二方面,提供一种网关设备,包括:
[0050] 接收单元,用于接收服务器发送的基于应用层协议的响应消息;所述响应消息用于对来自客户端的基于应用层协议的资源访问请求消息进行响应,所述资源访问请求消息携带所述服务器提供的资源的统一资源定位符URL;
[0051] 获取单元,用于获取所述接收单元接收到的所述响应消息的特征信息;
[0052] 确定单元,用于根据所述获取单元获取到的所述特征信息确定所述服务器是否受到拒绝服务攻击。
[0053] 在结合第二方面的第一种可能的实现方式中,所述特征信息为响应时长;
[0054] 所述获取单元具体用于,确定在预设时间段内,所述服务器对访问同一个URL的资源访问请求消息进行响应的响应时长并记录;
[0055] 所述确定单元具体用于,确定所述预设时间段内,响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目,并在所述数目不小于第一阈值时,确定所述服务器受到拒绝服务攻击。
[0056] 结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述获取单元具体用于,在所述预设时间段内,针对访问同一个URL的每条资源访问请求消息,执行:
[0057] 记录接收到所述资源访问请求消息的第一时刻,并将所述资源访问请求消息发送至所述服务器;
[0058] 记录接收到所述服务器用于对所述资源访问请求消息进行响应而发送的响应消息的第二时刻;
[0059] 根据所述第一时刻以及所述第二时刻,确定所述服务器对所述资源访问请求消息的响应时长。
[0060] 结合第二方面至第二方面的第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述预设时间段包括顺序连接且互不重合的至少两个子时间段;
[0061] 所述获取单元具体用于,针对访问同一个URL的每条资源访问请求消息,所述网关设备记录接收到所述资源访问请求消息的时刻与所述服务器对所述资源访问请求消息进行响应的响应时长的对应关系;
[0062] 所述确定单元具体用于,针对所述预设时间段中包括的每个子时间段,执行:
[0063] 从预先存储的子时间段与第二时长阈值的对应关系中,查找到所述子时间段对应的第二时长阈值;
[0064] 根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,确定在所述子时间段内接收到的所有资源访问请求消息中,响应时长超过所述第二时长阈值的访问同一个URL的资源访问请求消息的数目;
[0065] 所述确定单元还用于,将响应时长超过各子时间段对应的第二时长阈值的访问同一个URL的资源访问请求消息的数目进行求和,将求和的结果作为所述预设时间段内响应时长超过所述第一时长阈值的访问同一个URL的资源访问请求消息的数目。
[0066] 结合第二方面至第二方面的第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述网关设备还包括调整单元,用于在所述数目小于所述第一阈值时,针对所述预设时间段中包括的每个子时间段,执行:
[0067] 根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,计算所述子时间段内接收到的所有资源访问请求消息的响应时长的平均值;
[0068] 根据所述平均值调整所述子时间段对应的第二时长阈值。
[0069] 结合第二方面至第二方面的第四种可能的实现方式中的任一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述响应消息是来自于所述服务器的请求失败消息,所述特征信息为预设时间段内响应消息的数目;
[0070] 所述获取单元具体用于,在所述预设时间段内,计算接收到来自于所述服务器的请求失败消息的数目;
[0071] 所述确定单元具体用于,在所述数目不小于第二阈值时,确定所述服务器受到拒绝服务攻击。
[0072] 以上对网关设备的单元划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,并且,各单元具体的物理实现方式本申请不作限定,例如,在具体实施过程中,所述接收单元可以是一接收机,所述获取单元可以是一运算器,所述确定单元可以是中央处理器,本领域的技术人员通过合理的分析推理能够想到的其他实现方式也属于本申请的保护范围之内。
[0073] 第三方面,提供另一种网关设备,包括:处理器,存储器,发射机,接收机和通信总线;其中,所述处理器,所述存储器,所述发射机和所述接收机通过所述通信总线完成相互间的通信;
[0074] 所述存储器用于,存储程序代码;
[0075] 所述处理器调用所述存储器存储的所述程序代码用于:
[0076] 接收服务器发送的基于应用层协议的响应消息;所述响应消息用于对来自于客户端的基于应用层协议的资源访问请求消息进行响应,所述资源访问请求消息携带所述服务器提供的资源的统一资源定位符URL;
[0077] 获取所述响应消息的特征信息;
[0078] 根据所述特征信息确定所述服务器是否受到拒绝服务攻击。
[0079] 在结合第三方面的第一种可能的实现方式中,所述特征信息为响应时长;所述处理器调用所述存储器存储的所述程序代码还用于:
[0080] 确定在预设时间段内,所述服务器对访问同一个URL的资源访问请求消息进行响应的响应时长并记录;
[0081] 确定所述预设时间段内,响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目;
[0082] 若所述数目不小于第一阈值,则确定所述服务器受到拒绝服务攻击。
[0083] 结合第三方面或者第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器调用所述存储器存储的所述程序代码还用于:
[0084] 在所述预设时间段内,针对访问同一个URL的每条资源访问请求消息,执行:
[0085] 记录接收到所述资源访问请求消息的第一时刻,并将所述资源访问请求消息发送至所述服务器;
[0086] 记录接收到所述服务器用于对所述资源访问请求消息进行响应而发送的响应消息的第二时刻;
[0087] 根据所述第一时刻以及所述第二时刻,确定所述服务器对所述资源访问请求消息的响应时长。
[0088] 结合第三方面至第三方面的第二种可能的实现方式中的任一种可能的实现方式,在第三方面的第三种可能的实现方式中,所述预设时间段包括顺序连接且互不重合的至少两个子时间段;所述处理器调用所述存储器存储的所述程序代码还用于:
[0089] 针对访问同一个URL的每条资源访问请求消息,所述网关设备记录接收到所述资源访问请求消息的时刻与所述服务器对所述资源访问请求消息进行响应的响应时长的对应关系;
[0090] 针对所述预设时间段中包括的每个子时间段,执行:
[0091] 从预先存储的子时间段与第二时长阈值的对应关系中,查找到所述子时间段对应的第二时长阈值;
[0092] 根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,确定在所述子时间段内接收到的所有资源访问请求消息中,响应时长超过所述第二时长阈值的访问同一个URL的资源访问请求消息的数目;
[0093] 将响应时长超过各子时间段对应的第二时长阈值的访问同一个URL的资源访问请求消息的数目进行求和,将求和的结果作为所述预设时间段内响应时长超过所述第一时长阈值的访问同一个URL的资源访问请求消息的数目。
[0094] 结合第三方面至第三方面的第三种可能的实现方式中的任一种可能的实现方式,在第三方面的第四种可能的实现方式中,所述处理器调用所述存储器存储的所述程序代码还用于:
[0095] 若所述数目小于所述第一阈值,针对所述预设时间段中包括的每个子时间段,执行:
[0096] 根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,计算所述子时间段内接收到的所有资源访问请求消息的响应时长的平均值;
[0097] 根据所述平均值调整所述子时间段对应的第二时长阈值。
[0098] 结合第三方面至第三方面的第二种可能的实现方式中的任一种可能的实现方式,在第三方面的第三种可能的实现方式中,所述响应消息是来自于所述服务器的请求失败消息,所述特征信息为预设时间段内响应消息的数目;所述处理器调用所述存储器存储的所述程序代码还用于:
[0099] 在所述预设时间段内,计算接收到来自于所述服务器的请求失败消息的数目;
[0100] 若所述数目不小于第二阈值,则确定所述服务器受到拒绝服务攻击。

附图说明

[0101] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0102] 图1为本申请实施例提供的一种网络系统架构的示意图;
[0103] 图2为图1所示网络系统架构图受到拒绝服务攻击的示意图;
[0104] 图3为本申请实施例提供的一种检测拒绝服务攻击的方法的一个示例;
[0105] 图4为本申请实施例提供的客户端访问服务器的信息交互示意图;
[0106] 图5为本申请实施例提供的一种设置第一时长阈值的方法的流程示意图;
[0107] 图6为本申请实施例提供的第一时长阈值的示意图;
[0108] 图7为基于图6所示的第一时长阈值进行拒绝服务攻击检测的一个示例;
[0109] 图8为本申请实施例提供的一种检测拒绝服务攻击的方法的又一个示例;
[0110] 图9为本申请实施例提供的一种网关设备的结构示意图;
[0111] 图10为本申请实施例提供的另一种网关设备的结构示意图。

具体实施方式

[0112] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0113] 首先,本申请以下实施例均可应用于客户端通过网关设备访问服务器的网络系统架构。其中,该客户端可以是笔记本电脑,平板电脑,智能手机等终端设备,该服务器可以是网站(英文全称:Web)服务器,文件传输协议(英文全称:File Transfer Protocol,简称FTP)服务器等提供网络服务的服务器。并且,针对服务器的不同类型,该网关设备与之配套。例如,如图1所示,该网络系统架构中的客户端具体包括笔记本电脑11,平板电脑12,台式电脑13,智能手机14,该网络系统架构还包括Web服务器16,以及与该Web服务器配套的网关设备15。其中,任一客户端可以向网关设备发送资源访问请求消息,该资源访问请求消息携带统一资源定位符(英文全称:Uniform Resoure Locator,简称:URL),由网关设备将该资源访问请求消息发送至服务器,实现客户端对该服务器提供的资源的访问。
[0114] 本申请实施例提供一种检测拒绝服务攻击的方法,能够提高对拒绝服务攻击进行检测的精确度。为了使本领域的技术人员能够更容易理解本方案达到的技术效果,下面首先对分布式的拒绝服务攻击进行简单介绍:
[0115] 图2示出了如图1所示的网络系统架构在受到分布式拒绝服务攻击的示意图。其中,图2示出的攻击者可以通过主控主机,控制笔记本电脑11,平板电脑12,台式电脑13,智能手机14作为攻击傀儡机,向服务器16发送大量请求消息,塞满该服务器16的接收请求消息的缓冲区,致使该服务器16无法接收正常客户端发送的请求消息,从而无法提供正常服务。
[0116] 本申请实施例提供的一种检测拒绝服务攻击的方法的一个示例如图3所示,该方法包括:
[0117] S301、网关设备接收服务器发送的基于应用层协议的响应消息。
[0118] 其中,该响应消息用于对来自于客户端的基于应用层协议的资源访问请求消息进行响应,该资源访问请求消息携带该服务器提供的资源的统一资源定位符URL。
[0119] S302、该网关设备获取该响应消息的特征信息。
[0120] S303、该网关设备根据该特征信息确定该服务器是否受到拒绝服务攻击。
[0121] 采用上述方案,网关设备基于应用层服务质量来确定服务器是否受到拒绝服务攻击,值得说明的是,所述服务器发送的基于应用层协议的响应消息的特征信息即可表明应用层的服务质量,例如,该特征信息可以是服务器对访问同一URL的资源访问请求消息的响应时长,也可以是在预设时间段内,来自于所述服务器的请求失败消息的数目。由于服务器在受到拒绝服务攻击时,其应用层的服务质量必然发生变化,并且服务器受到的拒绝服务攻击与应用层的服务质量之间的相关性,强于服务器受到的拒绝服务攻击与传输层或网络层的流量之间的相关性。因此,相对于现有技术基于传输层的流量检测来确定服务器是否受到拒绝服务攻击,本申请基于应用层的服务质量来确定服务器是否受到拒绝服务攻击提高了对拒绝服务攻击进行检测的精确度。
[0122] 下面以上述特征信息为服务器对访问同一个URL的资源访问请求消息进行响应的响应时长为例,对本申请实施例提供的一种检测拒绝服务攻击的方法进行详细说明。
[0123] 具体地,网关设备确定在预设时间段内,服务器对访问同一个URL的资源访问请求消息进行响应的响应时长并记录,进一步地,网关设备确定该预设时间段内,响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目,若所述数目不小于第一阈值,则确定该服务器受到拒绝服务攻击。
[0124] 其中,访问同一个URL的资源访问请求消息可以来自于不同的客户端。
[0125] 值得说明的是,上述基于应用层协议的资源访问请求消息可以是超文本传输协议(英文全称:HyperTextTransfer Protocol,简称:HTTP)Get消息,基于应用层协议的响应消息可以是200OK,用于表示服务器成功返回资源。如图4所示,对于客户端1至客户端N等多个客户端,N是大于1的正整数,每个客户端可以通过网关设备向服务器发送HTTP Get消息,服务器向客户端发送对该HTTP Get消息进行响应的200OK。
[0126] 这样,由于服务器在受到拒绝服务攻击时,服务器针对发起攻击的客户端访问URL的资源访问请求消息进行响应的响应时长必然会快速增加,这样,由于服务器受到拒绝服务攻击时,服务器的总流量或者发包速率不一定快速增加,因此,相比现有技术通过检测服务器总的流量或者发包速率判断是否受到拒绝服务攻击,上述方案提高了对拒绝服务攻击进行检测的精确度。
[0127] 示例地,该网关设备初始设置第一时长阈值的方法如图5所示,包括:
[0128] S501、网关设备接收客户端发送的携带URL的HTTP Get消息,并记录接收到该HTTP Get消息的第一时刻。
[0129] S502、该网关设备将该HTTP Get请求消息发送至服务器。
[0130] S503、该网关设备接收该服务器发送的用于对该HTTP Get消息进行响应的200OK,并记录接收到该200OK的第二时刻。
[0131] S504、该网关设备将该第一时刻以及该第二时刻之间的时长差值作为客户端本次访问该URL的响应时长。
[0132] S505、该网关设备确定预设时间段内,客户端每次访问该URL的响应时长。
[0133] 具体地,该网关设备在该预设时间段内重复执行上述步骤S501至步骤S504,即可得到每次访问该URL的响应时长。
[0134] S506、该网关设备将该预设时间段划分为顺序连接且互不重合的至少两个子时间段,并针对每个子时间段执行步骤S507。
[0135] 需要说明的是,每个时间段的时长可能相同,也可能不同,本申请对此不做限定。
[0136] S507、该网关设备计算子时间段内,服务器对所有访问该URL的HTTP Get消息的响应时长的平均值,并将该平均值作为对应该子时间段的第二时长阈值。
[0137] 示例地,若该预设时间段包括m个子时间段,m为大于1的正整数,这样,该网关设备可以在第一个子时间段内记录客户端每次访问该URL的响应时长,并计算每次访问的响应时长的平均值,例如,在第一个子时间段内,客户端访问该URL共n次,n是大于0的正整数,每次访问该URL的响应时长分别为t1,t2,t3……tn,则在第一个子时间段内,访问该URL的响应时长的平均值即为(t1+t2+t3+……+tn)/n,则该平均值即为对应第一子时间段内的第二时长阈值,以此类推,可得到该预设时间段包括的每个子时间段对应的第二时长阈值。
[0138] 可选地,步骤S507中,该网关设备还可以对每个子时间段的响应时长的平均值乘以一个系数作为对应该子时间段的第二时长阈值,其中,该系数的具体取值可以根据实际实施时的网络时延进行设置,以避免了网络时延引起的响应时长增加导致的误报。
[0139] 值得说明的是,该网关设备可以在确保服务器不会受到拒绝服务攻击的场景下运行第一时长阈值的学习流程,即上述步骤S501至步骤S507。例如,用户可以在确定当前网络中不存在拒绝服务攻击的情况下,在网络中初始启动该网关设备,并在该网关设备运行上述学习流程时,进行实时监控,确保该网关设备在初始设置该第一时长阈值期间未受到拒绝服务攻击。
[0140] 上述方案表明了不同的子时间段对应的第二时长阈值可以不同。下面举例说明上述方案能够达到的技术效果:若服务器在未受到拒绝服务攻击的情况下,客户端在早上9:00~10:00,10:00~11:00,11:00~12:00三个时间段,向服务器发送访问同一个URL的资源访问请求消息的频率是依次上升的。在此种情况下,初始设置的预设时间段可以是9:00~
12:00,其包括9:00~10:00,10:00~11:00,11:00~12:00三个子时间段,并且子时间段9:
00~10:00对应的第二时长阈值小于子时间段10:00~11:00对应的第二时长阈值,子时间段10:00~11:00对应的第二时长阈值小于子时间段11:00~12:00对应的第二时长阈值。相比在三个子时间段设置相等的第二时长阈值,上述方案基于不同子时间段客户端对同一个URL的不同访问情况,分别设置对应每个子时间段的第二时长阈值,更能准确反映客户端访问URL的情况。
[0141] 上述仅是本申请实施例的一种优选的实现方式,在具体实施过程中,网关设备也可以对该预设时间段内的所有响应时长计算平均值,并将该平均值作为该第一时长阈值。本申请对此不做限定。
[0142] 示例地,通过图5所示方法得到的第一时长阈值如图6所示,参照图6,预设时间段包括顺序连接且互不重合的子时间段1至子时间段5,该时长基线包括子时间段1对应的第二时长阈值T1,子时间段2对应的第二时长阈值T2,子时间段3对应的第二时长阈值T3,子时间段4对应的第二时长阈值T4,子时间段5对应的第二时长阈值T5。
[0143] 进一步地,基于图6所示的第一时长阈值,该网关设备在该预设时间段内进行拒绝服务攻击检测的方法如图7所示,该方法包括:
[0144] S701、网关设备在预设时间段内,确定客户端第一次访问URL的响应时长。
[0145] 具体地,网关设备计算响应时长的方式可以参照图5所示的步骤S501至步骤S504,此处不再赘述。
[0146] S702、该网关设备确定该响应时长是否大于当前时刻所处的子时间段对应的第二时长阈值。
[0147] 示例地,如图6所示,若该网关设备接收到客户端第一次发送的访问该URL的资源访问请求消息是在子时间段1内,则该网关设备在确定本次访问的响应时长tt后,将该响应时长tt与该子时间段1对应的第二时长阈值T1进行数值比较,确定该响应时长tt是否大于T1。
[0148] 值得说明的是,上述步骤S702中的该当前时刻是网关设备计算获得响应时长的时刻。在另一种可能的实现方式中,该网关设备可以针对访问同一个URL的每条资源访问请求消息,记录接收到该资源访问请求消息的时刻与该服务器对该资源访问请求消息进行响应的响应时长的对应关系。这样,该网关设备在计算得到响应时长后,根据该对应关系确定该响应时长对应的该网关设备记录的接收到资源访问请求消息的时刻,并从预先存储的子时间段与第二时长阈值的对应关系中确定该网关设备记录的接收到该资源访问请求消息的时刻所处子时间段对应的第二时长阈值,并将该响应时长与该第二时长阈值进行数值比较,确定该响应时长是否大于该第二时长阈值。
[0149] S703、该网关设备将响应时长超过各子时间段对应的第二时长阈值的访问同一个URL的资源访问请求消息的数目进行求和,将求和的结果作为在该预设时间段内响应时长超过该第一时长阈值的访问同一个URL的资源访问请求消息的数目。
[0150] 可选地,在该预设时间段内,该网关设备每次接收到客户端发送的访问该URL的资源访问请求消息时,均执行上述步骤S701和步骤S702,并在每次响应时长超过所处子时间段对应的第二时长阈值时,对该网关设备记录的响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目加一,直到该预设时间段结束,得到在该预设时间段内,响应时长超过该第一时长阈值的访问同一URL的资源访问请求消息的总的数目。
[0151] S704、若该数目不小于预设的第一阈值,则确定该服务器受到拒绝服务攻击。
[0152] 其中,该第一阈值可以根据实际实施的情况预先进行设置。
[0153] S705、若该数目小于该第一阈值,则针对该预设时间段中包括的每个子时间段,执行步骤S706至步骤S707。
[0154] S706、该网关设备根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,计算该子时间段内接收到的所有资源访问请求消息的响应时长的平均值。
[0155] S707、该网关设备根据该平均值调整该子时间段对应的第二时长阈值。
[0156] 具体地,网关设备在对第二时长阈值进行调整时,可以直接将该子时间段对应的原第二时长阈值直接调整为该平均值,也可以将该平均值乘以一个系数后作为该子时间段对应的调整后的第二时长阈值,其中,该系数的具体取值可以根据实际实施时的网络时延进行设置。
[0157] 也就是说,在该数目小于该第一阈值时,该网关设备即认为该服务器未受到拒绝服务攻击,此时,该网关设备可以利用在该预设时间段内的响应时长,调整该第一时长阈值,即该第一时长阈值在被初始设置后,并非保持不变,而是在对拒绝服务攻击进行检测的过程中被动态调整的,从而使得该第一时长阈值设置更合理。
[0158] 需要说明的是,图7所示步骤只是举例说明,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
[0159] 下面以特征信息为预设时间段内,来自于服务器的请求失败消息的数目为例,对本申请实施例提供的一种检测拒绝服务攻击的方法进行详细说明。
[0160] 具体地,网关设备在预设时间段内,计算接收到来自于服务器的请求失败消息的数目,若所述数目不小于第二阈值,则确定所述服务器受到拒绝服务攻击。
[0161] 其中,该请求失败消息可以是服务器对不同客户端发送的资源访问请求消息进行响应发送至该网关设备的。
[0162] 示例地,当该服务器为Web服务器时,对于无法响应的客户端发送的资源访问请求消息,该Web服务器会向该网关设备发送503状态码。503状态码是服务器出错的一种返回状态,表明服务器由于维护或者过载无法处理请求消息,也就是说,该请求失败消息可以是503状态码。
[0163] 由于服务器在受到拒绝服务攻击时,该服务器忙于处理这些突增请求而无法正常响应合法用户请求,其发送的请求失败消息必然会增加,由于服务器受到拒绝服务攻击时,服务器的总流量或者发包速率不一定快速增加,因此,相比现有技术通过检测服务器总的流量或者发包速率判断是否受到拒绝服务攻击,上述方案提高了对拒绝服务攻击进行检测的精确度。
[0164] 下面对网关设备在确定服务器受到拒绝服务攻击后,进行防护的方法进行简单介绍,包括:
[0165] S801、该网关设备向该服务器发送关闭服务消息,该关闭服务消息用于指示该服务器关闭与客户端的连接。
[0166] 值得说明的是,若该服务器为Web服务器,则该关闭服务消息可以是传输控制协议(英文全称:Transmission Control Protocol,简称:TCP)中的终止FIN消息或者重置RST消息,该服务器在收到FIN消息或者RST消息后,关闭与客户端的连接。
[0167] S802、该网关设备接收客户端发送的携带第一URL的第一资源访问请求消息。
[0168] 需要说明的是,为了描述方便,图8仅示出了一个客户端,但是本领域的技术人员应该理解到,图8示出的客户端可以表示与服务器连接的任一客户端。
[0169] S803、该网关设备根据该第一资源访问请求消息携带的客户端标识确定该客户端是否处于白名单内。
[0170] 具体地,若该白名单内包括该客户端的标识,则执行步骤S804,若该白名单内不包括该客户端的标识,则执行步骤S805及其后续步骤。
[0171] S804、该网关设备将该第一资源访问请求消息发送至该服务器。
[0172] S805、该网关设备向该客户端发送验证指示消息。
[0173] S806、该网关设备接收该客户端根据该验证指示消息发送的验证请求消息。
[0174] S807、该网关设备根据该验证请求消息对该客户端进行验证通过后,将该客户端加入该白名单。
[0175] S808、该网关设备向该客户端发送重定向报文,该重定向报文包括第二URL。
[0176] 值得说明的是,若该服务器为Web服务器,则该Web服务器在接收到网关设备在步骤S801发送的关闭服务消息后,可以将该第一URL的网页转移到该第二URL,以避免攻击者继续以第一URL发起的攻击。在此情况下,该重定向报文可以包括301状态码以及该第二URL,该301状态码用于表示本网页永久性转移到该第二URL。
[0177] S809、该网关设备接收该客户端发送的第二资源访问请求消息,该第二资源访问请求消息包括该第二URL。
[0178] S810、该网关设备将该第二资源访问请求消息发送至该服务器。
[0179] 具体地,网关设备在确定服务器受到拒绝服务攻击后,对请求访问服务器的客户端进行验证,并只将通过验证的处于白名单内的客户端发送的资源访问请求消息发送至服务器,避免了未通过验证的客户端对服务器可能进行的拒绝服务攻击。
[0180] 本申请实施例还提供一种网关设备90,用于实施上述方法实施例所示的检测拒绝服务攻击的方法,如图9所示,该网关设备90包括:
[0181] 接收单元91,用于接收服务器发送的基于应用层协议的响应消息。
[0182] 其中,该响应消息用于对来自客户端的基于应用层协议的资源访问请求消息进行响应,该资源访问请求消息携带该服务器提供的资源的统一资源定位符URL。
[0183] 获取单元92,用于获取该接收单元91接收到的该响应消息的特征信息。
[0184] 确定单元93,用于根据该获取单元92获取到的该特征信息确定该服务器是否受到拒绝服务攻击。
[0185] 采用上述网关设备,该网关设备是基于应用层服务质量来确定服务器是否受到拒绝服务攻击的,值得说明的是,所述服务器发送的基于应用层协议的响应消息的特征信息即可表明应用层的服务质量,例如,服务器对访问同一URL的资源访问请求消息的响应时长,或者,在预设时间段内,来自于所述服务器的请求失败消息。由于服务器在受到拒绝服务攻击时,其应用层的服务质量必然发生变化,并且服务器受到的拒绝服务攻击与应用层的服务质量之间的相关性,强于服务器受到的拒绝服务攻击与传输层的流量之间的相关性。因此,相对于现有技术基于传输层的流量检测来确定服务器是否受到拒绝服务攻击,本申请提供的网关设备基于应用层的服务质量来确定服务器是否受到拒绝服务攻击提高了对拒绝服务攻击进行检测的精确度。
[0186] 可选地,该特征信息为响应时长,该获取单元92具体用于,确定在预设时间段内,该服务器对访问同一个URL的资源访问请求消息进行响应的响应时长并记录;该确定单元93具体用于,确定该预设时间段内,响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目,并在该数目不小于第一阈值时,确定该服务器受到拒绝服务攻击。
[0187] 其中,所述第一时长阈值的初始设置是在确保服务器不会受到拒绝服务攻击的场景下进行的,所述第一阈值可以根据实际应用预先进行设置。
[0188] 可选地,该获取单元92还用于,在该预设时间段内,针对访问同一个URL的每条资源访问请求消息,执行:
[0189] 记录接收到该资源访问请求消息的第一时刻,并将该资源访问请求消息发送至该服务器;记录接收到该服务器用于对该资源访问请求消息进行响应而发送的响应消息的第二时刻;根据该第一时刻以及该第二时刻,确定该服务器对该资源访问请求消息的响应时长。
[0190] 可选地,该预设时间段包括顺序连接且互不重合的至少两个子时间段;该获取单元92还用于,针对访问同一个URL的每条资源访问请求消息,该网关设备记录接收到该资源访问请求消息的时刻与该服务器对该资源访问请求消息进行响应的响应时长的对应关系;该确定单元93具体用于,针对该预设时间段中包括的每个子时间段,执行:
[0191] 从预先存储的子时间段与第二时长阈值的对应关系中,查找到该子时间段对应的第二时长阈值;根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,确定在该子时间段内接收到的所有资源访问请求消息中,响应时长超过该第二时长阈值的访问同一URL的资源访问请求消息的数目;
[0192] 该确定单元93还用于,将响应时长超过各子时间段对应的第二时长阈值的访问同一URL的资源访问请求消息的数目进行求和,将求和的结果作为该预设时间段内响应时长超过该第一时长阈值的访问同一个URL的资源访问请求消息的数目。
[0193] 值得说明的是,服务器在受到拒绝服务攻击时,服务器针对发起攻击的客户端访问URL的资源访问请求消息进行响应的响应时长必然会快速增加。这样,由于服务器受到拒绝服务攻击时,服务器的总流量或者发包速率不一定快速增加,因此,相比现有技术通过检测服务器总的流量或者发包速率判断是否受到拒绝服务攻击,上述方案提高了对拒绝服务攻击进行检测的精确度。
[0194] 可选地,该网关设备90还包括调整单元94,用于在该数目小于该第一阈值时,针对该预设时间段中包括的每个子时间段,执行:
[0195] 根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,计算该子时间段内接收到的所有资源访问请求消息的响应时长的平均值;根据该平均值调整该子时间段对应的第二时长阈值。
[0196] 也就是说,在所述数目小于所述第一阈值时,所述网关设备即认为所述服务器未受到拒绝服务攻击,此时,所述网关设备可以利用在所述预设时间段内的响应时长,调整所述第一时长阈值,即所述第一时长阈值在被初始设置后,并非保持不变,而是在对拒绝服务攻击进行检测的过程中被动态调整的,从而使得所述第一时长阈值设置更合理。
[0197] 可选地,该响应消息是来自于该服务器的请求失败消息,该特征信息为预设时间段内响应消息的数目;该获取单元92具体用于,在该预设时间段内,计算接收到来自于该服务器的请求失败消息的数目;该确定单元93具体用于,若该数目不小于第二阈值,则确定该服务器受到拒绝服务攻击。
[0198] 值得说明的是,服务器在受到拒绝服务攻击时,所述服务器忙于处理这些突增请求而无法正常响应合法用户发送的资源访问请求消息,在此种情况下,服务器发送的基于应用层协议的请求失败消息必然会快速增加,由于服务器受到拒绝服务攻击时,服务器的总流量或者发包速率不一定快速增加,因此,相比现有技术通过检测服务器总的流量或者发包速率判断是否受到拒绝服务攻击,上述方案提高了对拒绝服务攻击进行检测的精确度。
[0199] 另外,以上对网关设备的单元划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,并且,各单元具体的物理实现方式本申请不作限定,例如,在具体实施过程中,该接收单元91可以是一接收机,该获取单元92可以是一运算器,该确定单元93可以是中央处理器,本领域的技术人员通过合理的分析推理能够想到的其他实现方式也属于本申请的保护范围之内。
[0200] 所属本领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的网关设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0201] 本申请实施例提供又一种网关设备10,如图10所示,该网关设备10包括:
[0202] 处理器(processor)101、发射机(Communications Interface)102、接收机103、存储器(memory)104和通信总线105;其中,所述处理器101、所述发射机102、所述接收机103和所述存储器104通过所述通信总线105完成相互间的通信。
[0203] 处理器101可能是一个多核中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
[0204] 存储器104用于存放程序代码,所述程序代码包括计算机操作指令和网络流图。存储器104可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器104也可以是存储器阵列。存储器104还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
[0205] 所述发射机102和所述接收机103,用于实现这些装置之间的连接通信。
[0206] 所述处理器101用于执行所述存储器104中的程序代码,以实现以下操作:
[0207] 接收服务器发送的基于应用层协议的响应消息;所述响应消息用于对来自于客户端的基于应用层协议的资源访问请求消息进行响应,所述资源访问请求消息携带所述服务器提供的资源的统一资源定位符URL;
[0208] 获取所述响应消息的特征信息;
[0209] 根据所述特征信息确定所述服务器是否受到拒绝服务攻击。
[0210] 可选地,所述特征信息为响应时长;
[0211] 所述获取所述响应报文的特征信息,包括:
[0212] 确定在预设时间段内,所述服务器对访问同一个URL的资源访问请求消息进行响应的响应时长并记录;
[0213] 所述根据所述特征信息确定所述服务器是否受到拒绝服务攻击,包括:
[0214] 确定所述预设时间段内,响应时长超过第一时长阈值的访问同一个URL的资源访问请求消息的数目;
[0215] 若所述数目不小于第一阈值,则确定所述服务器受到拒绝服务攻击。
[0216] 可选地,所述确定在预设时间段内,所述服务器对访问同一个URL的资源访问请求消息进行响应的响应时长,包括:
[0217] 在所述预设时间段内,针对访问同一个URL的每条资源访问请求消息,执行:
[0218] 记录接收到所述资源访问请求消息的第一时刻,并将所述资源访问请求消息发送至所述服务器;
[0219] 记录接收到所述服务器用于对所述资源访问请求消息进行响应而发送的响应消息的第二时刻;
[0220] 根据所述第一时刻以及所述第二时刻,确定所述服务器对所述资源访问请求消息的响应时长。
[0221] 可选地,所述预设时间段包括顺序连接且互不重合的至少两个子时间段;
[0222] 所述确定在预设时间段内,服务器对访问同一个URL的每条资源访问请求消息进行响应的响应时长并记录,所述操作还包括:
[0223] 针对访问同一个URL的每条资源访问请求消息,所述网关设备记录接收到所述资源访问请求消息的时刻与所述服务器对所述资源访问请求消息进行响应的响应时长的对应关系;
[0224] 所述确定所述预设时间段内,响应时长超过第一时长阈值的访问同一URL的资源访问请求消息的数目,包括:
[0225] 针对所述预设时间段中包括的每个子时间段,执行:
[0226] 从预先存储的子时间段与第二时长阈值的对应关系中,查找到所述子时间段对应的第二时长阈值;
[0227] 根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,确定在所述子时间段内接收到的所有资源访问请求消息中,响应时长超过所述第二时长阈值的访问同一URL的资源访问请求消息的数目;
[0228] 将响应时长超过各子时间段对应的第二时长阈值的访问同一URL的资源访问请求消息的数目进行求和,将求和的结果作为所述预设时间段内响应时长超过所述第一时长阈值的访问同一URL的资源访问请求消息的数目。
[0229] 可选地,所述操作还包括:
[0230] 若所述数目小于所述第一阈值,针对所述预设时间段中包括的每个子时间段,执行:
[0231] 根据记录的接收到资源访问请求消息的时刻与响应时长的对应关系,计算所述子时间段内接收到的所有资源访问请求消息的响应时长的平均值;
[0232] 根据所述平均值调整所述子时间段对应的第二时长阈值。
[0233] 可选地,所述响应消息是来自于所述服务器的请求失败消息,所述特征信息为预设时间段内响应消息的数目;
[0234] 所述获取所述响应消息的特征信息,包括:
[0235] 在所述预设时间段内,计算接收到来自于所述服务器的请求失败消息的数目;
[0236] 所述根据所述特征信息确定所述服务器是否受到拒绝服务攻击,包括:
[0237] 若所述数目不小于第二阈值,则确定所述服务器受到拒绝服务攻击。
[0238] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0239] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0240] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0241] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-Only Memory,简称:ROM)、随机存取存储器(英文全称:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0242] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。