一种防范http代理攻击的方法及装置的制造方法

文档序号:10597197阅读:489来源:国知局
一种防范http代理攻击的方法及装置的制造方法
【专利摘要】本申请提供的一种防范HTTP代理攻击的方法及装置,所述方法应用在网络安全设备上,所述方法包括:网络安全设备接收HTTP请求报文,解析出所述HTTP请求报文的报文头;查询所述报文头中是否存在代理字段;在查询到所述报文头中存在代理字段的情况下,获取所述代理字段中的原始客户端的ip;更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则;在更新后的所述ip数量符合预设规则的情况下,拦截所述ip对应的报文。应用本申请实施例可以实现识别出真正的攻击方,从而准确拦截攻击方发送的HTTP请求报文。
【专利说明】
_种防范HTTP代理攻击的方法及装置
技术领域
[0001 ]本申请涉及网络安全技术领域,尤其涉及一种防范HTTP代理攻击的方法及装置。
【背景技术】
[0002]随着网络技术的不断发展,网络攻击的事件变的越来越多,如何有效防范网络攻击变得很重要。
[0003]网络(Web)服务器(以下简称为服务器)在互联网应用中是极其重要的,其可以提供例如网页浏览、电子邮件收发、网络资源下载等服务,上述各种服务通常是建立在HTTP(Hyper Text Transfer Protocol,超文本传输协议)协议基础上,也因此服务器就会经常受到网络攻击。
[0004]现有技术中,对网络攻击的防护主要是依据源ip来统计请求报文速率,其基本处理流程是将HTTP请求报文中携带的源ip解析出来,然后统计出该源ip对应的报文速率,SP预设周期内该源ip的访问次数。一般的,正常的HTTP请求的次数是在一定范围内的,当超过此范围就可以认定是攻击报文,从而拦截该HTTP请求报文,即俗称的丢包。然而,攻击方在发起HTTP代理攻击时,是控制代理客户端后由代理方转发HTTP请求报文的。这样,该HTTP请求报文中源ip就由攻击方ip变成代理方ip,根据现有技术的防护方法,就容易将代理方作为攻击方,从而阻断代理方发送的所有HTTP请求,即使是代理方自己发送的未经过代理的HTTP请求也会被拦截。
[0005]综上所述,现有技术中无法识别出真正的攻击方的问题。

【发明内容】

