发明内容
本发明实施例的目的是提供一种识别HTTP Flood攻击的方法、装置及系统,有效提高识别利用浏览器而发起的HTTP Flood攻击的准确率。
为实现上述目的,本发明实施例提供了一种识别HTTP Flood攻击的方法,包括:
获得客户端发送的第一HTTP请求信息,在预置时间段内,客户端发送了多个相同的第一HTTP请求信息;
根据所述第一HTTP请求信息,生成重定向HTTP请求信息和Cookie变量,并将所述重定向HTTP请求信息和Cookie变量发送至所述客户端;
判断所述重定向HTTP请求信息是否从所述客户端成功返回,若是,则获取从所述客户端返回的所述Cookie变量,所述Cookie变量为预置时间段内每个第一HTTP请求信息在防御设备所生成的Cookie变量;
在预置时间段内统计同一所述客户端所返回的所述Cookie变量的个数,并判断所述Cooki e变量的个数是否大于预置的阈值,若是,则识别洪水攻击发生。
进一步地,本发明实施例还提供了一种识别HTTP Flood攻击的装置,包括:
获得单元,用于获得客户端发送的第一HTTP请求信息,在预置时间段内,客户端发送了多个相同的第一HTTP请求信息;
处理单元,用于根据所述第一HTTP请求信息,生成重定向HTTP请求信息和Cookie变量,并发送至所述客户端;
第一判断单元,用于判断所述重定向HTTP请求信息是否从所述客户端成功返回;
获取单元,用于当所述第一判断单元判断所述重定向HTTP请求信息从所述客户端成功返回时,获取从所述客户端返回的所述Cookie变量,所述Cookie变量为预置时间段内每个第一HTTP请求信息在防御设备所生成的Cookie变量;
统计单元,用于在预置时间段内统计同一所述客户端所返回的所述 Cookie变量的个数;
第二判断单元,用于判断所述Cookie变量的个数是否大于预置的阈值;
识别单元,用于当所述第二判断单元判断出所述Cookie变量的个数大于所述预置的阈值时,识别HTTP Flood攻击发生。
再进一步地,本发明实施例还提供了一种识别HTTP Flood攻击的系统,包括:
客户端,用于发送第一HTTP请求信息,在预置时间段内,客户端发送了多个相同的第一HTTP请求信息;获得重定向HTTP请求信息和Cooki e变量;生成包含所述Cookie变量的第二HTTP请求信息发送至防御设备;
防御设备,用于获得客户端发送的第一HTTP请求信息;根据所述第一HTTP请求信息,生成重定向HTTP请求信息和Cookie变量,并发送至所述客户端;根据所接收的第二HTTP请求信息判断所述重定向HTTP请求信息是否从所述客户端成功返回,若是,则获取从所述客户端返回的所述Cookie变量,所述Cookie变量为预置时间段内每个第一HTTP请求信息在防御设备所生成的Cookie变量;在预置时间段内统计同一所述客户端所返回的所述Cookie变量的个数,并判断所述Cookie变量的个数是否大于预置的阈值,若是,则识别洪水攻击发生。
由以上技术方案可知,本发明实施例的HTTP Flood攻击识别方法、装置及系统,提供了一种HTTP Flood攻击的识别方式,通过在预置时间段内统计重定向HTTP请求信息成功后,从虚拟路径下获取的客户端返回的Cookie变量个数,若Cookie变量的个数大于预置的阈值时,则识别洪水攻击发生的技术方案,利用Cookie变量可对应唯一客户端、且每次都返回所有第一HTTP请求信息所对应Cookie变量的特性,方便防护设备在预置时间段内统计同一客户端所返回的cookie变量的个数,实现了能准确定位发起洪水攻击的客户端,以及能有效识别利用浏览器而发起的洪水攻击,具有误判率低的特点。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明识别HTTP Flood攻击的方法实施例的流程图。如图1所示,本实施例识别HTTP Flood攻击的方法包括:
步骤101、获得客户端发送的第一HTTP请求信息;
在预置时间段内,客户端发送了多个相同的第一HTTP请求信息,预置时间段可根据具体情况而设置,在本实施例中可设置为5秒,防护设备获得客户端发送的第一HTTP请求信息。
步骤102、根据第一HTTP请求信息,生成重定向HTTP请求信息和Cookie变量,并将重定向HTTP请求信息和Cookie变量发送至客户端;
对于防护设备所获得的每一个第一HTTP请求信息,防御设备都对其进行重定向,具体地,以第一HTTP请求信息“http://www.huawei.com/index.html”为例,则防御设备根据该第一HTTP请求信息的特征值进行编码以生成VDIR(Virtual Directory,虚拟路径),并将该第一HTTP请求信息重定向至VDIR下,以生成重定向HTTP请求信息http://www.huawei.com/VDIR/index.html。
同时,根据每一个第一HTTP请求信息,对应生成一个Cookie变量,其中,可将VDIR作为Cookie变量的路径标识,将客户端发送多个相同第一HTTP请求信息的预置时间段作为Cookie变量的生存周期;进一步地,Cookie变量具体可为RC_i,其RC_i中的i可为任意正整数,在本实施例可设其范围为1~100,则i为1~100中的任意正整数,并且同时将重定向HTTP请求信息和Cookie变量RC_i发送至客户端,由客户端保存,由于在预置时间段内客户端所发送的多个第一HTTP请求信息是相同的,因此所生成的VDIR是相同,即对应每一个第一HTTP请求信息的Cookie变量的路径标识是相同的,所以在客户端每一个对应第一HTTP请求信息所生成的Cookie变量,将被保存在同一路径下,而且由于将客户端发送多个相同第一HTTP请求信息的预置时间段作为Cookie变量的生存周期,因此在预置时间段过后,客户端将不再保存这一批多个第一HTTP请求信息所对应的Cookie变量RC_i,以避免在另一个预置时间段内客户端所保存的多个Cookie变量RC_i与本次预置时间段内客户端所保存的多个Cookie变量RC_i相叠加,造成识别洪水攻击的误判。
这里需说明的是,VDIR包括第一固定明文字符串、第一哈希值和第二哈希值,并且VDIR={第一固定明文字符串|第一哈希值|第二哈希值},其中,第一固定明文字符是防护设备自行设定的,且根据第一HTTP请求信息通过哈希算法而生成第一哈希值,再根据第一固定明文字符串、第一哈希值和预先设定的秘密信息通过哈希算法而生成第二哈希值,该预先设定的秘密信息同样由防护设备自行设定。
进一步地,在生成VDIR时至少满足以下两个要求:
(1)在VDIR下的重定向HTTP请求信息能被路由至服务器;
(2)VDIR需建立在第一HTTP请求信息的最深目录下;
满足要求(1)的目的是,因为重定向HTTP请求信息被路由至服务器时,需通过防护设备,而防护设备可根据重定向HTTP请求信息识别重定向HTTP请求信息是否从客户端成功返回,进而判断是否发生了HTTP Flood攻击;
满足要求(2)的目的是,因为每次重定向HTTP请求信息返回防护设备时,同一第一HTTP请求信息各自在防护设备上所生成的cookie变量,需同时返回给防护设备,而最深目录能有针对性地将同一第一HTTP请求信息各自所对应的cookie变量同时返回给防护设备。
步骤103、判断重定向HTTP请求信息是否从客户端成功返回,若是,则获取从客户端返回的Cookie变量;
在客户端没有进行HTTP Flood攻击时,根据HTTP的规定,客户端获取重定向HTTP请求信息后,会再次发送第二HTTP请求信息,若防御设备所获得到的第二HTTP请求信息正是之前该防御设备向客户端所发送的重定向HTTP请求信息,则重定向HTTP请求信息从客户端成功返回;
防御设备获得客户端返回的第二HTTP请求信息,第二HTTP请求信息的VDIR至少包括第二固定明文字符串;且根据第二HTTP请求信息通过哈希算法生成第三哈希值;再根据第二固定明文字符串、第三哈希值和预先设定的秘密信息通过哈希算法而生成第四哈希值;若第二固定明文字符串和第一固定明文字符串相等、第三哈希值和第一哈希值相等、且第四哈希值与第二哈希值相等,则确定重定向HTTP请求信息从客户端成功返回;这时从VDIR下可获取从客户端返回的Cookie变量RC_i,这里所获取的RC_i是VDIR下的所有RC_i,也就是在预置时间段内每个第一HTTP请求信息在防御设备所生成的RC_i;
因为cookie变量可对应唯一客户端,且在防护设备生成后并不占用防护设备的存储资源,而是发送给客户端由客户端存储;当防御设备判断对应于本次第一HTTP请求信息的重定向HTTP请求信息从客户端成功返回时,之前第一HTTP请求信息各自所对应的cookie变量可同时从客户端返回给防护设备,且cookie变量都保存在VDIR下,例如客户端发送第一个第一HTTP请求信息,第一个第一HTTP请求信息对应RC_1,当第一个第一HTTP请求信息所对应的重定向HTTP请求信息成功返回时,从VDIR下可获取客户端返回给防 御设备的RC_1,接着客户端发送第二个第一HTTP请求信息,第二个第一HTTP请求信息对应RC_2,则当第二个第一HTTP请求信息所对应的重定向HTTP请求信息成功返回时,从VDIR下可获取客户端返回给防御设备的RC_1和RC_2;上述cookie变量的特性实现了节省防护设备存储资源的目的,并方便防护设备在预置时间段内从VDIR下获取并统计同一客户端所返回的cookie变量的个数。
步骤104、统计Cookie变量的个数,并判断Cookie变量的个数是否大于预置的阈值,若是,则识别HTTP Flood攻击发生。
防御设备对所获得的Cookie变量RC_i的个数进行统计,本实施例中假设经统计后,在预置时间段内Cookie变量RC_i有30个,具体地,30个Cookie变量RC_i可以为全部RC_1~RC_100中100个Cookie变量RC_i中任意连续或不连续的30个Cookie变量RC_i,进一步地,防御设备设定预置的阈值为20,若经判断Cookie变量的个数为30个而大于预置的阈值20,则识别客户端正在进行HTTP Flood攻击。
本实施例所提供的识别HTTP Flood攻击的方法,通过在预置时间段内统计重定向HTTP请求信息成功后,从VDRI下获取的客户端返回的Cookie变量个数,若Cookie变量的个数大于预置的阈值时,则识别HTTP Flood攻击发生的技术方案,利用Cookie变量可对应唯一客户端、且每次都返回所有第一HTTP请求信息所对应Cookie变量的特性,方便防护设备在预置时间段内统计同一客户端所返回的cookie变量的个数,实现了能准确定位发起HTTPFlood攻击的客户端,以及能有效识别利用浏览器而发起的HTTP Flood攻击,具有误判率低的特点。
图2为本发明识别HTTP Flood攻击的方法实施例的信令图。如图2所示,本实施例识别HTTP Flood攻击的方法包括:
201、在预置时间段内,客户端发送多个相同的第一HTTP Flood请求信息,其中,该预置时间段可设为5秒;
202、防御设备获得客户端发送的每一个第一HTTP请求信息,并根据客户端发送的每一个第一HTTP请求信息的特征值进行编码生成VDIR,该VDIR包括第一固定明文字符串、第一哈希值和第二哈希值,进一步地,VDIR={第一固定明文字符串|第一哈希值|第二哈希值},其中,第一固定明文字符是防护设备自行设定的,且根据第一HTTP请求信息通过哈希算法而生成第一哈希值,再根据第一固定明文字符串、第一哈希值和预先设定的秘密信息通过哈希算法而生成第二哈希值,预先设定的秘密信息同样由防护设备自行设定,根据该VDIR,以生成重定向HTTP请求信息,同时将该VDIR作为Cookie变量的路径标识、并将预置时间段作为Cookie变量的生存周期,以生成对应每个第一HTTP请求信息的Cookie变量RC_i,并将重定向HTTP请求信息和Cookie变量RC_i发送至客户端;
203、客户端在获得重定向HTTP请求信息和Cookie变量RC_i后,将Cookie变量RC_i保存在VDIR下,并发送第二HTTP请求信息。
这里需说明的是,在客户端没有进行HTTP Flood攻击时,根据HTTP的规定,客户端获得重定向HTTP请求信息后,会发送第二HTTP请求信息,若防御设备所获得到的第二HTTP请求信息正是之前防御设备向客户端所发送重定向HTTP请求信息,则重定向HTTP请求信息从客户端成功返回;
204、防御设备获得客户端发送的第二HTTP请求信息,第二HTTP请求信息的VDIR至少包括第二固定明文字符串;且根据第二HTTP请求信息通过哈希算法生成第三哈希值;再根据第二固定明文字符串、第三哈希值和预先设定的秘密信息通过哈希算法而生成第四哈希值;若第二固定明文字符串和第一固定明文字符串相等、第三哈希值和第一哈希值相等、且第四哈希值与第二哈希值相等,则确定重定向HTTP请求信息成功返回,执行步骤206;若否,则重定向HTTP请求信息没有从成功返回,执行步骤205;
通过上述步骤204可以判断重定向HTTP请求信息是否成功;
205、防御设备向服务器发送TCP断开信息,通知服务器主动断开先前与 客户端所建立的TCP连接,以防止客户端通过TCP连接对服务器进行HTTPFlood攻击;
206、根据成功返回的重定向HTTP请求信息的VDIR,从VDIR下获取客户端返回给防护设备的Cookie变量RC_i,并对Cookie变量RC_i的个数进行统计;
207、判断Cookie变量RC_i的个数是否大于预置的阈值,若是,则识别客户端正在进行HTTP Flood攻击,并执行208;若否,则识别客户端没有进行HTTP Flood攻击,执行209;
208、防御设备向服务器发送TCP断开信息,通知服务器主动断开先前与客户端所建立的TCP连接,以防止客户端通过TCP连接对服务器进行HTTPFlood攻击;
209、防御设备将重定向HTTP请求信息还原成HTTP请求信息,并将第一HTTP请求信息发送至服务器,完成客户端对服务器的访问。
本实施例所提供的识别HTTP Flood攻击的方法,通过在预置时间段内统计重定向HTTP请求信息成功后,从VDRI下获取的客户端返回的Cookie变量个数,若Cookie变量的个数大于预置的阈值时,则识别HTTP Flood攻击发生的技术方案,利用Cookie变量可对应唯一客户端、且每次都返回所有第一HTTP请求信息所对应Cookie变量的特性,方便防护设备在预置时间段内统计同一客户端所返回的cookie变量的个数,实现了能准确定位发起HTTPFlood攻击的客户端,以及能有效识别利用浏览器而发起的HTTP Flood攻击,具有误判率低的特点。
图3为本发明识别HTTP Flood攻击的装置实施例的结构示意图。如图3所示,
本实施例的HTTP Flood攻击识别装主要包括获得单元301,处理单元302、第一判断单元303、获取单元304、统计单元305、第二判断单元306、识别单元307,其中,获得单元301用于在预置时间段内,获得客户端发送 的第一HTTP请求信息;处理单元302用于根据第一HTTP请求信息的特征值进行编码生成VDIR,其中VDIR包括第一固定明文字符串、第一哈希值和第二哈希值,且VDIR={第一固定明文字符串FLAG|第一哈希值|第二哈希值},并将第一HTTP请求信息重定向至VDIR下生成重定向HTTP请求信息,进一步根据第一HTTP请求信息生成Cookie变量,并发送重定向HTTP请求信息和Cookie变量至客户端;第一判断单元303获得客户端发送的第二HTTP请求信息后,第二HTTP请求信息的VDIR至少包括第二固定明文字符串;且根据第二HTTP请求信息通过哈希算法生成第三哈希值,再根据第二固定明文字符串、第三哈希值和预先设定的秘密信息通过哈希算法而生成第四哈希值,若第二固定明文字符串和第一固定明文字符串相等、第三哈希值和第一哈希值相等、且第四哈希值与第二哈希值相等,则判断重定向HTTP请求信息从客户端成功返回;获取单元304,在第一判断单元303判断重定向HTTP请求信息从客户端成功返回时,从VDIR下获取客户端返回的所有Cookie变量RC_i;并由统计单元305统计Cookie变量RC_i的个数;第二判断单元306,判断Cookie变量的个数是否大于预置的阈值;识别单元307,在当第二判断单元306判断Cookie变量的个数大于阈值时,识别HTTP Flood攻击发生。
该HTTP Flood攻击识别装置还包括还原单元308,且还原单元308用于当第二判断单元306判断Cookie变量的个数不大于预置的阈值时,将重定向HTTP请求信息还原成第一HTTP请求信息,并将第一HTTP请求信息发送至服务器,使客户端成功访问服务器。
本实施例所提供的识别HTTP Flood攻击的装置,通过统计单元在预置时间段内统计由获取单元从VDRI下获取的客户端返回的Cookie变量个数,并且当第二判断单元判断Cookie变量的个数大于预置的阈值时,由识别单元识别HTTP Flood攻击发生的技术方案,利用Cookie变量可对应唯一客户端、且每次都返回所有第一HTTP请求信息所对应Cookie变量的特性,方便防护设备在预置时间段内统计同一客户端所返回的cookie变量的个数,实现了能 准确定位发起HTTP Flood攻击的客户端,以及能有效识别利用浏览器而发起的HTTP Flood攻击,具有误判率低的特点。
这里需说明书的是,本实施例识别HTTP Flood攻击的装置对识别HTTPFlood攻击的具体方法,如上述识别HTTP Flood攻击方法实施例中的具体描述,再次不再赘述。
图4为本发明识别HTTP Flood攻击的系统实施例的结构示意图。如图4所示,本实施例识别HTTP Flood攻击的系统包括客户端41、防御设备42,
其中,客户端41发送第一HTTP请求信息,获得重定向HTTP请求信息和Cookie变量;生成包含Cookie变量的第二HTTP请求信息发送至防御设备42;
防御设备42获得客户端41发送的第一HTTP请求信息;根据第一HTTP请求信息,生成重定向HTTP请求信息和Cookie变量,并发送至客户端41;根据所接收的第二HTTP请求信息判断重定向HTTP请求信息是否从客户端41成功返回,若是,则获取从客户端41返回的Cookie变量;统计Cookie变量的个数,并判断Cookie变量的个数是否大于预置的阈值,若是,则识别HTTPFlood攻击发生。
进一步地,防御设备42还用于当Cookie变量的个数不大于预置的阈值时,则将重定向HTTP请求信息还原成第一HTTP请求信息,并将第一HTTP请求信息发送至服务器。
本实施例所提供的识别HTTP Flood攻击的系统,通过防御设备在预置时间段内统计重定向HTTP请求信息成功后,从VDRI下获取的客户端返回的Cookie变量个数,若Cookie变量的个数大于预置的阈值时,则识别HTTPFlood攻击发生的技术方案,利用Cookie变量可对应唯一客户端、且每次都返回所有第一HTTP请求信息所对应Cookie变量的特性,方便防护设备在预置时间段内统计同一客户端所返回的cookie变量的个数,实现了能准确定位发起HTTP Flood攻击的客户端,以及能有效识别利用浏览器而发起的HTTPFlood攻击,具有误判率低的特点。
需要说明的是,该识别HTTP Flood攻击的系统中防御设备42可以包括如上述识别HTTP Flood攻击的装置实施例中的模块和单元,并且对识别HTTP Flood攻击的具体方法如上述识别HTTP Flood攻击的方法实施例中的具体描述所述,在此不在赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(ROM)、随机存取器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。