CN102571547B - 一种http流量的控制方法及装置 - Google Patents
一种http流量的控制方法及装置 Download PDFInfo
- Publication number
- CN102571547B CN102571547B CN201010611982.XA CN201010611982A CN102571547B CN 102571547 B CN102571547 B CN 102571547B CN 201010611982 A CN201010611982 A CN 201010611982A CN 102571547 B CN102571547 B CN 102571547B
- Authority
- CN
- China
- Prior art keywords
- client
- web
- http
- http request
- web server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种HTTP流量的控制方法及装置;方法包括:根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览;仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器。本发明能够对异常HTTP流量进行限流,同时允许正常Web业务访问HTTP流量正常通过,从而最大限度保障正常用户的Web访问服务质量。
Description
技术领域
本发明涉及网络安全领域,具体涉及一种HTTP流量的控制方法及装置。
背景技术
HTTP(Hyper Text Transfer Protocol,超文本传输协议)是目前互联网上应用最为广泛的协议之一。作为互联网主要业务之一的Web业务目前得到了极速发展,它给人们获取信息带来了极大便利的同时,也成为了黑客最关注的攻击目标。目前,对Web站点的攻击方法多种多样,传统的攻击包括基于传输层的攻击方式(包括SYN Flood攻击和空连接攻击),而目前见得最多的则为基于应用层的攻击方式,包括HTTP Flood攻击、CC攻击,这些基于应用层的Web攻击所产生的HTTP流量大多数符合HTTP协议规范,传统基于特征检测的网络安全设备无法对其进行过滤,而Web服务器要处理这些异常HTTP流量则需要消耗大量的计算资源,一旦这些HTTP攻击流量达到一定水平,则可能耗尽Web服务器所有资源,使得Web服务器无法对正常的Web服务请求进行响应,从而造成拒绝服务攻击。本文中,为叙述方便,称这些符合HTTP协议规范的由攻击者发出的HTTP流量为异常HTTP流量。
目前,对异常HTTP流量的检测方法主要为基于统计的方法,它需要根据受保护的Web服务器的情况设置检测阈值。在防御异常HTTP流量时,目前大多数方法都无法区分正常Web业务访问HTTP流量和异常HTTP流量,因而只能采取统一对待的方法对HTTP请求进行处理,比如限流等。这种异常HTTP流量防御方法在实际应用场景中应用效果并不理想。
发明内容
本发明要解决的技术问题是提供一种HTTP流量的控制方法及装置,能够对异常HTTP流量进行限流,同时允许正常Web业务访问HTTP流量正常通过,从而最大限度保障正常用户的Web访问服务质量。
为了解决上述问题,本发明提供了一种HTTP流量的控制方法,包括:
根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览;
仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器。
优选地,所述根据Web客户端发往Web服务器的HTTP流量,判定Web客户端为自动工具或人工浏览的步骤前还包括:
对访问所述Web服务器的各Web客户端进行标识;
对于携带正确的客户端标识的HTTP请求,对发出该HTTP请求的Web客户端进行所述根据该Web客户端发往Web服务器的HTTP流量,判定该Web客户端为自动工具或人工浏览的步骤。
优选地,所述对访问所述Web服务器的各Web客户端进行标识的步骤包括:
对于每个发给所述Web服务器的HTTP请求,检查其Cookie中是否携带了正确的客户端标识;所述正确的客户端标识是指:所存储的网络地址和客户端标识对中,携带该客户端标识的HTTP请求的源网络地址对应的客户端标识,与该客户端标识相同;
对于没有携带客户端标识的HTTP请求,为发出该HTTP请求的Web客户端随机生成全局唯一的客户端标识,存储该Web客户端的网络地址和客户端标识对;丢弃该HTTP请求,并向发出该HTTP请求的Web客户端发送一个要求重新提交当前HTTP请求的HTTP重定向消息,所述HTTP重定向消息包含一条将所生成的客户端标识推送到Web客户端的Cookie设置指令。
优选地,所述仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器的步骤前还包括:
监视所述Web服务器的性能,当所述Web服务器性能恶化时,进行所述仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器的步骤;
所述Web服务器性能恶化包括以下情况中的任一种或其任意组合:
单位时间内Web服务器发出的HTTP响应消息数量和进入Web服务器的HTTP请求数量之比小于或等于预先指定阈值;
单位时间内Web服务器对HTTP请求的平均响应时间大于或等于预先指定阈值;
进入Web服务器的HTTP请求的速率大于或等于预先指定阈值。
优选地,所述根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览的步骤包括:
获取一段时间内所述的Web客户端的发出的一系列网页请求,判断各相邻网页请求的时间间隔是否大于或等于一预定的相邻网页请求时间间隔阈值,时间间隔大于或等于预先设定的相邻网页请求时间间隔阈值时,将此时间间隔对应的事件元素ei记为0,否则记为1;将各时间间隔对应的事件元素ei组成一个基本事件序列E;
用所述基本事件序列E分别匹配假设H0和H1,其中H0表示所述Web客户端为人工浏览,H1表示所述Web客户端为自动工具;如果所述基本事件序列E匹配假设H1的程度,与基本事件序列E匹配假设H0的程度之间的差距大于或等于一程度阈值,则判定所述Web客户端为自动工具,否则判定所述Web客户端为手动浏览。
本发明还提供了一种HTTP流量的控制装置,包括:
Web客户端判定模块:用于根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览;
HTTP限流模块,用于仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器。
其特征在于,所述的装置还包括:
HTTP请求鉴别模块,用于对访问所述Web服务器的各Web客户端进行标识;将携带正确的客户端标识的HTTP请求发送给所述Web客户端判定模块和HTTP限流模块。
其特征在于,所述HTTP请求鉴别模块包括:
HTTP请求分类单元,用于对于每个发给所述Web服务器的HTTP请求,检查其Cookie中是否携带了正确的客户端标识;所述正确的客户端标识是指:所存储的网络地址和客户端标识对中,携带该客户端标识的HTTP请求的源网络地址对应的客户端标识,与该客户端标识相同;
HTTP流量标识单元,用于对于没有携带客户端标识的HTTP请求,为发出该HTTP请求的Web客户端随机生成全局唯一的客户端标识,存储该Web客户端的网络地址和客户端标识对,丢弃该HTTP请求;
HTTP请求重定向单元,用于向发出所述没有携带客户端标识的HTTP请求的Web客户端,发送一个要求重新提交当前HTTP请求的HTTP重定向消息,所述HTTP重定向消息包含一条将所生成的客户端标识推送到Web客户端的Cookie设置指令。
其特征在于,所述的装置还包括:
Web服务器性能监控模块,用于监视所述Web服务器的性能,当所述Web服务器性能恶化时,启动所述HTTP限流模块;
所述Web服务器性能恶化包括以下情况中的任一种或其任意组合:
单位时间内Web服务器发出的HTTP响应消息数量和进入Web服务器的HTTP请求数量之比小于或等于预先指定阈值;
单位时间内Web服务器对HTTP请求的平均响应时间大于或等于预先指定阈值;
进入Web服务器的HTTP请求的速率大于或等于预先指定阈值。
其特征在于,所述Web客户端判定模块根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览是指:
所述Web客户端判定模块获取一段时间内所述的Web客户端的发出的一系列网页请求,判断各相邻网页请求的时间间隔是否大于或等于一预定的相邻网页请求时间间隔阈值;当时间间隔大于或等于预先设定的相邻网页请求时间间隔阈值时,将此时间间隔对应的事件元素ei记为0,否则记为1;将各时间间隔对应的事件元素ei组成一个基本事件序列E;用所述基本事件序列E分别匹配假设H0和H1,其中H0表示所述Web客户端为人工浏览,H1表示所述Web客户端为自动工具;如果所述基本事件序列E匹配假设H1的程度,与基本事件序列E匹配假设H0的程度之间的差距大于或等于一程度阈值,则判定所述Web客户端为自动工具,否则判定所述Web客户端为手动浏览。
本发明的技术方案至少具有以下优点:能够区分正常和异常HTTP流量,限流针对异常HTTP流量进行,不影响正常Web业务访问HTTP流量;因此,克服了传统的异常HTTP流量防御方法中不对正常Web业务访问HTTP流量以及异常HTTP流量进行区别处理的缺陷,使得异常HTTP流量防御效果更佳,从而能够在Web服务器受攻击状态下同样能够为正常Web业务访问者提供可接受的Web业务访问服务质量。
本发明的一个优化方案中,Web安全网关通过HTTP请求重定向和分配全局唯一客户端标识的方法对来自不同客户端的HTTP流量进行正确标识,这样,Web安全网关不再依赖于客户端IP地址来标识Web客户端流量,从而能够正确处理位于Web代理以及网络地址转换设备(NAT)之后的Web客户端的流量。
本发明的另一个优化方案持续监控Web服务器的性能变化情况,只有当发现Web服务器性能恶化时才对异常HTTP流量进行过滤,这将大大减轻Web安全网关的计算开销,并且有效提高受保护的Web服务器的服务吞吐率。
本发明的又一优化方案对来自不同Web客户端的HTTP流量进行单独的统计分析,从而能准确的将来自某些Web客户端的HTTP流量判定为自动工具产生的HTTP流量。
附图说明
图1为实施了实施例一的方法的Web安全网关的位置示意图;
图2为实施例一的例子中的流程示意图;
图3为实施例二的HTTP流量的控制装置的示意框图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一,一种HTTP流量的控制方法,可以但不限于用在Web安全网关上,包括:
根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览;
仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器。
也就是说,对于判定为自动工具的Web客户端所产生的HTTP流量,阻止其进入所述Web服务器,比如直接丢弃HTTP请求,或不做处理,直到被新的HTTP请求覆盖;如果判定结果为不确定,则可以采用网络服务质量领域公知的漏桶算法按照预先约定的转发速率将HTTP请求发送给所述Web服务器,实际应用时也可以同样阻止其进入所述Web服务器。
本实施例中,所述HTTP流量包括所述Web客户端发往所述Web服务器的HTTP请求,也包括所述Web服务器返回给所述Web客户端的HTTP响应。
本实施例中,所述根据Web客户端发往Web服务器的HTTP流量,判定Web客户端为自动工具或人工浏览的步骤前还可以包括:
对访问所述Web服务器的各Web客户端进行标识;
对于携带正确的客户端标识的HTTP请求,对发出该HTTP请求的Web客户端(后文也称为正确标识的Web客户端)进行所述根据该Web客户端发往Web服务器的HTTP流量,判定该Web客户端为自动工具或人工浏览的步骤。
相应的,所述方法还可以包括:
对于发出携带不正确客户端标识的HTTP请求的各Web客户端(后文也称为未正确标识的Web客户端),分别以该Web客户端的网络地址为对象跟踪各其发送HTTP请求的速率,当发现某一未标识的Web客户端发送HTTP请求的速率超过预先指定的发送速率阈值时,则在一段时间丢弃由该网络地址所发出的所有HTTP请求。
实际应用时,也可以直接阻止携带不正确客户端标识的HTTP请求进入所述Web服务器。
本实施例的一种实施方式中,所述对访问所述Web服务器的各Web客户端进行标识的步骤具体可以包括:
对于每个发给所述Web服务器的HTTP请求,检查其Cookie中是否携带了正确的客户端标识;
对于没有携带客户端标识的HTTP请求,为发出该HTTP请求的Web客户端随机生成(这样所生成的客户端标识可免于被攻击者猜测)全局唯一的客户端标识,存储该Web客户端的网络地址和客户端标识对;丢弃该HTTP请求,并向发出该HTTP请求的Web客户端发送一个要求重新提交当前HTTP请求的HTTP重定向消息,所述HTTP重定向消息包含一条将所生成的客户端标识推送到Web客户端的Cookie设置指令。
所述正确的客户端标识是指:所存储的网络地址和客户端标识对中,携带该客户端标识的HTTP请求的源网络地址对应的客户端标识,与该客户端标识相同。
也就是说,对接收的每个HTTP请求,检查其Cookie中是否携带了客户端标识:如果Cookie中携带了客户端标识,且该客户端标识和所存储的网络地址和客户端标识对中,发出该HTTP请求的Web客户端的网络地址对应的客户端标识相同,则判断发出该HTTP请求的Web客户端是正确标识的Web客户端;如果不相同,则判断发出该HTTP请求的Web客户端是未正确标识的Web客户端。
这样Web安全网关通过读取HTTP请求中携带的客户端标识就能够准确识别来自不同Web客户端的HTTP流量。
本实施例的另一种实施方式中,所述对访问所述Web服务器的各Web客户端进行标识的步骤具体可以包括:
首先,生成了一个密钥K(比如由Web安全网关在启动时秘密生成);
当需要为某Web客户端生成全局唯一的客户端标识时,为其生成一个随机数R,然后采用安全散列函数对由所述Web客户端的网络地址、随机数R和密钥K拼接而成的数据串进行安全散列,得到安全散列值H1;
将随机数R和安全散列值H1的拼接串作为该Web客户端生成的客户端标识。
所述正确的客户端标识是指:
对该客户端标识中的随机数R,密钥K、以及携带该客户端标识的HTTP请求的源网络地址拼接而成的数据串进行安全散列,得到安全散列值H2;H2和该客户端标识里的H1相等。
上述两种实施方式中:第一种实施方式实现简单,但需要Web安全网关记录所生成的所有客户端标识;第二种实施方式则无需存储所生成的所有客户端标识,但是在验证客户端标识有效性时需要较大的计算量。在具体实施本发明时,可根据情况进行选择。当然,也可以设计其它的客户端标识生成和验证算法。
本实施例中,所述根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览的步骤具体可以包括:
获取一段时间内所述的Web客户端的发出的一系列网页请求,判断各相邻网页请求的时间间隔是否大于或等于一预定的相邻网页请求时间间隔阈值,根据各判断结果是否满足预设条件,来判断所述的Web客户端为自动工具或为人工浏览。
本实施例中,所述根据各判断结果是否满足预设条件,来判断所述的Web客户端为自动工具或为人工浏览的步骤具体可以包括:
时间间隔大于或等于预先设定的相邻网页请求时间间隔阈值时,将此时间间隔对应的事件元素ei记为0,否则记为1;将各时间间隔对应的事件元素ei组成一个基本事件序列E;
用所述基本事件序列E分别匹配假设H0和H1,其中H0表示所述Web客户端为人工浏览,H1表示所述Web客户端为自动工具;如果所述基本事件序列E匹配假设H1的程度,与基本事件序列E匹配假设H0的程度之间的差距大于或等于一程度阈值,则判定所述Web客户端为自动工具,否则判定所述Web客户端为手动浏览。
其中,相邻网页请求时间间隔阈值和程度阈值可根据经验或试验结果进行设置。
本实施例中,所述仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器的步骤前还可以包括:
监视所述Web服务器的性能,当所述Web服务器性能恶化时,进行所述仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器的步骤。
本实施例中,所述Web服务器性能恶化可以但不限于包括以下情况中的任一种或其任意组合:
单位时间内Web服务器发出的HTTP响应消息数量和进入Web服务器的HTTP请求数量之比小于或等于预先指定阈值(可称为HTTP请求服务率);
单位时间内Web服务器对HTTP请求的平均响应时间大于或等于预先指定阈值(可称为Web服务器平均响应时间);
进入Web服务器的HTTP请求的速率大于或等于预先指定阈值(可称为HTTP流量达到速率)。
如图1所示,实施了本实施例的方法的Web安全网关位于Web客户端和受保护的Web应用系统之间。所述Web客户端可能为标准Web浏览器,也可能为自动工具,包括Web爬虫等。Web客户端通过HTTP协议与受保护的Web应用系统进行通信。Web客户端与受保护的Web应用系统之间的通信都通过Web安全网关进行转发。Web安全网关转发来自Web客户端的HTTP请求,并可以直接对HTTP请求进行重定向;此外,Web安全网关转发来自受保护的Web应用系统的HTTP响应消息,并可以在转发HTTP响应消息时对返回给Web客户端的Web页面进行修改。目前,所有标准Web浏览器都支持对HTTP重定向请求的处理,并且大多数实现为自动工具的Web爬虫也支持对HTTP重定向请求的处理。
本实施例的一个例子如图2所示,包括:
步骤1、对访问受保护的Web服务器的各Web客户端进行标识,使得Web安全网关能够正确区分来自不同Web客户端的HTTP流量;
步骤2、对于各正确标识的Web客户端,Web安全网关统计分析其发往受保护的Web服务器的HTTP流量,从而将所述的正确标识的Web客户端判定为自动工具或人工浏览;
步骤3、Web安全网关监控受保护的Web服务器的性能情况,当发现受保护的Web服务器性能恶化时,Web安全网关阻止那些判定为自动工具的Web客户端所产生的HTTP流量进入Web服务器,只允许那些判定为人工浏览Web客户端所产生的HTTP流量进入Web服务器,从而避免了Web服务器受异常HTTP流量的影响。
实施例二,一种HTTP流量的控制装置,可用于安全网关上,如图3所示,包括:
Web客户端判定模块:用于根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览;
HTTP限流模块,用于仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器。
本实施例中,所述Web客户端判定模块的判定结果可以有三种:A)Web客户端为自动工具;B)Web客户端为人工浏览;C)当前行为未知;所述HTTP限流模块根据所述Web客户端判定模块的判定结果,决定对于HTTP请求的下一步动作:如果发出该HTTP请求的Web客户端的判定结果为自动工具,则可以但不限于直接丢弃该HTTP请求;如果判定结果为人工浏览,则将该HTTP请求发送给所述Web服务器。如果当前行为未知,即判定结果为不确定,则可以采用网络服务质量领域公知的漏桶算法按照预先约定的转发速率将HTTP请求发送给所述Web服务器,实际应用时也可以同样阻止其进入所述Web服务器。
本实施例中,所述HTTP流量包括所述Web客户端发往所述Web服务器的HTTP请求,也包括所述Web服务器返回给所述Web客户端的HTTP响应。
本实施例中,所述装置还可以包括:
HTTP请求鉴别模块,用于对访问所述Web服务器的各Web客户端进行标识;将携带正确的客户端标识的HTTP请求发送给所述Web客户端判定模块和HTTP限流模块。
本实施例中,所述HTTP请求鉴别模块具体可以包括:
HTTP请求分类单元,用于对于每个发给所述Web服务器的HTTP请求,检查其Cookie中是否携带了正确的客户端标识;将携带正确的客户端标识的HTTP请求发送给所述Web客户端判定模块和HTTP限流模块;所述正确的客户端标识是指:所存储的网络地址和客户端标识对中,携带该客户端标识的HTTP请求的源网络地址对应的客户端标识,与该客户端标识相同;
HTTP流量标识单元,用于对于没有携带客户端标识的HTTP请求,为发出该HTTP请求的Web客户端随机生成全局唯一的客户端标识,存储该Web客户端的网络地址和客户端标识对,丢弃该HTTP请求;
HTTP请求重定向模块,用于向发出所述没有携带客户端标识的HTTP请求的Web客户端,发送一个要求重新提交当前HTTP请求的HTTP重定向消息,所述HTTP重定向消息包含一条将所生成的客户端标识推送到Web客户端的Cookie设置指令。
本实施例中,所述HTTP请求分类单元是将没有携带客户端标识的HTTP请求发给所述HTTP流量标识单元;还可以用于对于携带不正确客户端标识的HTTP请求,则可以对发出该HTTP请求的各Web客户端,分别以该Web客户端的网络地址为对象跟踪各其发送HTTP请求的速率,当发现某一未标识的Web客户端发送HTTP请求的速率超过预先指定的发送速率阈值时,则在一段时间丢弃由该网络地址所发出的所有HTTP请求。
所述Web客户端判定模块接收到携带正确的客户端标识的HTTP请求后,对发出该HTTP请求的Web客户端,可根据其发往Web服务器的HTTP流量及当前HTTP请求,判定该Web客户端为自动工具或人工浏览。
从上文可见,所述HTTP限流模块发送给所述Web服务器一定是携带正确的客户端标识的HTTP请求;另外,所述HTTP限流模块可以依据客户端标识查询Web客户端行为判定模块输出的判定结果。
本实施例中,所述装置还可以包括:
Web服务器性能监控模块,用于监视所述Web服务器的性能,当所述Web服务器性能恶化时,启动所述HTTP限流模块;
所述Web服务器性能恶化可以但不限于包括以下情况中的任一种或其任意组合:
单位时间内Web服务器发出的HTTP响应消息数量和进入Web服务器的HTTP请求数量之比小于或等于预先指定阈值;
单位时间内Web服务器对HTTP请求的平均响应时间大于或等于预先指定阈值;
进入Web服务器的HTTP请求的速率大于或等于预先指定阈值。
本实施例中,将HTTP请求发送给所述Web服务器时可以但不限于通过Web安全网关的HTTP请求转发模块进行转发;可以但不限于从Web安全网关的HTTP响应转发模块获取HTTP响应。
本实施例中,Web服务器性能监控模块可以但不限于通过监控所述HTTP限流模块发送给Web服务器的HTTP请求,来获知进入Web服务器的HTTP请求的速率、数量等。
所述HTTP限流模块也可以主动查询Web服务器性能模块输出的性能判断结果,如果当前Web服务器性能没有恶化,则直接将接收到的HTTP请求发送给所述Web服务器;如果恶化,则依据接收到的HTTP请求的Cookie中所携带的客户端标识查询Web客户端行为判定模块的判定结果,如果是自动工具的Web客户端所发出的HTTP请求,则直接丢弃该HTTP请求;如果是人工浏览的Web客户端所发出的HTTP请求,则将该HTTP请求发送给所述Web服务器。
本实施例中,所述Web客户端判定模块根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览具体可以是指:
所述Web客户端判定模块获取一段时间内所述的Web客户端的发出的一系列网页请求,判断各相邻网页请求的时间间隔是否大于或等于一预定的相邻网页请求时间间隔阈值,根据各判断结果是否满足预设条件,来判断所述的Web客户端为自动工具或为人工浏览。
本实施例中,所述Web客户端判定模块根据各判断结果是否满足预设条件,来判断所述的Web客户端为自动工具或为人工浏览具体可以是指:
所述Web客户端判定模块当时间间隔大于或等于预先设定的相邻网页请求时间间隔阈值时,将此时间间隔对应的事件元素ei记为0,否则记为1;将各时间间隔对应的事件元素ei组成一个基本事件序列E;用所述基本事件序列E分别匹配假设H0和H1,其中H0表示所述Web客户端为人工浏览,H1表示所述Web客户端为自动工具;如果所述基本事件序列E匹配假设H1的程度,与基本事件序列E匹配假设H0的程度之间的差距大于或等于一程度阈值,则判定所述Web客户端为自动工具,否则判定所述Web客户端为手动浏览。
其它实现细节可参见实施例一。
为了让本领域技术人员更好的理解本发明所述异常HTTP流量管理方法,下面给出3个具体的例子进行说明。
例子一、假定,受保护的Web应用系统的域名为www.bank.com,一个未正确标识的Web客户端(可能为标准浏览器,也可能为自动工具)尝试访问该Web应用系统的首页面,它发出如下的HTTP请求(后文称为第一HTTP请求)。
GET/HTTP/1.1
HOST:www.bank.com
ACCEPT:text/html,*/*
所述的第一HTTP请求被Web安全网关截获。Web安全网关的HTTP请求分类单元首先检查该HTTP请求Cookie中是否携带了客户端标识,经检查发现它没有包含任何Cookie数据,因此,判定该HTTP请求源自一个未正确标识的Web客户端,将其交给HTTP请求标识模块进行Web客户端标识操作:首先为该Web客户端随机生成全局唯一的客户端标识,所述的客户端标识可以为一个随机的包含数字和字符的字串;然后,HTTP请求重定向单元向该Web客户端返回一个要求重新提交当前HTTP请求的HTTP重定向消息,该HTTP重定向消息包含一条将所分配的全局唯一客户端标识推送到Web客户端的Cookie设置指令。
假设为该Web客户端生成的全局唯一的客户端标识为w123e234r345ke87,下面为返回给Web客户端的用来推送客户端标识的HTTP重定向响应消息,对应于所述第一HTTP请求。
HTTP/1.1 302 Object Moved
Server:Apache-2.0.1
Location:/
Set-Cookie:WebClientID=w123e234r345ke87;DOMAIN=www.bank.com
Content-Length:0
Web客户端接收到上述HTTP响应消息后,将重新提交一个如下所示的新的HTTP请求(后文称为第二HTTP请求)。
GET/HTTP/1.1
HOST:www.bank.com
ACCEPT:text/html,*/*
Cookie:WebClientID=w123e234r345ke87
所述的第二HTTP请求将再次被Web安全网关截获。Web安全网关的HTTP请求分类单元首先检查该HTTP请求的Cookie中是否携带了客户端标识数据,经检查该HTTP请求中包含了客户端标识数据,并且是正确的,则将该HTTP请求交给其它模块进行处理。
考虑到有些自动工具(比如HTTP GET Flood工具)可能并不理会从Web安全网关返回的HTTP请求重定向消息,而是不停地发送类似于所述第一HTTP请求的HTTP请求;从Web安全网关角度来看,这些HTTP请求来自未正确标识的Web客户端,因此,不会将这些HTTP请求发送给受保护的Web服务器,而是为其产生相对应的HTTP请求响应消息。在这种情况下,受保护的Web服务器不受这些HTTP请求流量的威胁,但是,Web安全网关将不得不腾出精力来处理这些异常HTTP请求,因此,可能会影响到Web安全网关的吞吐能力。为了减缓这种情况给Web安全网关所造成的压力,可以在Web安全网关处跟踪各未标识的Web客户端发出的HTTP请求的速率,比如,以客户端网络地址IP为跟踪对象,统计单位时间内其发出的未正确标识的HTTP请求数量,当发现其发送的HTTP请求数量超过预先指定的阈值时,则可以在一段时间丢弃由该网络地址所标识的Web客户端的所有HTTP请求。
由于推送Web客户端标识的Set-Cookie指令中指定的Domain为www.bank.com,所以,在整个Web会话期间,该Web客户端发送到域名为www.bank.com的所有HTTP请求,其Cookie中都将携带Web安全网关为其分配的客户端标识,这样,Web安全网关就能够很容易的将该Web客户端发送的HTTP流量与其它Web客户端发送的HTTP流量区分出来。下面给出如何对来自某已标识的Web客户端的HTTP流量进行统计分析,来判定该已标识的Web客户端的当前行为。
获取一段时间内某一已正确标识的Web客户端发往受保护的Web服务器的网页请求,判断各相邻网页请求的时间间隔是否大于或等于一预定的相邻网页请求时间间隔阈值δ,根据各判断结果是否满足预设条件,来判定所述远程主机的Web客户端为自动工具或人工浏览。
例子二,正确标识的Web客户端行为判定实施例。
假设Web安全网关收集一段时间内该已标识Web客户端发送到受保护的Web服务器的网页请求序列,收集到了某一已正确标识的Web客户端(该Web客户端所发出的所有HTTP请求的Cookie中携带值为w123e234r345ke87的客户端标识)发往受保护的Web服务器的10个网页请求,这10网页请求的发起时间如表1所示。
表1网页请求的发起时间
网页请求序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
发起时间(毫秒) | 0 | 3600 | 3710 | 3880 | 7820 | 7900 | 7920 | 8010 | 8120 | 8260 |
计算所述网页请求序列W中各相邻网页请求之间的时间间隔,计算得到元素个数为9的相邻网页请求时间间隔序列T如表2所示。
表2时间间隔序列T
元素序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
相邻请求间隔(毫秒) | 3600 | 110 | 170 | 3940 | 80 | 20 | 90 | 110 | 140 |
分别判断各时间间隔是否大于或等于预先设定的相邻网页请求时间间隔阈值3000毫秒,如果是则将此时间间隔对应的事件元素ei记为0,否则记为1;各时间间隔对应的事件元素ei组成一个基本事件序列E,如表3所示。
表3基本事件序列E
元素序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
相邻请求间隔(毫秒) | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
用所述基本事件序列E分别匹配假设H0和H1,其中H0表示远程主机的操作为正常网页浏览行为,H1表示远程主机的操作为网页爬虫;如果所述基本事件序列E匹配假设H1的程度,与基本事件序列E匹配假设H0的程度之间的差距大于或等于程度阈值,则判定为自动工具。
假设程度阈值的下限为0.132,上限为7.59,首先计算基本事件序列E的似然比:
V(E)=(0.4/0.6)*(0.6/0.4)*(0.6/0.4)*(0.4/0.6)*(0.6/0.4)*(0.6/0.4)*(0.6/0.4)*(0.6/0.4)*(0.6/0.4)=7.60,它大于上限阈值η1(其值为7.59),因此,判定该正确标识的Web客户端为自动工具。
例子三、Web服务器限流实施例。
Web安全网关监控受保护的Web服务器的以下三个性能指标,并设置相应的检测阈值:
A)HTTP请求服务率指标,检测阈值为0.90;
B)Web服务器平均响应时间指标,检测阈值为500毫秒;
C)HTTP流量达到速率指标,检测阈值为500。
假定Web安全网关配置为当发现三个指标中任一指标超过预先指定的阈值,就指示Web服务器性能恶化。
假设在10秒钟的统计时间段内,通过监控进出受保护的Web服务器的HTTP流量,得到如下三个性能指标值:
A)HTTP请求服务率指标=0.87;
B)Web服务器平均响应时间指标=600毫秒;
C)HTTP流量达到速率指标=450。
通过与各性能指标相应的检测阈值进行比较得知,该Web服务器性能恶化,需要对被判定为自动工具所发出的HTTP流量进行限流处理,以避免受保护的Web服务器性能持续恶化。因此,Web安全网关中的HTTP限流模块将启动限流操作。假设此时Web安全网关接到如下所示的HTTP请求(后文称为第三HTTP请求):
GET/search.asp?keywords=security HTTP/1.1
HOST:www.bank.com
ACCEPT:text/html,*/*
Cookie:WebClientID=w123e234r345ke87
进入限流状态的Web安全网关接收到所述的第三HTTP请求后,HTTP限流模块首先从HTTP请求的Cookie中抽取客户端标识,其值为w123e234r345ke87,然后,通过基于该客户端标识查询Web客户端行为判定模块,得知该Web客户端为自动工具,因此,该HTTP请求被丢弃。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
Claims (8)
1.一种HTTP流量的控制方法,包括:
根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览;
仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器;
所述根据Web客户端发往Web服务器的HTTP流量,判定Web客户端为自动工具或人工浏览的步骤前还包括:
对访问所述Web服务器的各Web客户端进行标识;
对于携带正确的客户端标识的HTTP请求,对发出该HTTP请求的Web客户端进行所述根据该Web客户端发往Web服务器的HTTP流量,判定该Web客户端为自动工具或人工浏览的步骤;
所述对访问所述Web服务器的各Web客户端进行标识的步骤包括:
生成了一个密钥K;
当需要为所述Web客户端生成全局唯一的客户端标识时,为其生成一个随机数R,然后采用安全散列函数对由所述Web客户端的网络地址、随机数R和密钥K拼接而成的数据串进行安全散列,得到安全散列值H1;
将所述随机数R和所述安全散列值H1的拼接串作为所述Web客户端生成的客户端标识;
正确的客户端标识是指:对所述客户端标识中的所述随机数R、密钥K、以及携带所述客户端标识的HTTP请求的源网络地址拼接而成的数据串进行安全散列,得到安全散列值H2;H2和所述客户端标识里的H1相等。
2.如权利要求1所述的方法,其特征在于,所述对访问所述Web服务器的各Web客户端进行标识的步骤包括:
对于每个发给所述Web服务器的HTTP请求,检查其Cookie中是否携带了正确的客户端标识;所述正确的客户端标识是指:所存储的网络地址和客户端标识对中,携带该客户端标识的HTTP请求的源网络地址对应的客户端标识,与该客户端标识相同;
对于没有携带客户端标识的HTTP请求,为发出该HTTP请求的Web客户端随机生成全局唯一的客户端标识,存储该Web客户端的网络地址和客户端标识对;丢弃该HTTP请求,并向发出该HTTP请求的Web客户端发送一个要求重新提交当前HTTP请求的HTTP重定向消息,所述HTTP重定向消息包含一条将所生成的客户端标识推送到Web客户端的Cookie设置指令。
3.如权利要求1到2中任一项所述的方法,其特征在于,所述仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器的步骤前还包括:
监视所述Web服务器的性能,当所述Web服务器性能恶化时,进行所述仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器的步骤;
所述Web服务器性能恶化包括以下情况中的任一种或其任意组合:
单位时间内Web服务器发出的HTTP响应消息数量和进入Web服务器的HTTP请求数量之比小于或等于预先指定阈值;
单位时间内Web服务器对HTTP请求的平均响应时间大于或等于预先指定阈值;
进入Web服务器的HTTP请求的速率大于或等于预先指定阈值。
4.如权利要求1到2中任一项所述的方法,其特征在于,所述根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览的步骤包括:
获取一段时间内所述的Web客户端的发出的一系列网页请求,判断各相邻网页请求的时间间隔是否大于或等于一预定的相邻网页请求时间间隔阈值,时间间隔大于或等于预先设定的相邻网页请求时间间隔阈值时,将此时间间隔对应的事件元素ei记为0,否则记为1;将各时间间隔对应的事件元素ei组成一个基本事件序列E;
用所述基本事件序列E分别匹配假设H0和H1,其中H0表示所述Web客户端为人工浏览,H1表示所述Web客户端为自动工具;如果所述基本事件序列E匹配假设H1的程度,与基本事件序列E匹配假设H0的程度之间的差距大于或等于一程度阈值,则判定所述Web客户端为自动工具,否则判定所述Web客户端为手动浏览。
5.一种HTTP流量的控制装置,其特征在于,包括:
Web客户端判定模块:用于根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览;
HTTP限流模块,用于仅允许判定为人工浏览的Web客户端所产生的HTTP流量进入所述Web服务器;
HTTP请求鉴别模块,用于对访问所述Web服务器的各Web客户端进行标识;将携带正确的客户端标识的HTTP请求发送给所述Web客户端判定模块和HTTP限流模块;
所述对访问所述Web服务器的各Web客户端进行标识的步骤包括:
生成了一个密钥K;
当需要为所述Web客户端生成全局唯一的客户端标识时,为其生成一个随机数R,然后采用安全散列函数对由所述Web客户端的网络地址、随机数R和密钥K拼接而成的数据串进行安全散列,得到安全散列值H1;
将所述随机数R和所述安全散列值H1的拼接串作为所述Web客户端生成的客户端标识;
正确的客户端标识是指:对所述客户端标识中的所述随机数R、密钥K、以及携带所述客户端标识的HTTP请求的源网络地址拼接而成的数据串进行安全散列,得到安全散列值H2;H2和所述客户端标识里的H1相等。
6.如权利要求5所述的装置,其特征在于,所述HTTP请求鉴别模块包括:
HTTP请求分类单元,用于对于每个发给所述Web服务器的HTTP请求,检查其Cookie中是否携带了正确的客户端标识;所述正确的客户端标识是指:所存储的网络地址和客户端标识对中,携带该客户端标识的HTTP请求的源网络地址对应的客户端标识,与该客户端标识相同;
HTTP流量标识单元,用于对于没有携带客户端标识的HTTP请求,为发出该HTTP请求的Web客户端随机生成全局唯一的客户端标识,存储该Web客户端的网络地址和客户端标识对,丢弃该HTTP请求;
HTTP请求重定向单元,用于向发出所述没有携带客户端标识的HTTP请求的Web客户端,发送一个要求重新提交当前HTTP请求的HTTP重定向消息,所述HTTP重定向消息包含一条将所生成的客户端标识推送到Web客户端的Cookie设置指令。
7.如权利要求5到6中任一项所述的装置,其特征在于,还包括:
Web服务器性能监控模块,用于监视所述Web服务器的性能,当所述Web服务器性能恶化时,启动所述HTTP限流模块;
所述Web服务器性能恶化包括以下情况中的任一种或其任意组合:
单位时间内Web服务器发出的HTTP响应消息数量和进入Web服务器的HTTP请求数量之比小于或等于预先指定阈值;
单位时间内Web服务器对HTTP请求的平均响应时间大于或等于预先指定阈值;
进入Web服务器的HTTP请求的速率大于或等于预先指定阈值。
8.如权利要求5到6中任一项所述的装置,其特征在于,所述Web客户端判定模块根据Web客户端发往Web服务器的HTTP流量,判定所述Web客户端为自动工具或人工浏览是指:
所述Web客户端判定模块获取一段时间内所述的Web客户端的发出的一系列网页请求,判断各相邻网页请求的时间间隔是否大于或等于一预定的相邻网页请求时间间隔阈值;当时间间隔大于或等于预先设定的相邻网页请求时间间隔阈值时,将此时间间隔对应的事件元素ei记为0,否则记为1;将各时间间隔对应的事件元素ei组成一个基本事件序列E;用所述基本事件序列E分别匹配假设H0和H1,其中H0表示所述Web客户端为人工浏览,H1表示所述Web客户端为自动工具;如果所述基本事件序列E匹配假设H1的程度,与基本事件序列E匹配假设H0的程度之间的差距大于或等于一程度阈值,则判定所述Web客户端为自动工具,否则判定所述Web客户端为手动浏览。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010611982.XA CN102571547B (zh) | 2010-12-29 | 2010-12-29 | 一种http流量的控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010611982.XA CN102571547B (zh) | 2010-12-29 | 2010-12-29 | 一种http流量的控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102571547A CN102571547A (zh) | 2012-07-11 |
CN102571547B true CN102571547B (zh) | 2015-07-01 |
Family
ID=46416056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010611982.XA Expired - Fee Related CN102571547B (zh) | 2010-12-29 | 2010-12-29 | 一种http流量的控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102571547B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103179132B (zh) * | 2013-04-09 | 2016-03-02 | 中国信息安全测评中心 | 一种检测和防御cc攻击的方法及装置 |
CN103401957B (zh) * | 2013-08-07 | 2016-09-28 | 五八同城信息技术有限公司 | 一种web环境下唯一标识客户端机器的方法 |
CN104618404A (zh) * | 2015-03-10 | 2015-05-13 | 网神信息技术(北京)股份有限公司 | 防止网络攻击Web服务器的处理方法、装置及系统 |
CN106155646B (zh) * | 2015-03-31 | 2020-01-07 | 阿里巴巴集团控股有限公司 | 一种限制外部应用程序调用服务的方法及装置 |
CN105281981B (zh) * | 2015-11-04 | 2019-04-02 | 北京百度网讯科技有限公司 | 网络服务的数据流量监控方法和装置 |
ITUB20156079A1 (it) | 2015-12-02 | 2017-06-02 | Torino Politecnico | Metodo per individuare i servizi di web tracking |
CN107104929B (zh) * | 2016-02-23 | 2021-03-09 | 阿里巴巴集团控股有限公司 | 防御网络攻击的方法、装置和系统 |
CN105897694B (zh) * | 2016-03-25 | 2019-02-26 | 网宿科技股份有限公司 | 一种客户端会话识别方法及系统 |
CN105939342A (zh) * | 2016-03-31 | 2016-09-14 | 杭州迪普科技有限公司 | Http攻击检测方法及装置 |
CN107786489B (zh) * | 2016-08-24 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 访问请求验证方法及装置 |
CN106874423B (zh) * | 2017-01-25 | 2020-07-31 | 广东神马搜索科技有限公司 | 搜索控制方法和系统 |
CN108400955B (zh) * | 2017-02-06 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 一种网络攻击的防护方法及系统 |
CN106897219B (zh) * | 2017-02-14 | 2020-01-17 | 深圳市广和通无线通信软件有限公司 | 移动终端系统稳定性测试方法及装置 |
CN107911398B (zh) * | 2018-01-04 | 2020-12-15 | 世纪龙信息网络有限责任公司 | 身份信息的认证方法、装置以及系统 |
WO2019140554A1 (zh) * | 2018-01-16 | 2019-07-25 | Oppo广东移动通信有限公司 | 一种数据验证方法、网络设备、ue及计算机存储介质 |
CN108718306B (zh) * | 2018-05-10 | 2020-09-01 | 北京邮电大学 | 一种异常流量行为判别方法和装置 |
CN109803161A (zh) * | 2019-01-14 | 2019-05-24 | 深圳市金锐显数码科技有限公司 | 电视遥控方法、装置及终端设备 |
CN110417672B (zh) * | 2019-08-01 | 2021-08-13 | 北京三快在线科技有限公司 | 限流方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789947A (zh) * | 2010-02-21 | 2010-07-28 | 成都市华为赛门铁克科技有限公司 | 防范http post泛洪攻击的方法及防火墙 |
CN101834866A (zh) * | 2010-05-05 | 2010-09-15 | 北京来安科技有限公司 | 一种cc攻击防护方法及其系统 |
CN101902438A (zh) * | 2009-05-25 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种自动识别网页爬虫的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005204189A (ja) * | 2004-01-19 | 2005-07-28 | Hitachi Communication Technologies Ltd | アクセスユーザ管理システム、アクセスユーザ管理装置 |
-
2010
- 2010-12-29 CN CN201010611982.XA patent/CN102571547B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902438A (zh) * | 2009-05-25 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种自动识别网页爬虫的方法和装置 |
CN101789947A (zh) * | 2010-02-21 | 2010-07-28 | 成都市华为赛门铁克科技有限公司 | 防范http post泛洪攻击的方法及防火墙 |
CN101834866A (zh) * | 2010-05-05 | 2010-09-15 | 北京来安科技有限公司 | 一种cc攻击防护方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102571547A (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102571547B (zh) | 一种http流量的控制方法及装置 | |
Cambiaso et al. | Slow DoS attacks: definition and categorisation | |
CN104113519B (zh) | 网络攻击检测方法及其装置 | |
KR100781725B1 (ko) | 피어 투 피어 인가를 위한 방법 및 시스템 | |
WO2018121331A1 (zh) | 攻击请求的确定方法、装置及服务器 | |
CN109413000B (zh) | 一种防盗链方法及防盗链网关系统 | |
US8561188B1 (en) | Command and control channel detection with query string signature | |
US11882149B2 (en) | Responding to search requests based on referrer | |
Fang et al. | FETMS: Fast and efficient trust management scheme for information-centric networking in Internet of Things | |
JP2020140723A (ja) | ネットワーク攻撃防御システムおよび方法 | |
Chatterjee et al. | Security issues in named data networks | |
CN102571846A (zh) | 一种转发http请求的方法及装置 | |
Satam et al. | Anomaly Behavior Analysis of DNS Protocol. | |
CN114902612A (zh) | 基于边缘网络的帐户保护服务 | |
CN114616795B (zh) | 用于防止重试或重放攻击的安全机制 | |
CN107528812B (zh) | 一种攻击检测方法及装置 | |
CN103563301A (zh) | 反向代理上的流入重定向机制 | |
Shiaeles et al. | FHSD: an improved IP spoof detection method for web DDoS attacks | |
CN108476199A (zh) | 一种基于令牌机制的检测和防御cc 攻击的系统和方法 | |
RU2601147C2 (ru) | Система и способ выявления целевых атак | |
Masoud et al. | On tackling social engineering web phishing attacks utilizing software defined networks (SDN) approach | |
CN106411819A (zh) | 一种识别代理互联网协议地址的方法及装置 | |
Huang et al. | CCID: Cross‐Correlation Identity Distinction Method for Detecting Shrew DDoS | |
CN114745145B (zh) | 业务数据访问方法、装置和设备及计算机存储介质 | |
Lu et al. | Detecting command and control channel of botnets in cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150701 Termination date: 20201229 |