[0006]本申请提供的防范HTTP代理攻击的方法及装置,用于解决现有技术中存在无法识别出真正的攻击方的问题。
[0007]一种防范HTTP代理攻击的方法,所述方法应用在网络安全设备上,所述方法包括:
[0008]网络安全设备接收HTTP请求报文,解析出所述HTTP请求报文的报文头;
[0009]查询所述报文头中是否存在代理字段;
[0010]在查询到所述报文头中存在代理字段的情况下,获取所述代理字段中的原始客户端的ip;
[0011]更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则;
[0012]在更新后的所述ip数量符合预设规则的情况下,拦截所述ip对应的HTTP请求报文。
[0013]可选的,所述预设规则是周期内所述ip的数量大于预设阈值。
[0014]可选的,所述周期不大于I秒钟。
[0015]可选的,所述方法还包括:
[0016]在更新后的所述ip数量符合预设规则的情况下,将所述ip加入黑名单中。
[0017]可选的,在查询到存在代理字段的情况下,解析得到代理客户端的ip之后,所述方法还包括:
[0018]将所述原始客户端的ip在黑名单中进行匹配;
[0019]如果匹配成功,则拦截所述ip对应的HTTP请求报文;
[0020]如果匹配不成功,则执行更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则的步骤。
[0021]一种防范HTTP代理攻击的装置,所述装置应用在网络安全设备上,所述装置包括:
[0022]解析单元,用于网络安全设备接收HTTP请求报文,解析出所述HTTP请求报文的报文头;
[0023]查询单元,用于查询所述报文头中是否存在代理字段;
[0024]获取单元,用于在查询到所述报文头中存在代理字段的情况下,获取所述代理字段中的原始客户端的ip;
[0025]判断单元,用于更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则;
[0026]拦截单元,用于在更新后的所述ip数量符合预设规则的情况下,拦截所述ip对应的HTTP请求报文。
[0027]可选的,所述预设规则是周期内所述ip的数量大于预设阈值。
[0028]可选的,所述周期不大于I秒钟。
[0029]可选的,在所述判断单元之后,所述装置还包括:
[0030]处理单元,用于在更新后的所述ip数量符合预设规则的情况下,将所述ip加入黑名单中。
[0031 ]可选的,在所述获取单元之后,所述装置还包括:
[0032]匹配单元,用于将所述原始客户端的ip在黑名单中进行匹配;
[0033]所述拦截单元,还用于在匹配成功的情况下,拦截所述ip对应的HTTP请求报文;
[0034]所述判断单元,还用于在匹配失败的情况下,更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则。
[0035]本申请实施例中,依据代理字段中原始客户端的ip,统计该原始客户端的ip数量是否符合预设规则来防范HTTP代理攻击报文,不仅能够防范HTTP代理攻击,特别是HTTP洪水攻击;而且避免了现有技术中将代理客户端作为攻击方,从而将代理客户端发送的所有HTTP请求报文都拦截。通过本申请实施例中可以实现准确识别出HTTP代理攻击时真正的攻击方,从而准确拦截攻击方发送的HTTP请求报文。
【附图说明】
[0036]图1是现有技术中HTTP洪水攻击的具体场景的示意图;
[0037]图2是本申请一实施例提供的HHTP请求报文的报文结构示意图;
[0038]图3是本申请一实施例提供的防范HTTP代理攻击的方法流程图;
[0039]图4是本申请一实施例提供的HTTP代理攻击的具体场景的示意图;
[0040]图5是本申请一实施例提供的防范HTTP代理攻击的方法流程图;
[0041 ]图6是本申请提供的防范HTTP代理攻击的装置所在设备的一种硬件结构图;
[0042]图7是本申请一实施例提供的防范HTTP代理攻击的装置的模块示意图。
【具体实施方式】
[0043]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0044]在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0045]应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0046]在相关技术中,攻击方通常会同时控制大量的代理方,并在同一时间向攻击目标发起HTTP Flood即HTTP洪水攻击,所述HTTP Flood是一种DDos(Distributed Denial ofService,分布式拒绝服务),DDoS攻击可以造成攻击目标的网络资源浪费、链路带宽堵塞、服务中断等后果。请参考图1所述一个HTTP洪水攻击的应用场景示意图,如图1所述攻击者通过控制端11先控制4个代理客户端12,准备发动HTTP洪水攻击。在同一时间,控制上述4个代理客户端12向服务器13发送大量HTTP请求,以达到消耗所述服务器13的CPU或内存等系统资源,最后使得该服务器13资源耗尽而业务中断。
[0047]值得一提的是,所述HTTP请求报文的请求方法,可以是GET和POST这两种最常用的请求方法,还可以是DELETE、HEAD、0PT10NS、PUT、TRACE等其它请求方法,此处并不加以限定。
[0048]请参见图2,图2为本实施例示出的一个HTTP请求报文的报文结构示意图。如图2所示,上述HTTP请求报文可以包括报文行31、报文头32、报文体32。具体地,所述报文头32中包含若干字段,格式为“字段名:字段值”;此处不再对每个字段具体含义做赘述。服务器是根据报文头32中的字段获取客户端的信息例如ip、mac等。现有技术中,就是通过获取报文头32中源ip,并统计所述源ip对应的报文速率来识别是否是网络攻击行为。但是在HTTP代理攻击时,如图1所示,每个代理客户端12发送的HTTP请求报文中源ip已经由控制端11的ip变为代理客户端12的ip。如此,根据现有技术的防护方法,就容易将代理客户端12作为攻击方,从而阻断代理客户端12发送的所有HTTP请求,即使是代理客户端12发送的未经过代理的HTTP请求也会被拦截。
[0049]为了解决上述问题,请参见图3为本申请一实施例提供的一种防范HTTP代理攻击的方法的流程图,所述方法应用在网络安全设备上,所述方法可以包括以下步骤:
[0050]步骤110:网络安全设备接收HTTP请求报文,解析出所述HTTP请求报文的报文头。
[0051]本实施例中,所述网络安全设备可以包括例如防火墙等设备。
[0052]所述网络安全设备可以位于客户端与服务器之间;或者位于所述服务器上。例如图1中代理客户端12与服务器13之间;或者,所述网络安全设备还可以位于所述服务器13上。
[0053]在所述网络安全设备接收到HTTP请求报文后,可以通过解析所述HTTP请求报文从而获取报文头。
[0054]请参考图2所示的一个HTTP请求报文的报文结构示意图,所述网络安全设备在接收HTTP请求报文后,可以解析出该报文中的报文头32。
[0055]步骤120:查询所述报文头中是否存在代理字段。
[0056]本实施例中,在所述网络安全设备解析出报文头后,进一步可以查找所述报文头中是否存在代理字段。
[0057]在实际应用中,如果所述HTTP请求报文是经过HTTP代理后由代理客户端发送的,那么这个HTTP请求报文的报文头中会新增一个代理字段。所述代理字段例如X-Forwarded-For0
[0058]如果查询得出所述报文头中不存在代理字段,则说明该HTTP请求报文不是HTTP代理请求报文,可以直接进行转发。
[0059]如果查询得出所述报文头中存在代理字段,则说明该HTTP请求报文是HTTP代理请求报文,需要进一步进行识别,即进行后续步骤130。
[0060]步骤130:在查询到所述报文头中存在代理字段的情况下,获取所述代理字段中的原始客户端的ip。
[0061]本实施例中,在查询到所述报文头中存在代理字段的情况下,所述网络安全设备可以获取所述代理字段中原始客户端的ip。其中,所述原始客户端的ip为所述代理字段后的第一个ip。
[0062 ] 如下以代理字段:XFF (X-Forwarded-For)为例加以说明。
[0063]所述XFF的格式如下:
[0064]X-Forwarded-For:client,proxyI,proxy2
[0065]其中,XXF的内容中第一个就是原始客户端的ip,之后经过每一级代理就会多一个代理客户端的ip。
[0066]请参考图4所示的HTTP代理请求的场景示意图。图4中一个HTTP请求报文到达服务器之前,经过了三个代理客户端分别是Proxyl、Proxy2、Proxy3,所述代理客户端的ip分别为ipl、ip2、ip3,原始客户端的ip为ipO,那么按照XFF格式,服务器最终会收到以下代理字段:
[0067]X-Forwarded-For:1pO,ipl,ip2
[0068]其中,X-Forwarded-For即为代理字段,ipO就是原始客户端的ip,ipl为第一级代理客户端Proxy I的ip,ip2为第二级代理客户端Proxy2的ip。需要说明的是,每一级代理客户端只会在原有的代理字段中添加上一级客户端的ip,表示它是在帮上一级客户端转发HTTP请求报文,而不会记录本客户端的ip。本客户端的ip是记录在报文的源ip中,即将源ip变更为本客户端的ip。例如图4中,第三级代理客户端Proxy3是直连服务器的,它会在XFF中添加上一代理客户端Proxy2的ip即ip2,表示它是在帮Proxy2转发HTTP请求报文,而将源ip的值由ip2变更为ip3。
[0069]通过上述例子可以得出,原始客户端的ip即为代理字段后的第一个ip。
[0070]步骤140:更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则。
[0071]本实施例中,所述预设规则是周期内所述ip的数量不超过预设阈值。所述预设阈值可以人为预先设置的一个经验值,该预设阈值可以反映出正常情况下,指定周期内通过的HTTP请求报文的最大数量。所述周期也可以是一个经验值,例如I秒;通常,这个周期不大于I秒钟。所述周期可以通过定时器来实现,当定时器超时的时候,可以将统计数量清零进而在新的周期内重新统计。
[0072]首先更新所述ip对应的报文统计数量,具体地,是将当前的报文统计数量加I,然后和预设阈值比较;如果没有超过预设阈值,说明此时的HTTP请求报文统计数量在正常范围内,该HTTP请求报文是安全的,对其进行转发;如果超过预设阈值,说明此时HTTP请求报文的统计数量已经超过正常范围,执行步骤150。
[0073]步骤150:在更新后的所述ip数量符合预设规则的情况下,拦截所述ip对应的HTTP请求报文。
[0074]本实施例中,如果更新后的所述ip数量符合预设规则,说明所述ip对应的HTTP请求报文属于攻击报文,所述网络安全设备需要拦截所述ip对应的HTTP请求报文,从而确保服务器不至于受到HTTP代理攻击。
[0075]依然参考图1所示的场景示意图,攻击者通过控制端11控制了大量代理客户端12进而发动HTTP洪水攻击。通过本实施例,由于代理客户端12发送的HTTP请求报文都具有代理字段,并且从代理字段中获取的原始客户端的ip均是所述控制端11的ip。那么该ip的数量很快就会符合预设规则,即周期内大于预设阈值。如此,不仅可以完全拦截所有攻击方通过代理客户端发送的HTTP请求报文,还不会造成对代理客户端的误判,例如代理客户端12转发一个不是由控制端11发送的正常的HTTP请求报文,由于原始客户端ip不是所述控制11的ip,所以网络安全设备不会拦截;或者代理客户端12自己发送一个正常的HTTP请求报文,由于没有代理字段,所以网络安全设备不会拦截。
[0076]通过本实施例,依据代理字段中原始客户端的ip,统计该原始客户端的ip数量是否符合预设规则来防范HTTP代理攻击报文,不仅能够防范HTTP代理攻击,特别是HTTP洪水攻击;而且避免了现有技术中将代理客户端作为攻击方,从而将代理客户端发送的所有HTTP请求报文都拦截。通过本申请实施例中可以实现准确识别出HTTP代理攻击时真正的攻击方,从而准确拦截攻击方发送的HTTP请求报文。
[0077]在本申请的一个具体地实施例中,在所述步骤150之后,所述方法还可以包括如下步骤:
[0078]在更新后的所述ip数量符合预设规则的情况下,将所述ip加入黑名单中。
[0079]本实施例中,所述黑名单用于记录攻击方的ip。
[0080]通过本实施例,可以将进行网络攻击的攻击方ip都记录到黑名单中,从而建立一个攻击信息库,可以分享给不同的网络安全设备。
[0081]进一步的,在图3所示实施例的基础上,如图5所示,在上述步骤130之后,所述方法还可以包括:
[0082]步骤131:将所述原始客户端的ip在黑名单中进行匹配;如果匹配成功,则拦截所述ip对应的HTTP请求报文;如果匹配失败,则执行步骤140。
[0083]本实施例中,利用预先建立的黑名单,可以快速的识别HTTP请求报文是否为攻击报文,即将获取到的原始客户端的ip在所述黑名单中进行匹配;如果所述ip位于所述黑名单中时,说明所述HTTP请求报文为攻击报文,进而拦截所述ip对应的HTTP请求报文;如果所述ip不位于所述黑名单中时,说明所述HTTP请求报文还需进一步识别,所以需要执行后一步骤140即更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则。
[0084]例如,ipO已经位于黑名单中,那么在网络安全设备获取到某一HTTP请求报文中原始客户端的ip也是ipO时,无需进行后续步骤,直接拦截该HTTP请求报文即可。
[0085]在实际应用中,攻击方通常会持续发送大量的HTTP请求报文,在将攻击方的ip加入到黑名单后,其后续发送的HTTP请求报文,可以根据黑名单直接拦截即可。
[0086]通过本实施例,利用预先建立的黑名单,可以快速识别HTTP请求报文是否为攻击报文,如此实现减少网络安全设备的工作量,提高了工作效率。
[0087]与前述防范HTTP代理攻击的方法实施例相对应,本申请还提供了一种防范HTTP代理攻击的装置的实施例。
[0088]本申请提供的一种防范HTTP代理攻击的装置的实施例可以分别应用在网络安全设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请提供的一种防范HTTP代理攻击的装置所在设备的一种硬件结构图,除了图6所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该防范HTTP代理攻击的实际功能,还可以包括其他硬件,对此不再赘述。
[0089]参见图7,为本申请一实施例提供的防范HTTP代理攻击的装置的模块图,所述装置包括:解析单元210、查询单元220、获取单元230、判断单元240和拦截单元250。
[0090]其中,解析单元210,用于网络安全设备接收HTTP请求报文,解析出所述HTTP请求报文的报文头;
[0091 ]查询单元220,用于查询所述报文头中是否存在代理字段;
[0092]获取单元230,用于在查询到所述报文头中存在代理字段的情况下,获取所述代理字段中的原始客户端的ip;
[0093]判断单元240,用于更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则;
[0094]拦截单元250,用于在更新后的所述ip数量符合预设规则的情况下,拦截所述ip对应的HTTP请求报文。
[0095]在一个可选的实现方式中:
[0096]所述预设规则是周期内所述ip的数量大于预设阈值。
[0097]在一个可选的实现方式中:
[0098]所述周期不大于I秒钟。
[0099]在一个可选的实现方式中:
[0100]在所述判断单元240之后,所述装置还包括:
[0101]处理单元,用于在更新后的所述ip数量符合预设规则的情况下,将所述ip加入黑名单中。
[0102]在一个可选的实现方式中:
[0103]在所述获取单元230之后,所述装置还包括:
[0104]匹配单元,用于将所述原始客户端的ip在黑名单中进行匹配;
[0105]所述拦截单元250,还用于在匹配成功的情况下,拦截所述ip对应的HTTP请求报文;
[0106]所述判断单元240,还用于在匹配失败的情况下,更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则。
[0107]在一个可选的实现方式中:
[0108]所述代理字段包括X-Forwarded-For。
[0109]综上所述,通过本申请实施例,可以依据代理字段中原始客户端的ip,统计该原始客户端的ip数量是否符合预设规则来防范HTTP代理攻击报文,不仅能够防范HTTP代理攻击,特别是HTTP洪水攻击;而且避免了现有技术中将代理客户端作为攻击方,从而将代理客户端发送的所有HTTP请求报文都拦截。通过本申请实施例中可以实现准确识别出HTTP代理攻击时真正的攻击方,从而准确拦截攻击方发送的HTTP请求报文。
[0110]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0111]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0112]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
[0113]应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
【主权项】
1.一种防范HTTP代理攻击的方法,所述方法应用在网络安全设备上,其特征在于,所述方法包括: 网络安全设备接收HTTP请求报文,解析出所述HTTP请求报文的报文头; 查询所述报文头中是否存在代理字段; 在查询到所述报文头中存在代理字段的情况下,获取所述代理字段中的原始客户端的ip; 更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则; 在更新后的所述ip数量符合预设规则的情况下,拦截所述ip对应的HTTP请求报文。2.根据权利要求1所述的方法,其特征在于,所述预设规则是周期内所述ip的数量大于预设阈值。3.根据权利要求2所述的方法,其特征在于,所述周期不大于I秒钟。4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在更新后的所述ip数量符合预设规则的情况下,将所述ip加入黑名单中。5.根据权利要求3所述的方法,其特征在于,在查询到存在代理字段的情况下,解析得到代理客户端的ip之后,所述方法还包括: 将所述原始客户端的ip在黑名单中进行匹配; 如果匹配成功,则拦截所述ip对应的HTTP请求报文; 如果匹配不成功,则执行更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则的步骤。6.—种防范HTTP代理攻击的装置,所述装置应用在网络安全设备上,其特征在于,所述装置包括: 解析单元,用于网络安全设备接收HTTP请求报文,解析出所述HTTP请求报文的报文头; 查询单元,用于查询所述报文头中是否存在代理字段; 获取单元,用于在查询到所述报文头中存在代理字段的情况下,获取所述代理字段中的原始客户端的ip; 判断单元,用于更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则; 拦截单元,用于在更新后的所述ip数量符合预设规则的情况下,拦截所述ip对应的HTTP请求报文。7.根据权利要求6所述的装置,其特征在于,所述预设规则是周期内所述ip的数量大于预设阈值。8.根据权利要求7所述的装置,其特征在于,所述周期不大于I秒钟。9.根据权利要求6所述的装置,其特征在于,在所述判断单元之后,所述装置还包括: 处理单元,用于在更新后的所述ip数量符合预设规则的情况下,将所述ip加入黑名单中。10.根据权利要求9所述的装置,其特征在于,在所述获取单元之后,所述装置还包括: 匹配单元,用于将所述原始客户端的ip在黑名单中进行匹配; 所述拦截单元,还用于在匹配成功的情况下,拦截所述ip对应的HTTP请求报文; 所述判断单元,还用于在匹配失败的情况下,更新所述ip的数量,判断更新后的所述ip数量是否符合预设规则。
【文档编号】H04L29/06GK105959313SQ201610523054
【公开日】2016年9月21日
【申请日】2016年6月29日
【发明人】杨学良
【申请人】杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1