防御分布式拒绝服务攻击的方法、装置、客户端及设备
技术领域
本发明涉及网络安全技术领域,尤其涉及防御分布式拒绝服务攻击的方法、装置、客户端及设备。
背景技术
DDOS(DistributionDenialofService,分布式拒绝服务)攻击是一种常见的攻击服务器的手段,攻击者控制大量的傀儡机(攻击客户端),向被攻击的服务器发起大量的业务报文,占用服务器的资源,导致服务器不能良好的服务于正常的客户端。
目前采用的防御DDOS攻击的方法为:截取正常客户端发送的业务报文;运用统计和机器学习手段来自动分析出该客户端发送的业务报文的特征;将分析出的业务报文的特征转换为关键字;确定接收到的业务报文中携带该关键字时,将该业务报文转发给服务器;确定接收到的业务报文中未携带该关键字时,将该业务报文丢弃,从而实现DDOS攻击的防御。
但是,随着网络中业务种类的增多,每种业务对应一种业务报文,此时运用统计和机器学习手段来自动分析出多种业务报文的特征,从而对DDOS攻击进行防御的方式,复杂度高,并且,当业务报文中的特征不明显时,运用统计和机器学习手段来自动分析出多种业务报文的特征的准确度不够高,可能会导致误丢弃常报文的问题。
发明内容
本发明提供一种防御分布式拒绝服务攻击的方法、装置、客户端及设备,用以解决现有技术中运用统计和机器学习手段来自动分析出多种业务报文的特征,从而对DDOS攻击进行防御的方式出现的复杂度高,可能会导致误丢弃常报文的问题。
第一方面,提供一种防御分布式拒绝服务攻击的方法,包括:
截取客户端向服务器发送的业务报文;
根据与所述客户端约定的规则,获取所述业务报文的第一预设字段携带的信息、所述业务报文的固有字段携带的固有信息以及至少一个第二预设字段携带的添加信息;
按照与客户端约定的哈希算法,对所述固有信息以及至少一个添加信息进行哈希处理,得到哈希结果;
确定所述哈希结果与所述第一预设字段携带的信息不同时,丢弃所述业务报文。
结合第一方面,在第一种可能的实现方式中,所述第一预设字段携带的信息为所述客户端按照所述哈希算法对所述固有字段携带的固有信息以及至少一个第二预设字段携带的添加信息进行哈希处理后得到的客户端哈希结果,所述固有字段携带的信息为所述客户端的公网网络协议IP,所述第二预设字段包括两个,分别携带的添加信息为:所述客户端的本地IP地址以及所述服务器最近一次返回给所述客户端的响应报文的响应时间。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,按照与客户端约定的哈希算法,对所述固有字段携带的信息以及至少一个添加信息进行哈希处理,得到哈希结果,具体包括:
将所述客户端的公网IP地址与所述客户端的本地IP地址进行逻辑或运算,得到第一结果;
取第一结果的低两个字节与所述响应时间进行逻辑异或运算,得到第二结果;
将所述第二结果与预设密钥进行异或运算,得到所述哈希结果;
其中,所述预设密钥以及响应时间的长度分别为2字节,所述公网IP地址以及本地IP地址的长度分别为4字节。
结合第一方面的第一种可能的实现方式或者第二种可能的实现方式,在第三中可能的实现方式中,还包括:
确定所述哈希结果与所述第一预设字段携带的信息相同时,计算所述业务报文中的响应时间与所述客户端发送的前一业务报文中的响应时间的时间差;
判断所述时间差是否在预设范围之内;
如果是,将所述业务报文转发至所述服务器;
如果否,丢弃所述业务报文。
第二方面,提供一种防御分布式拒绝服务的方法,包括:
按照与防御设备约定的哈希算法,对业务报文的固有字段携带的信息,以及至少一个添加信息进行哈希处理,得到哈希结果;
根据与所述防御设备约定的规则,将所述哈希结果编辑到所述业务报文的第一预设字段,并将所述至少一个添加信息编辑到所述业务报文的至少一个第二预设字段;
将根据所述约定的规则处理后的业务报文发送给服务器。
结合第二方面,在第一种可能的实现方式中,所述固有字段携带的信息为客户端的公网IP地址,所述添加信息包括:所述客户端的本地IP地址以及所述服务器最近一次返回给所述客户端的响应报文的响应时间。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,按照与防御设备约定的哈希算法,对业务报文的固有字段携带的信息,以及至少一个添加信息进行哈希处理,得到哈希结果,具体包括:
将所述客户端的公网网络协议IP地址与所述客户端的本地IP地址进行逻辑或运算,得到第一结果;
取第一结果的低两个字节与所述响应时间进行逻辑异或运算,得到第二结果;
将所述第二结果与预设密钥进行异或运算,得到所述哈希结果;
其中,所述预设密钥以及响应时间的长度分别为2字节,所述公网IP地址以及本地IP地址的长度分别为4字节。
第三方面,提供一种防御分布式拒绝服务攻击的方法,包括:
服务器接收到客户端发送的业务报文时,提取本地时间;
将所述本地时间携带在响应报文的预设字段,发送给所述客户端。
第四方面,提供一种防御分布式拒绝服务攻击的方法,包括:
截取客户端向服务器发送的业务报文;
根据与客户端约定的规则,获取所述业务报文的第一预设字段携带的信息以及第二预设字段携带的信息;
按照与客户端约定的哈希算法,对第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果;
确定所述哈希结果与所述第一预设字段携带的信息不同时,丢弃所述业务报文。
结合第四方面,在第一种可能的实现方式中,所述第一预设字段携带的信息为所述客户端按照所述哈希算法对所述第二预设字段携带的信息以及预设密钥进行哈希处理后得到的客户端哈希结果,所述第二预设字段为所述业务报文的负载区域中的设定数目个字节组成的字段。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
按照与所述客户端约定的规则,获取所述业务报文的第三预设字段携带的添加信息,所述添加信息为所述客户端发送所述业务报文的时间与标准时间的差值,则,
采用如下方式选取所述业务报文的负载区域中的设定数目个字节:
计算所述差值除以所述负载区域的长度所得的余数;
判断所述余数与所述设定数目之和是否大于所述负载区域的长度;
如果是,从所述负载区域的起始位置选取设定数目个字节;
如果否,从所述负载区域的起始位置偏移所述余数个字节处开始,选取设定数目个字节。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
确定所述哈希结果与所述第一预设字段携带的信息相同时,计算所述差值减去所述客户端发送的前一业务报文中的差值所得的结果,作为时间差;
判断所述时间差是否在预设范围之内;
如果是,将所述业务报文转发至所述服务器;
如果否,丢弃所述业务报文。
结合第四方面,在第四种可能的实现方式中,按照与客户端约定的哈希算法,对第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果,具体包括:
将所述第二预设字段携带的信息与预设密钥进行逻辑异或运算所得的结果确定为所述哈希结果,其中,第二预设字段携带的信息的长度为2个字节,所述预设密钥的长度为2个字节。
第五方面,提供一种防御分布式拒绝服务攻击的方法,包括:
按照与防御设备约定的哈希算法,对业务报文的第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果;
根据与所述防御设备约定的规则,将所述哈希结果编辑到所述业务报文的第一预设字段;
将根据所述约定的规则处理后的业务报文发送给服务器。
结合第五方面,在第一种可能的实现方式中,所述第二预设字段为所述业务报文的负载区域中的设定数目个字节组成的字段。
结合第五方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
按照与所述防御设备约定的规则,将添加信息编辑到所述业务报文的第三预设字段,所述添加信息为客户端发送所述业务报文的时间与标准时间的差值,则,
采用如下方式选取所述业务报文的负载区域中的设定数目个字节:
计算所述差值除以所述负载区域的长度所得的余数;
判断所述余数与所述设定数目之和是否大于所述负载区域的长度;
如果是,从所述负载区域的起始位置选取设定数目个字节;
如果否,从所述负载区域的起始位置偏移所述余数个字节处开始,选取设定数目个字节。
结合第五方面或者第五方面的第一种可能的实现方式或者第二种可能的实现方式,在第三中可能的实现方式中,按照与防御设备约定的哈希算法,对业务报文的第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果,具体包括:
将所述第二预设字段携带的信息与预设密钥进行逻辑异或运算所得的结果确定为所述哈希结果,其中,第二预设字段携带的信息的长度为2个字节,所述预设密钥的长度为2个字节。
第六方面,提供一种防御分布式拒绝服务攻击的装置,包括:
截取单元,用于截取客户端向服务器发送的业务报文;
获取单元,用于根据与所述客户端约定的规则,获取所述业务报文的第一预设字段携带的信息、所述业务报文的固有字段携带的固有信息以及至少一个第二预设字段携带的添加信息;
处理单元,用于按照与客户端约定的哈希算法,对所述固有信息以及至少一个添加信息进行哈希处理,得到哈希结果;
确定单元,用于确定所述哈希结果与所述第一预设字段携带的信息不同时,丢弃所述业务报文。
结合第六方面,在第一种可能的实现方式中,所述第一预设字段携带的信息为所述客户端按照所述哈希算法对所述固有字段携带的固有信息以及至少一个第二预设字段携带的添加信息进行哈希处理后得到的客户端哈希结果,所述固有字段携带的信息为所述客户端的公网网络协议IP,所述第二预设字段包括两个,分别携带的添加信息为:所述客户端的本地IP地址以及所述服务器最近一次返回给所述客户端的响应报文的响应时间。
结合第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理单元具体用于:
将所述客户端的公网IP地址与所述客户端的本地IP地址进行逻辑或运算,得到第一结果;
取第一结果的低两个字节与所述响应时间进行逻辑异或运算,得到第二结果;
将所述第二结果与预设密钥进行异或运算,得到所述哈希结果;
其中,所述预设密钥以及响应时间的长度分别为2字节,所述公网IP地址以及本地IP地址的长度分别为4字节。
结合第六方面的第一种可能的实现方式或者第二种可能的实现方式,在第三种可能的实现方式中,所述确定单元还用于:
确定所述哈希结果与所述第一预设字段携带的信息相同时,计算所述业务报文中的响应时间与所述客户端发送的前一业务报文中的响应时间的时间差;
判断所述时间差是否在预设范围之内;
如果是,将所述业务报文转发至所述服务器;
如果否,丢弃所述业务报文。
第七方面,提供一种防御设备,包括第六方面中的任一装置。
第八方面,提供一种防御分布式拒绝服务的装置,包括:
处理单元,用于按照与防御设备约定的哈希算法,对业务报文的固有字段携带的信息,以及至少一个添加信息进行哈希处理,得到哈希结果;
编辑单元,用于根据与所述防御设备约定的规则,将所述哈希结果编辑到所述业务报文的第一预设字段,并将所述至少一个添加信息编辑到所述业务报文的至少一个第二预设字段;
发送单元,用于将根据所述约定的规则处理后的业务报文发送给服务器。
结合第八方面,在第一种可能的实现方式中,所述固有字段携带的信息为所述装置的公网IP地址,所述添加信息包括:所述装置的本地IP地址以及所述服务器最近一次返回给所述装置的响应报文的响应时间。
结合第八方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理单元具体用于:
将所述装置的公网网络协议IP地址与所述装置的本地IP地址进行逻辑或运算,得到第一结果;
取第一结果的低两个字节与所述响应时间进行逻辑异或运算,得到第二结果;
将所述第二结果与预设密钥进行异或运算,得到所述哈希结果;
其中,所述预设密钥以及响应时间的长度分别为2字节,所述公网IP地址以及本地IP地址的长度分别为4字节。
第九方面,提供一种客户端,包括第八方面中的任一装置。
第十方面,提供一种防御分布式拒绝服务攻击的装置,包括:
提取单元,用于接收到客户端发送的业务报文时,提取本地时间;
发送单元,用于将所述本地时间携带在响应报文的预设字段,发送给所述客户端。
第十一方面,提供一种防御分布式拒绝服务攻击的装置,包括:
截取单元,用于截取客户端向服务器发送的业务报文;
获取单元,用于根据与客户端约定的规则,获取所述业务报文的第一预设字段携带的信息以及第二预设字段携带的信息;
处理单元,用于按照与客户端约定的哈希算法,对第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果;
确定单元,用于确定所述哈希结果与所述第一预设字段携带的信息不同时,丢弃所述业务报文。
结合第十一方面,在第一种可能的实现方式中,所述第一预设字段携带的信息为所述客户端按照所述哈希算法对所述第二预设字段携带的信息以及预设密钥进行哈希处理后得到的客户端哈希结果,所述第二预设字段为所述业务报文的负载区域中的设定数目个字节组成的字段。
结合第十一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取单元还用于:
按照与所述客户端约定的规则,获取所述业务报文的第三预设字段携带的添加信息,所述添加信息为所述客户端发送所述业务报文的时间与标准时间的差值,则,
所述获取单元还用于:采用如下方式选取所述业务报文的负载区域中的设定数目个字节:
计算所述差值除以所述负载区域的长度所得的余数;
判断所述余数与所述设定数目之和是否大于所述负载区域的长度;
如果是,从所述负载区域的起始位置选取设定数目个字节;
如果否,从所述负载区域的起始位置偏移所述余数个字节处开始,选取设定数目个字节。
结合第十一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述确定单元还用于:
确定所述哈希结果与所述第一预设字段携带的信息相同时,计算所述差值减去所述客户端发送的前一业务报文中的差值所得的结果,作为时间差;
判断所述时间差是否在预设范围之内;
如果是,将所述业务报文转发至所述服务器;
如果否,丢弃所述业务报文。
结合第十一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理单元,具体用于:
将所述第二预设字段携带的信息与预设密钥进行逻辑异或运算所得的结果确定为所述哈希结果,其中,第二预设字段携带的信息的长度为2个字节,所述预设密钥的长度为2个字节。
第十二方面,提供一种防御设备,包括第十一方面中的任一装置。
第十三方面,提供一种防御分布式拒绝服务攻击的装置,包括:
处理单元,用于按照与防御设备约定的哈希算法,对业务报文的第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果;
编辑单元,用于根据与所述防御设备约定的规则,将所述哈希结果编辑到所述业务报文的第一预设字段;
发送单元,用于将根据所述约定的规则处理后的业务报文发送给服务器。
结合第十三方面,在第一种可能的实现方式中,所述第二预设字段为所述业务报文的负载区域中的设定数目个字节组成的字段。
结合第十三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述编辑单元还用于:
按照与所述防御设备约定的规则,将添加信息编辑到所述业务报文的第三预设字段,所述添加信息为所述装置发送所述业务报文的时间与标准时间的差值,则,
所述编辑单元用于采用如下方式选取所述业务报文的负载区域中的设定数目个字节:
计算所述差值除以所述负载区域的长度所得的余数;
判断所述余数与所述设定数目之和是否大于所述负载区域的长度;
如果是,从所述负载区域的起始位置选取设定数目个字节;
如果否,从所述负载区域的起始位置偏移所述余数个字节处开始,选取设定数目个字节。
结合第十三方面的第一种可能的实现方式或者第二种可能的实现方式,在第三种可能的实现方式中,所述处理单元具体用于:
将所述第二预设字段携带的信息与预设密钥进行逻辑异或运算所得的结果确定为所述哈希结果,其中,第二预设字段携带的信息的长度为2个字节,所述预设密钥的长度为2个字节。
第十四方面,提供一种客户端,包括第十三方面中的任一装置。
利用本发明提供的防御分布式拒绝服务攻击的方法、装置、客户端及设备方法,具有以下有益效果:防御设备按照预先与客户端约定的规则,获取业务报文的的第一预设字段携带的信息、至少一个第二预设字段携带的固有信息和添加信息,并按照与客户端约定的哈希算法,对固有信息和添加信息进行哈希处理后,再与第一预设字段携带的信息进行比较,根据比较结果确定是否丢弃该业务报文,从而实现了防御DDOS攻击的目的,相比于现有技术中的运用统计和机器学习手段来自动分析出多种业务报文的特征来防御DDOS攻击的方式,本发明实施例中的防御设备由于预先与客户端约定了规则和哈希算法,不需要统计各种业务报文中的特征,实现复杂度相对较低,误丢弃非攻击报文(正常报文)的概率较小。
附图说明
图1为本发明实施例提供的防御分布式拒绝服务攻击的方法流程图之一;
图2为本发明实施例提供的业务报文的格式示意图之一;
图3为本发明实施例提供的进行哈希处理的方法流程图之一;
图4为本发明实施例提供的防御分布式拒绝服务攻击的方法流程图之二;
图5为本发明实施例提供的防御分布式拒绝服务攻击的方法流程图之三;
图6为本发明实施例提供的进行哈希处理的方法流程图之二;
图7为本发明实施例提供的防御分布式拒绝服务攻击的方法流程图之四;
图8为本发明实施例提供的防御分布式拒绝服务攻击的方法流程图之五;
图9为本发明实施例提供的选取业务报文的负载区域中的设定数目个字节的方法流程图之一;
图10为本发明实施例提供的业务报文的格式示意图之二;
图11为本发明实施例提供的防御分布式拒绝服务攻击的方法流程图之六;
图12为本发明实施例提供的防御分布式拒绝服务攻击的方法流程图之七;
图13为本发明实施例提供的选取业务报文的负载区域中的设定数目个字节的方法流程图之二;
图14为本发明实施例提供的防御分布式拒绝服务攻击的装置示意图之一;
图15为本发明实施例提供的防御分布式拒绝服务的装置示意图之二;
图16为本发明实施例提供的防御分布式拒绝服务攻击的装置之三;
图17为本发明实施例提供的防御分布式拒绝服务攻击的装置之四;
图18为本发明实施例提供的防御分布式拒绝服务攻击的装置之五。
具体实施方式
下面结合附图和实施例对本发明提供的防御分布式拒绝服务攻击的方法、装置及设备进行更详细地说明。
实施例一
本发明实施例提供一种防御分布式拒绝服务攻击的方法,如图1所示,包括:
步骤101,截取客户端向服务器发送的业务报文。
具体的,防御DDOS攻击的设备(防御设备)截取客户端向服务器发送的业务报文,客户端发送的业务报文为TCP(TransmissionControlProtocol,传输控制协议)或UDP(UserDatagramProtocol,用户数据报协议)格式的报文,包括:TCP请求报文、UDP请求报文以及其他与服务器通信的报文。
步骤102,根据与所述客户端约定的规则,获取所述业务报文的第一预设字段携带的信息、所述业务报文的固有字段携带的固有信息以及至少一个第二预设字段携带的添加信息。
其中,与客户端约定的规则为:针对来自客户端的每个业务报文,获取该业务报文的指定字段中携带的信息,本发明实施例中,获取业务报文的第一预设字段携带的信息、业务报文固有字段携带的固有信息以及至少一个第二预设字段携带的添加信息。其中,固有字段表示公有协议中规定的业务报文中的字段,固有信息为公有协议中规定的业务报文中需携带的信息;第一预设字段和至少一个第二预设字段为可以为新添加的字段,也可以为业务报文中的可编辑字段,优选地,第一预设字段和至少一个第二预设字段为业务报文的负载区域中的字段,进一步地,第一预设字段和至少一个第二预设字段按照设定顺序从业务报文的负载区域的末端开始依次排列,第一预设字段和各个第二预设字段在负载区域中的先后顺序不限,只要防御设备和客户端预先约定第一预设字段和各个第二预设字段在负载区域中的顺序即可,比如,第二预设字段包括两个,第一预设字段和两个第二预设字段的排列顺序为:其中一个第二预设字段、第一预设字段、另一第二预设字段,这三个预设字段相邻,所述其中一个第二预设字段位于负载区域的末尾、第一预设字段位于其中一个第二预设字段之前、另一第二预设字段位于第一预设字段之前。本发明实施例提供的业务报文的格式如图2所示,其中,以太头、IP头和TCP/UDP头对应的字段均为业务报文的固有字段,即固有字段携带的内容不会发生变化,而负载区域携带的内容会因业务报文的不同作用而不同。图2中标注了第一预设字段、两个第二预设字段的位置。图2中的第一预设字段和两个第二预设字段的位置只是一种举例,第一预设字段和两个第二预设字段也可位于负载区域的其它位置。
步骤103,按照与客户端约定的哈希算法,对所述固有信息以及至少一个添加信息进行哈希处理,得到哈希结果。
具体的,防御设备和客户端预先约定哈希算法,防御设备获取客户端发送的业务报文中的固有信息和各个添加信息后,按照约定的哈希算法对固有信息和各个添加信息进行哈希处理,得到防御设备侧的哈希结果。
步骤104,确定所述哈希结果与所述第一预设字段携带的信息不同时,丢弃所述业务报文。
具体的,非攻击业务报文中的第一预设字段携带的信息为发送该非攻击业务报文的客户端根据与防御设备约定的哈希算法,对非攻击业务报文中的固有信息和添加信息进行哈希处理后的客户端哈希结果,而攻击报文中的第一预设字段携带的信息为未知信息,因此,防御设备将防御设备侧计算出的哈希结果与业务报文中的第一预设字段携带的信息进行比较,如果防御设备侧的哈希结果与其接收到的业务报文的第一预设字段携带的信息不同,则确定该业务报文为攻击报文,并丢弃该业务报文。
本发明实施例,防御设备按照预先与客户端约定的规则,获取业务报文的的第一预设字段携带的信息、至少一个第二预设字段携带的固有信息和添加信息,并按照与客户端约定的哈希算法,对固有信息和添加信息进行哈希处理后,再与第一预设字段携带的信息进行比较,根据比较结果确定是否丢弃该业务报文,从而实现了防御DDOS攻击的目的,相比于现有技术中的运用统计和机器学习手段来自动分析出多种业务报文的特征来防御DDOS攻击的方式,本发明实施例中的防御设备由于预先与客户端约定了规则和哈希算法,不需要统计各种业务报文中的特征,实现复杂度相对较低,误丢弃非攻击报文(正常报文)的概率较小。
具体的,在防御设备侧,防御设备按照与客户端约定的规则,默认业务报文的第一预设字段携带的信息为所述客户端按照所述哈希算法对所述固有字段携带的固有信息以及至少一个第二预设字段携带的添加信息进行哈希处理后得到的客户端哈希结果,防御设备按照与客户端约定的规则,默认所述固有字段携带的信息为所述客户端的公网IP(InternetProtocol,网络协议),该公网IP位于图2所示的业务报文格式的IP头中,所述第二预设字段包括两个,分别携带的添加信息为:所述客户端的本地IP地址以及所述服务器最近一次返回给所述客户端的响应报文的响应时间。即,无论防御设备截取的业务报文是否为非攻击报文,防御设备在进行步骤104的处理之前,均默认业务报文的第一预设字段携带的信息为所述客户端按照所述哈希算法对所述固有字段携带的固有信息以及至少一个第二预设字段携带的添加信息进行哈希处理后得到的客户端哈希结果、固有字段携带的固有信息为客户端公网IP、两个第二预设字段分别携带的添加信息为客户端的本地IP地址以及所述服务器最近一次返回给所述客户端的响应报文的响应时间。当然,防御设备与客户端也可约定固有字段携带的信息为客户端公网IP之外的信息,添加信息也可为其它信息,这里不做限定。
其中,当客户端第一次向服务器发送业务报文时,该业务报文中携带的所述服务器最近一次返回给所述客户端的响应报文的响应时间的值为0或者其它默认值。
具体的,在添加信息中包括客户端的本地IP和客户端的公网IP时,当确定防御设备当前处理的业务报文为攻击报文时,可通过本地IP确定攻击客户端,而现有技术的业务报文中不携带客户端的本地IP地址,只携带客户端的公网IP地址,在同一NAT(NetworkAddressTranslation,网络地址转换)环境下,多个客户端对应同一公网IP地址,此时,很难将攻击目标定位到具体的客户端。本发明实施例,通过客户端的本地IP地址可以将攻击目标定位到具体的客户端,从而对该攻击客户端进行进一步地限制。
当确定防御设备当前处理的业务报文为攻击报文时,可将该攻击报文中携带的客户端的公网IP、客户端的本地IP添加到黑名单中,针对该黑名单中的每个客户端,设置该客户端在黑名单中的剩余时间,当该剩余时间为0时,将该客户端的公网IP和本地IP从黑名单中清除。具体的,黑名单建立后,针对每个业务报文,先查找黑名单中是否存在发送该业务报文的客户端,如果存在,则直接丢弃该业务报文,并将发送该业务报文的客户端在黑名单中的剩余时间置为最大值;如果不存在,则针对该业务报文执行图1提供的防御DDOS攻击的过程。
优选地,当防御设备与客户端约定:所述固有字段携带的信息为所述客户端的公网IP,所述第二预设字段包括两个,分别携带的添加信息为:所述客户端的本地IP地址以及所述服务器最近一次返回给所述客户端的响应报文的响应时间时,则步骤103按照与客户端约定的哈希算法,对所述固有字段携带的信息以及至少一个添加信息进行哈希处理,得到哈希结果,如图3所示,具体包括:
步骤201,将所述客户端的公网IP地址与所述客户端的本地IP地址进行逻辑或运算,得到第一结果。
具体的,客户端的公网IP和本地IP的长度为4字节,则,业务报文的第一预设字段的长度为4字节,携带本地IP的第二预设字段的长度也为4字节。由于业务报文中的信息以二进制字符串形式呈现,因此,将所述客户端的公网IP地址与所述客户端的本地IP地址进行逻辑或运算,具体为,将客户端的公网IP地址对应的二进制字符串与客户端的本地IP地址对应的二进制字符串进行逻辑或运算,得到的第一结果也以二进制字符串的形式呈现。
步骤202,取第一结果的低两个字节与所述响应时间进行逻辑异或运算,得到第二结果。
具体的,第一结果的长度为4字节,取该第一结果的低两个字节与响应时间进行逻辑异或运算,该响应时间为服务器最近一次返回给客户端的响应报文的响应时间,该响应时间的长度为2字节,具体将第一结果的低两个字节对应的二进制字符串与响应时间对应的二进制字符串进行逻辑异或运算,得到第二结果,第二结果以二进制字符串的形式呈现。
步骤203,将所述第二结果与预设密钥进行异或运算,得到所述哈希结果。
具体的,第二结果的长度为2字节,预设密钥的长度也为2字节,则,将第二结果对应的二进制字符串和预设密钥对应的二进制字符串进行逻辑异或运算得到哈希结果。其中,预设密钥为防御设备和客户端约定的密钥。
本发明实施例提供了具体的哈希算法,该哈希算法为防御设备和客户端预先约定的哈希算法,防御设备通过对获取的固有信息和添加信息进行哈希处理得到防御设备侧的哈希结果。
本发明实施例提供的哈希算法只是一种优选实施方式,防御设备与客户端约定的哈希算法也可以为其它哈希算法,这里不做限定,只要防御设备侧和客户端侧遵循的哈希算法一致即可。
优选地,当业务报文的其中一个第二预设字段携带的添加信息为所述服务器最近一次返回给所述客户端的响应报文的响应时间时,进一步优选地,如图4所示,在确定防御设备计算出的哈希结果与所述第一预设字段携带的信息相同时,具体包括:
步骤301,计算所述业务报文中的响应时间与所述客户端发送的前一业务报文中的响应时间的时间差。
具体的,所述业务报文中的响应时间即该业务报文的其中一个第二预设字段携带的所述服务器最近一次返回给所述客户端的响应报文的响应时间,前一业务报文:防御设备在当前业务报文之前处理的,与当前业务报文相邻的非攻击业务报文。具体的,业务报文中的响应时间为服务器发送响应报文的时间与标准时间的差值,该响应时间的单位为秒。因此,步骤301中计算出的时间差的单位为秒。
步骤302,判断所述时间差是否在预设范围之内,如果是,执行步骤303,否则,执行步骤304。
具体的,该预设范围可根据实际场景设定,本发明实施例中不对该预设范围进行限定,优选地,当时间差T大于-60且小于60时,确定该时间差T在预设范围之内,否则,确定该时间差T不再预设范围之内,即,该预设范围优选为(-60,60)。
步骤303,将所述业务报文转发至所述服务器。
步骤304,丢弃所述业务报文。
具体的,当步骤301中的时间差在预设范围内时,确定当前的业务报文不是回放报文攻击,当步骤301中的时间差不在预设范围之内时,确定当前的业务报文为回放攻击报文。利用本发明实施例,不仅可以防御DDOS攻击,还可防止回放报文攻击。
其中,步骤302只是一种判断是否丢弃业务报文的方式,也可采用如下方式判断是否丢弃业务报文:假设业务报文中的响应时间的长度为两个字节,当前业务报文中的响应时间为A1,客户端发送的前一业务报文中的响应时间为A1,当A1大于A2,且,A1-A2<B时,执行步骤303,否则,执行步骤304;当A1小于A2,且,C+A1-A2<B时,执行步骤303,否则,执行步骤304。其中,B为设定的时间阈值,C为0xffff对应的十进制数。
实施例二
图1提供的实施例是基于防御设备侧对本发明实施例提供的防御分布式拒绝服务攻击的方法进行的说明,下面基于客户端侧对本发明实施例提供的防御分布式拒绝服务攻击的方法进行详细说明。
与图1提供的实施例相对应,本发明实施例还提供一种防御分布式拒绝服务的方法,如图5所示,包括:
步骤401,按照与防御设备约定的哈希算法,对业务报文的固有字段携带的信息,以及至少一个添加信息进行哈希处理,得到哈希结果。
步骤402,根据与所述防御设备约定的规则,将所述哈希结果编辑到所述业务报文的第一预设字段,并将所述至少一个添加信息编辑到所述业务报文的至少一个第二预设字段。
具体的,一个添加信息对应一个第二预设字段。
步骤401和步骤402中关于约定的哈希算法、约定的规则、固有信息、添加信息、固有字段以及第二预设字段的解释说明,参见图1所示的实施例,这里不做赘述。
步骤403,将根据所述约定的规则处理后的业务报文发送给服务器。
具体的,客户端将编辑了哈希结果和添加信息的业务报文发送给服务器,客户端发出的业务报文的目的地址指向了服务器,但,防御设备会截取客户端发送的业务报文。
本发明实施例,客户端按照预先与防御设备约定的哈希算法,对业务报文的固有字段携带的信息,以及至少一个添加信息进行哈希处理,并按照与防御设备约定的规则,分别将哈希结果编辑到业务报文的第一预设字段,并将至少一个添加信息编辑到业务报文的至少一个第二预设字段后,将业务报文发送给服务器,从而使非攻击客户端发送出去的业务报文具有明显的特征,以便于防御设备根据与客户端约定的规则和哈希算法对业务报文进行过滤,使得防御设备不需要统计各种业务报文中的特征,实现复杂度相对较低,误丢弃非攻击报文(正常报文)的概率较小。
优选地,图5提供的实施例中,所述固有字段携带的信息为客户端的公网IP地址,所述添加信息包括:所述客户端的本地IP地址以及所述服务器最近一次返回给所述客户端的响应报文的响应时间。其中,当客户端第一次向服务器发送业务报文时,该业务报文中携带的所述服务器最近一次返回给所述客户端的响应报文的响应时间的值为0或者其它默认值。
优选地,步骤401按照与防御设备约定的哈希算法,对业务报文的固有字段携带的信息,以及至少一个添加信息进行哈希处理,得到哈希结果,如图6所示,具体包括:
步骤501,将所述客户端的公网IP地址与所述客户端的本地IP地址进行逻辑或运算,得到第一结果;
步骤502,取第一结果的低两个字节与所述响应时间进行逻辑异或运算,得到第二结果。
步骤503,将所述第二结果与预设密钥进行异或运算,得到所述哈希结果。
其中,所述预设密钥以及响应时间的长度分别为2字节,所述公网IP地址以及本地IP地址的长度分别为4字节。
具体的,图5对应的两个优选实施例与图1对应的相应优选实施例的具体实施过程类似,这里不做赘述。
实施例三
由于图5提供的实施例中的业务报文中携带服务器最近一次返回给客户端的响应报文的响应时间,但是现有技术中,服务器向客户端返回响应报文时,并不会在响应报文中携带该响应时间,因此,本发明实施例还提供一种防御分布式拒绝服务攻击的方法,如图7所示,包括:
步骤601,服务器接收到客户端发送的业务报文时,提取本地时间。
其中,本地时间为:服务器返回响应报文的时刻对应的秒数与标准时间的差值。步骤601中的本地时间即上述实施例中提及的服务器返回给客户端的响应报文的响应时间。
步骤602,将所述本地时间携带在响应报文的预设字段,发送给所述客户端。
具体的,服务器将步骤601中的本地时间编辑到响应报文的预设字段后,发送给客户端。客户端收到服务器返回的响应报文时,从响应报文的预设字段提取该本地时间,并将该本地时间作为服务器返回给客户端的响应报文的响应时间。
本发明实施例提供的基于服务器侧的防御分布式拒绝服务攻击的方法,为防御设备利用本发明实施例提供的方法进行DDOS攻击的防御提供了前提。
实施例四
本发明实施例还提供一种防御分布式拒绝服务攻击的方法,如图8所示,包括:
步骤701,截取客户端向服务器发送的业务报文。
具体的,防御DDOS攻击的设备(防御设备)截取客户端向服务器发送的业务报文,客户端发送的业务报文为TCP或UDP格式的报文,包括:TCP请求报文、UDP请求报文以及其他与服务器通信的报文。
步骤702,根据与客户端约定的规则,获取所述业务报文的第一预设字段携带的信息以及第二预设字段携带的信息。
具体的,与客户端约定的规则为:针对来自客户端的每个业务报文,获取该业务报文的指定字段中携带的信息,本发明实施例中,获取业务报文的第一预设字段携带的信息以及第二预设字段携带的信息。优选地,第一预设字段和第二预设字段为业务报文的负载区域中的字段,进一步地,第一预设字段位于业务报文的负载区域的末端。
步骤703,按照与客户端约定的哈希算法,对第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果。
具体的,防御设备按照与客户端约定的哈希算法,对第二预设字段携带的信息和与客户端约定的预设密钥进行哈希处理,得到防御设备侧的哈希结果。
步骤704,确定所述哈希结果与所述第一预设字段携带的信息不同时,丢弃所述业务报文。
具体的,非攻击业务报文中的第一预设字段携带的信息为发送该非攻击业务报文的客户端根据与防御设备约定的哈希算法,对非攻击业务报文中的第二预设字段携带的信息和预设密钥进行哈希处理后的客户端哈希结果,而攻击报文中的第一预设字段携带的信息为未知信息,因此,防御设备将防御设备侧计算出的哈希结果与业务报文中的第一预设字段携带的信息进行比较,如果防御设备侧的哈希结果与其接收到的业务报文的第一预设字段携带的信息不同,则确定该业务报文为攻击报文,并丢弃该业务报文。
本发明实施例,防御设备按照预先与客户端约定的规则,获取业务报文的第二预设字段携带的信息,并按照与客户端约定的哈希算法,对第二预设字段携带的信息和预设密钥进行哈希处理后,再与第一预设字段携带的信息进行比较,根据比较结果确定是否丢弃该业务报文,从而实现了防御DDOS攻击的目的,相比于现有技术中的运用统计和机器学习手段来自动分析出多种业务报文的特征来防御DDOS攻击的方式,本发明实施例中的防御设备由于预先与客户端约定了规则和哈希算法,不需要统计各种业务报文中的特征,实现复杂度相对较低,误丢弃非攻击报文(正常报文)的概率较小。
具体的,在防御设备侧,防御设备按照与客户端约定的规则,默认业务报文的第一预设字段携带的信息为所述客户端按照所述哈希算法对业务报文的第二预设字段携带的信息以及预设密钥进行哈希处理后得到的客户端哈希结果;业务报文的第二预设字段为所述业务报文的负载区域中的设定数目个字节组成的字段,此时,业务报文的第二预设字段携带的信息为负载区域中的设定数目个字节对应的信息,进一步地,设定数目个字节对应的信息以二进制字符串形式呈现。
优选地,步骤703按照与客户端约定的哈希算法,对第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果,具体包括:
将所述第二预设字段携带的信息与预设密钥进行逻辑异或运算所得的结果确定为所述哈希结果,其中,第二预设字段的长度为2个字节,所述预设密钥的长度为2个字节。
具体的,第二预设字段携带的信息对应的二进制字符串与预设密钥对应的二进制字符串进行逻辑异或运算,其中,第二预设字段携带的信息的长度为2个字节,此时,第二预设字段的长度为2个字节;预设密钥的长度为2个字节。第二预设字段携带的信息的长度和预设密钥的长度可以但不限定为2个字节。
本发明实施例提供了具体的哈希算法,该哈希算法为防御设备和客户端预先约定的哈希算法,防御设备通过对获取的第二预设字段携带的信息和预设密钥进行哈希处理得到防御设备侧的哈希结果。
本发明实施例提供的哈希算法只是一种优选实施方式,防御设备与客户端约定的哈希算法也可以为其它哈希算法,这里不做限定,只要防御设备侧和客户端侧遵循的哈希算法一致即可。
优选地,当业务报文的第二预设字段为所述业务报文的负载区域中的设定数目个字节组成的字段时,本发明实施例提供的防御分布式拒绝服务攻击的方法,还包括:
按照与所述客户端约定的规则,获取所述业务报文的第三预设字段携带的添加信息,所述添加信息为所述客户端发送所述业务报文的时间与标准时间的差值,则,
如图9所示,采用如下方式选取所述业务报文的负载区域中的设定数目个字节:
步骤801,计算所述差值除以所述负载区域的长度所得的余数。
具体的,根据该差值除以负载区域的长度所得的余数,从负载区域选取设定数目个字节。第三预设字段优选为负载区域中的字段,其中,第三预设字段与第一预设字段在负载区域中的先后顺序不做限定,优选地,第一预设字段位于第三预设字段之前,第三预设字段位于负载区域的末端。添加信息还可以为其它信息,比如客户端的本地IP,这里不做限定。
步骤802,判断所述余数与所述设定数目之和是否大于所述负载区域的长度,如果是,执行步骤803,否则,执行步骤804。
步骤803,从所述负载区域的起始位置选取设定数目个字节。
步骤804,从所述负载区域的起始位置偏移所述余数个字节处开始,选取设定数目个字节。
具体的,步骤801中的余数为负载区域的偏移位置,即,从负载区域的起始位置开始向负载区域的末端偏移余数个字节处,开始选取设定数目个字节,但是,当余数与设定数目之和大于负载区域的长度时,还从负载区域的起始位置开始向负载区域的末端偏移余数个字节处,开始选取设定数目个字节会导致负载区域长度不够的问题,比如,如果余数为10,负载区域的长度为11,设定数目为2时,余数10与设定数目2之和大于负载区域的长度,则从负载区域的起始位置开始选取2个字节;如果余数为10,负载区域的长度为15,设定数目为2时,余数10与设定数目2之和不大于负载区域的长度,则从负载区域的起始位置开始向负载区域的末端偏移10个字节处开始,选择2个字节,即,从负载区域的第10个字节处开始选取2个字节。
本发明实施例,通过动态确定第二预设字段携带的信息,能够提高防御DDOS攻击的准确性。
本发明实施例提供的业务报文的格式如图10所示,图10中标注了第一预设字段和第三预设字段的位置,第二预设字段的位置时动态变化的,因此未标出。图10中的第一预设字段和第三预设字段的位置只是一种举例,第一预设字段和第三预设字段也可位于负载区域的其它位置。
当然,设定数目个字节也可以负载区域中固定位置的设定数目个字节,这里不做限定。
当业务报文的第三预设字段携带所述客户端发送所述业务报文的时间与标准时间的差值时,如图11所示,本发明实施例提供的防御分布式拒绝服务攻击的方法,还包括:
步骤901,确定所述哈希结果与所述第一预设字段携带的信息相同时,计算所述差值减去所述客户端发送的前一业务报文中的差值所得的结果,作为时间差。
所述客户端发送的前一业务报文指,在当前业务报文之前发送且与该当前业务报文相邻的一个业务报文。
步骤902,判断所述时间差是否在预设范围之内,如果是,执行步骤903,否则,执行步骤904。
具体的,该预设范围可根据实际场景设定,本发明实施例中不对该预设范围进行限定,优选地,当时间差T大于-60且小于60时,确定该时间差T在预设范围之内,否则,确定该时间差T不再预设范围之内,即,该预设范围优选为(-60,60)。
步骤903,将所述业务报文转发至所述服务器;
步骤904,丢弃所述业务报文。
具体的,当步骤901中的时间差在预设范围内时,确定当前的业务报文不是回放报文攻击,当步骤901中的时间差不在预设范围之内时,确定当前的业务报文为回放攻击报文。利用本发明实施例,不仅可以防御DDOS攻击,还可防止回放报文攻击。
其中,步骤902只是一种判断是否丢弃业务报文的方式,也可采用如下方式判断是否丢弃业务报文:假设业务报文中的响应时间的长度为两个字节,当前业务报文中的响应时间为A1,客户端发送的前一业务报文中的响应时间为A1,当A1大于A2,且,A1-A2<B时,执行步骤903,否则,执行步骤904;当A1小于A2,且,C+A1-A2<B时,执行步骤903,否则,执行步骤904。其中,B为设定的时间阈值,C为0xffff对应的十进制数。
实施例五
图8提供的实施例,是基于防御设备侧对本发明实施例提供的防御分布式拒绝服务攻击的方法进行的说明,下面基于客户端侧对本发明实施例提供的防御分布式拒绝服务攻击的方法进行详细说明。
与图8提供的防御分布式拒绝服务攻击的方法对应,本发明实施例还提供一种防御分布式拒绝服务攻击的方法,如图12所示,包括:
步骤1001,按照与防御设备约定的哈希算法,对业务报文的第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果。
步骤1002,根据与所述防御设备约定的规则,将所述哈希结果编辑到所述业务报文的第一预设字段。
步骤1001和步骤1002中关于约定的哈希算法、约定的规则、第二预设字段携带的信息、第一预设字段携带的信息、第一预设字段以及第二预设字段的解释说明,参见图8所示的实施例,这里不做赘述。
步骤1003,将根据所述约定的规则处理后的业务报文发送给服务器。
具体的,客户端将编辑了哈希结果的业务报文发送给服务器,客户端发出的业务报文的目的地址指向了服务器,但,防御设备会截取客户端发送的业务报文。
本发明实施例,客户端按照预先与防御设备约定的哈希算法,对业务报文的第二预设字段携带的信息和预设密钥进行哈希处理,并按照与防御设备约定的规则,将哈希结果编辑到业务报文的第一预设字段后,将业务报文发送给服务器,从而使非攻击客户端发送出去的业务报文具有明显的特征,以便于防御设备根据与客户端约定的规则和哈希算法对业务报文进行过滤,使得防御设备不需要统计各种业务报文中的特征,实现复杂度相对较低,误丢弃非攻击报文(正常报文)的概率较小。
优选地,所述第二预设字段为所述业务报文的负载区域中的设定数目个字节组成的字段。
优选地,本发明实施例提供的防御分布式拒绝服务攻击的方法,还包括:
按照与所述防御设备约定的规则,将添加信息编辑到所述业务报文的第三预设字段,所述添加信息为客户端发送所述业务报文的时间与标准时间的差值,则,
如图13所示,采用如下方式选取所述业务报文的负载区域中的设定数目个字节:
步骤1101,计算所述差值除以所述负载区域的长度所得的余数;
步骤1102,判断所述余数与所述设定数目之和是否大于所述负载区域的长度,如果是,执行步骤1103,否则,执行步骤1104。
步骤1103,从所述负载区域的起始位置选取设定数目个字节;
步骤1104,从所述负载区域的起始位置偏移所述余数个字节处开始,选取设定数目个字节。
优选地,步骤1001按照与防御设备约定的哈希算法,对业务报文的第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果,具体包括:
将所述第二预设字段携带的信息与预设密钥进行逻辑异或运算所得的结果确定为所述哈希结果,其中,第二预设字段的长度为两个字节,所述预设密钥的长度为两个字节。
具体的,本发明实施例提供的各个优选实施例的具体实施过程与图8提供的实施例中的对应优选实施例类似,这里不做详细阐述。
实施例六
与实施例一对应,本发明实施例提供一种防御分布式拒绝服务攻击的装置,如图14所示,包括:
截取单元1401,用于截取客户端向服务器发送的业务报文;
获取单元1402,用于根据与所述客户端约定的规则,获取所述业务报文的第一预设字段携带的信息、所述业务报文的固有字段携带的固有信息以及至少一个第二预设字段携带的添加信息;
处理单元1403,用于按照与客户端约定的哈希算法,对所述固有信息以及至少一个添加信息进行哈希处理,得到哈希结果;
确定单元1404,用于确定所述哈希结果与所述第一预设字段携带的信息不同时,丢弃所述业务报文。
优选地,所述第一预设字段携带的信息为所述客户端按照所述哈希算法对所述固有字段携带的固有信息以及至少一个第二预设字段携带的添加信息进行哈希处理后得到的客户端哈希结果,所述固有字段携带的信息为所述客户端的公网网络协议IP,所述第二预设字段包括两个,分别携带的添加信息为:所述客户端的本地IP地址以及所述服务器最近一次返回给所述客户端的响应报文的响应时间。
优选地,所述处理单元具体用于:
将所述客户端的公网IP地址与所述客户端的本地IP地址进行逻辑或运算,得到第一结果;
取第一结果的低两个字节与所述响应时间进行逻辑异或运算,得到第二结果;
将所述第二结果与预设密钥进行异或运算,得到所述哈希结果;
其中,所述预设密钥以及响应时间的长度分别为2字节,所述公网IP地址以及本地IP地址的长度分别为4字节。
优选地,所述确定单元还用于:
确定所述哈希结果与所述第一预设字段携带的信息相同时,计算所述业务报文中的响应时间与所述客户端发送的前一业务报文中的响应时间的时间差;
判断所述时间差是否在预设范围之内;
如果是,将所述业务报文转发至所述服务器;
如果否,丢弃所述业务报文。
本发明实施例还提供一种防御设备,包括实施例六提供的任一装置。
实施例七
与实施例二对应,本发明实施例提供一种防御分布式拒绝服务的装置,如图15所示,包括:
处理单元1501,用于按照与防御设备约定的哈希算法,对业务报文的固有字段携带的信息,以及至少一个添加信息进行哈希处理,得到哈希结果;
编辑单元1502,用于根据与所述防御设备约定的规则,将所述哈希结果编辑到所述业务报文的第一预设字段,并将所述至少一个添加信息编辑到所述业务报文的至少一个第二预设字段;
发送单元1503,用于将根据所述约定的规则处理后的业务报文发送给服务器。
优选地,所述固有字段携带的信息为所述装置的公网IP地址,所述添加信息包括:所述装置的本地IP地址以及所述服务器最近一次返回给所述装置的响应报文的响应时间。
优选地,所述处理单元具体用于:
将所述装置的公网网络协议IP地址与所述装置的本地IP地址进行逻辑或运算,得到第一结果;
取第一结果的低两个字节与所述响应时间进行逻辑异或运算,得到第二结果;
将所述第二结果与预设密钥进行异或运算,得到所述哈希结果;
其中,所述预设密钥以及响应时间的长度分别为2字节,所述公网IP地址以及本地IP地址的长度分别为4字节。
本发明实施例还提供一种客户端,包括实施例七提供的任一装置。
实施例八
与实施例三对应,本发明实施例提供一种防御分布式拒绝服务攻击的装置,如图16所示,包括:
提取单元1601,用于接收到客户端发送的业务报文时,提取本地时间;
发送单元1602,用于将所述本地时间携带在响应报文的预设字段,发送给所述客户端。
本发明实施例还提供一种服务器设备,包括图16提供的装置。
实施例九
与实施例四对应,本发明实施例提供一种防御分布式拒绝服务攻击的装置,如图17所示,包括:
截取单元1701,用于截取客户端向服务器发送的业务报文;
获取单元1702,用于根据与客户端约定的规则,获取所述业务报文的第一预设字段携带的信息以及第二预设字段携带的信息;
处理单元1703,用于按照与客户端约定的哈希算法,对第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果;
确定单元1704,用于确定所述哈希结果与所述第一预设字段携带的信息不同时,丢弃所述业务报文。
优选地,所述第一预设字段携带的信息为所述客户端按照所述哈希算法对所述第二预设字段携带的信息以及预设密钥进行哈希处理后得到的客户端哈希结果,所述第二预设字段为所述业务报文的负载区域中的设定数目个字节组成的字段。
优选地,所述获取单元还用于:
按照与所述客户端约定的规则,获取所述业务报文的第三预设字段携带的添加信息,所述添加信息为所述客户端发送所述业务报文的时间与标准时间的差值,则,
所述获取单元还用于:采用如下方式选取所述业务报文的负载区域中的设定数目个字节:
计算所述差值除以所述负载区域的长度所得的余数;
判断所述余数与所述设定数目之和是否大于所述负载区域的长度;
如果是,从所述负载区域的起始位置选取设定数目个字节;
如果否,从所述负载区域的起始位置偏移所述余数个字节处开始,选取设定数目个字节。
优选地,所述确定单元还用于:
确定所述哈希结果与所述第一预设字段携带的信息相同时,计算所述差值减去所述客户端发送的前一业务报文中的差值所得的结果,作为时间差;
判断所述时间差是否在预设范围之内;
如果是,将所述业务报文转发至所述服务器;
如果否,丢弃所述业务报文。
优选地,所述处理单元,具体用于:
将所述第二预设字段携带的信息与预设密钥进行逻辑异或运算所得的结果确定为所述哈希结果,其中,第二预设字段携带的信息的长度为2个字节,所述预设密钥的长度为2个字节。
本发明实施例还提供一种防御设备,包括实施例九提供的任一装置。
实施例十
与实施例五对应,本发明实施例提供一种防御分布式拒绝服务攻击的装置,如图18所示,包括:
处理单元1801,用于按照与防御设备约定的哈希算法,对业务报文的第二预设字段携带的信息以及预设密钥进行哈希处理,得到哈希结果;
编辑单元1802,用于根据与所述防御设备约定的规则,将所述哈希结果编辑到所述业务报文的第一预设字段;
发送单元1803,用于将根据所述约定的规则处理后的业务报文发送给服务器。
优选地,所述第二预设字段为所述业务报文的负载区域中的设定数目个字节组成的字段。
优选地,所述编辑单元还用于:
按照与所述防御设备约定的规则,将添加信息编辑到所述业务报文的第三预设字段,所述添加信息为所述装置发送所述业务报文的时间与标准时间的差值,则,
所述编辑单元用于采用如下方式选取所述业务报文的负载区域中的设定数目个字节:
计算所述差值除以所述负载区域的长度所得的余数;
判断所述余数与所述设定数目之和是否大于所述负载区域的长度;
如果是,从所述负载区域的起始位置选取设定数目个字节;
如果否,从所述负载区域的起始位置偏移所述余数个字节处开始,选取设定数目个字节。
优选地,所述处理单元具体用于:
将所述第二预设字段携带的信息与预设密钥进行逻辑异或运算所得的结果确定为所述哈希结果,其中,第二预设字段携带的信息的长度为2个字节,所述预设密钥的长度为2个字节。
本发明实施例还提供一种客户端,包括实施例十提供的任一装置。
利用本发明提供的防御分布式拒绝服务攻击的方法、装置、客户端及设备方法,具有以下有益效果:防御设备按照预先与客户端约定的规则,获取业务报文的的第一预设字段携带的信息、至少一个第二预设字段携带的固有信息和添加信息,并按照与客户端约定的哈希算法,对固有信息和添加信息进行哈希处理后,再与第一预设字段携带的信息进行比较,根据比较结果确定是否丢弃该业务报文,从而实现了防御DDOS攻击的目的,相比于现有技术中的运用统计和机器学习手段来自动分析出多种业务报文的特征来防御DDOS攻击的方式,本发明实施例中的防御设备由于预先与客户端约定了规则和哈希算法,不需要统计各种业务报文中的特征,实现复杂度相对较低,误丢弃非攻击报文(正常报文)的概率较小。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。