一种防御资源消耗型Web攻击方法及装置制造方法

文档序号:7804517阅读:582来源:国知局
一种防御资源消耗型Web攻击方法及装置制造方法
【专利摘要】本发明提供了一种防御资源消耗型攻击的方法及装置;方法包括:S101、每当一个周期结束时,如果该周期中存在平均响应时间大于预置的响应时间阈值的预定Web页面,则进行步骤S102;S102、对于各Web客户端对预定Web页面的访问请求,当最近K个周期中存在该Web客户端对该访问请求对应的前导Web页面的访问记录时,允许将该访问请求发给Web服务器;当最近K个周期中不存在该Web客户端访问该访问请求对应的前导Web页面的记录时,丢弃该访问请求。本发明能够在不干预正常的Web访问行为、且不修改Web页面代码的情况下,实现高效率的资源消耗型Web攻击防御。
【专利说明】一种防御资源消耗型Web攻击方法及装置

【技术领域】
[0001] 本发明涉及一种实现Web安全访问的方法,具体涉及一种防御资源消耗型Web攻 击的方法及装置。

【背景技术】
[0002] Web应用是目前最为广泛的互联网应用,它在给人们获取信息带来了极大便利的 同时,也成为了黑客最为关注的对象。常见的针对Web应用的攻击包括SQL注入攻击、跨站 脚本攻击(XSS)、跨站请求伪造(CSRF)以及各种可能导致Web服务器拒绝服务的Web攻击 方式。本文主要关注针对Web服务器的资源消耗型Web攻击的检测和防御方法。
[0003] 常见的资源消耗型Web攻击包括HTTP Flood攻击和CC攻击。CC攻击是一种应用 层DoS攻击,它以Web网站上那些需要消耗较多服务器资源的Web页面(比如站内搜索页 面)为主要攻击目标,通过对这些可能导致高消耗的Web页面进行突发式的大流量访问,使 得Web服务器疲于应付,最后资源耗尽,无法响应正常用户的Web页面请求,从而造成拒绝 服务攻击。由于CC攻击工具所产生的Web访问流量大多数符合HTTP协议规范,传统Web 应用防火墙无法对其进行正确区分和过滤,因此,传统Web应用防火墙在检测和防御CC攻 击类Web应用层攻击时效果欠佳。
[0004] 传统方法通过优化网站代码来检测和防御此类Web攻击,比如,在Web代码中采用 Cookie来对访问者进行主动标识和认证,或者通过在Web页面中嵌入图形识别码来避免攻 击者自动请求那些可能导致Web服务器高消耗的Web页面。但这些方法都需要主动修改页 面代码,或者通过一个中间Web安全网关设备来修改Web安全相关的代码,这些传统方法可 能导致的问题是:1)很多情况下无法对代码进行修改或者修改代价太大;2)在Web安全网 关上对Web访问行为进行过多干预会为Web应用带来很多问题,比如延迟问题;同时,这也 会增加 Web安全网关资源开销,很难应对大Web流量场景。


【发明内容】

[0005] 本发明要解决的技术问题是如何在不干预正常的Web访问行为、且不修改Web页 面代码的情况下,实现高效率的资源消耗型Web攻击防御。
[0006] 为了解决上述问题,本发明提供了一种防御资源消耗型攻击的方法,包括:
[0007] S101、每当一个周期结束时,分别将监控到的各预定Web页面的访问请求的平均 响应时间和该预定Web页面对应的响应时间阈值比较;如果该周期中存在平均响应时间大 于预置的响应时间阈值的预定Web页面,则进行步骤S102 ;
[0008] S102、对于各Web客户端对预定Web页面的访问请求,当最近K个周期中存在该 Web客户端对该访问请求对应的前导Web页面的访问记录时,允许将该访问请求发给Web服 务器;当最近K个周期中不存在该Web客户端访问该访问请求对应的前导Web页面的记录 时,丢弃该访问请求;K为大于1的预定整数。
[0009] 可选地,各周期分别采用一个布隆过滤器存储当前周期中各Web客户端对前导 Web页面的访问记录;各周期所采用的布隆过滤器构成一个布隆过滤器序列;
[0010] 采用一个宽度为K个周期长度的滑动窗口覆盖最近K个周期的布隆过滤器,所述 滑动窗口的最右侧是最新生成的布隆过滤器。
[0011] 可选地,所述布隆过滤器各散列函数输入为前导Web页面URL和Web客户端IP地 址;
[0012] 所述步骤S101还包括:从前导Web页面访问请求中提取前导Web页面URL和Web 客户端IP地址,输入当前周期对应的布隆过滤器;
[0013] 所述步骤S102还包括:从预定Web页面访问请求中提取所述前导Web页面URL和 Web客户端IP地址,输入所述滑动窗口所覆盖的K个布隆过滤器,以检索最近K个周期中是 否存在该Web客户端对该访问请求对应的前导Web页面的访问记录。
[0014] 可选地,当最近K个周期中不存在该Web客户端对该访问请求对应的前导Web页 面的访问记录时,丢弃该访问请求的步骤前包括:
[0015] 如果所述滑动窗口内的K个布隆过滤器中不存在该Web客户端对该预定Web页面 访问请求的前导Web页面的访问记录,则检索当前周期内正在创建的布隆过滤器;如果正 在创建的布隆过滤器中存在该Web客户端对该预定Web页面访问请求的前导Web页面的访 问记录,则允许将该访问请求发给Web服务器;如果正在创建的布隆过滤器中也不存在所 述访问记录,贝 1J丢弃该访问请求。
[0016] 可选地,所述步骤S102中还包括:
[0017] 如果在一个周期内各预定Web网页的平均响应时间均未超过该Web网页所对应的 响应时间阈值,且过滤比例低于预定阈值,则返回步骤S101 ;所述过滤比例为在针对所述 预定Web页面的访问请求中,丢弃的访问请求所占的比例。
[0018] 本发明还提供了一种防御资源消耗型攻击的装置,包括:过滤单元;
[0019] 检测单元,用于每当一个周期结束时,分别将监控到的各预定Web页面的访问请 求的平均响应时间和该预定Web页面对应的响应时间阈值比较;如果该周期中存在平均响 应时间大于预置的响应时间阈值的预定Web页面,则启动所述过滤单元;
[0020] 所述过滤单元用于在启动后对于各Web客户端对预定Web页面的访问请求,当最 近K个周期中存在该Web客户端对该访问请求对应的前导Web页面的访问记录时,允许将 该访问请求发给Web服务器;当最近K个周期中不存在该Web客户端访问该访问请求对应 的前导Web页面的记录时,丢弃该访问请求;K为大于1的预定整数。
[0021] 可选地,所述检测单元还用于对各周期分别采用一个布隆过滤器存储该周期中各 Web客户端对前导Web页面的访问记录;各周期所采用的布隆过滤器构成一个布隆过滤器 序列;采用一个宽度为K个周期长度的滑动窗口覆盖最近K个周期的布隆过滤器,所述滑动 窗口的最右侧是最新生成的布隆过滤器。
[0022] 可选地,所述布隆过滤器各散列函数输入为前导Web页面URL和Web客户端IP地 址;
[0023] 所述检测单元还用于从前导Web页面访问请求中提取前导Web页面URL和Web客 户端IP地址,输入当前周期对应的布隆过滤器;
[0024] 所述过滤单元还用于从预定Web页面访问请求中提取所述前导Web页面URL和 Web客户端IP地址,输入所述滑动窗口所覆盖的K个布隆过滤器,以检索最近K个周期中是 否存在该Web客户端对该访问请求对应的前导Web页面的访问记录。
[0025] 可选地,所述过滤单元还用于在丢弃访问请求前,检索当前周期内正在创建的布 隆过滤器;如果正在创建的布隆过滤器中存在该Web客户端对该该预定Web页面访问请求 的前导Web页面的访问记录,则允许将该访问请求发给Web服务器;如果正在创建的布隆过 滤器中也不存在所述访问记录,则丢弃该访问请求。
[0026] 可选地,所述检测单元还用于当所述过滤单元启动后,如果在一个周期内各预定 Web网页的平均响应时间均未超过该Web网页所对应的响应时间阈值,且过滤比例低于预 定阈值,则关闭所述过滤单元;所述过滤比例为在针对所述预定Web页面的访问请求中,丢 弃的访问请求所占的比例。
[0027] 本发明的实施例提供了一种轻量级的资源消耗型Web攻击防御方案,可以部署在 传统Web安全网关上或Web应用防火墙上,不用修改Web服务器端的应用程序代码,也不需 要修改Web页面代码,易于部署和实施;而且无须对正常的Web访问行为进行干预,副作用 小。本发明的实施例主要利用了 Web攻击流量和合法Web访问流量的访问上下文环境不同 来区分两者流量,从而在防御时,能够正确将Web攻击流量和合法Web访问流量区分开来, 对Web攻击流量进行有效过滤,同时,可以最大限度保障正常用户的Web访问服务质量。本 发明的一个优化实施例采用基于滑动窗口的布隆过滤器序列记录最近K个单位时间段内 前导Web页面访问情况,可以确保前导Web页面访问记录的时效性,同时能够大大节省存储 空间。

【专利附图】

【附图说明】
[0028] 图1为实施例一的防御资源消耗型攻击的方法的部署位置示意图;
[0029] 图2为实施例一中所述布隆过滤器记录新元素 a的示意图;
[0030] 图3为实施例一中基于布隆迪过滤器的元素查找示意图;
[0031] 图4为实施例一中所述各个周期所产生的布隆过滤器序列和以及宽度为K的滑动 窗口的不意图;
[0032] 图5为实施例一的例子的流程示意图;
[0033] 图6为实施例二的例子的示意框图。

【具体实施方式】
[0034] 下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
[0035] 需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结 合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况 下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0036] 实施例一、一种防御资源消耗型攻击的方法,包括:
[0037] S101、每当一个周期结束时,分别将监控到的各预定Web页面的访问请求的平均 响应时间和该预定Web页面对应的响应时间阈值比较;如果该周期中存在平均响应时间大 于预置的响应时间阈值的预定Web页面,则进行步骤S102 ;比如有10个预定Web页面,则 相应得到这10个预定Web页面各自的访问请求在该周期的平均响应时间,响应时间阈值也 有10个,和预定Web页面--对应,比较时是分别用每个预定Web页面的访问请求的平均 响应时间和对应的响应时间阈值比较;
[0038] S102、对于各Web客户端对预定Web页面的访问请求,当最近K个周期中存在该 Web客户端对该访问请求对应的前导Web页面的访问记录时,允许将该访问请求发给Web服 务器;当最近K个周期中不存在该Web客户端访问该访问请求对应的前导Web页面的记录 时,丢弃该访问请求;K为大于1的预定整数。
[0039] 本实施例中,所述前导Web页面是指包含一个指向预定Web页面超级链接的Web 页面。
[0040] 本实施例的防御资源消耗型Web攻击的方法适合在Web安全网关或Web应用防火 墙上实现。如图1所示,实施了本实施例的Web安全网关位于Web客户端和受保护的Web 服务器之间,从Web客户端接收HTTP请求并转发给受保护的Web服务器,从受保护的Web 服务器接收HTTP响应并转发给Web客户端。所述Web客户端可能为正常用户使用的标准 Web浏览器,也可能是攻击者用来发动Web攻击的攻击工具。Web客户端通过HTTP协议与 受保护的Web服务器上的应用系统进行通信。Web客户端与受保护的Web服务器上的应用 系统之间的通信都通过Web安全网关进行转发。
[0041] 本实施例中,所述预定Web页面可以但不限于是受保护的Web网站上那些资源消 耗较多从而可能被Web攻击利用的脆弱Web页面。所述响应时间阈值可以为该预定Web页 面的普通平均响应时间值的指定倍数;所述普通平均响应时间值可以根据经验值、理论值 或实验值得到。所述周期的时间长度可以但不限于为30秒,也可以为60秒或其它值。K为 3或4,或选择其它的值,选择的K值越大,则需要的存储空间越多,但记录的访问历史更长; 选择的K值越小,则可以节省存储空间,但记录的前导Web页面访问历史更短;实际使用时, 可以根据需求和存储空间的实际情况自行选择K的取值。
[0042] 本实施例中,可以记录各Web客户端对各前导Web页面的访问情况,包括前导Web 页面请求的客户端IP、Web页面URL以及请求时间。然后,在防御资源消耗型Web攻击时, 通过查找前导Web页面访问历史日志来判定该预定Web页面的访问请求是否存在关联的前 导Web页面请求,就可判定该预定Web页面访问请求是否符合Web访问上下文,如果符合, 则转发,否则丢弃。
[0043] 本实施例中,当接收到针对预定Web页面的访问请求时,通过解析HTTP请求消息, 直接从HTTP请求消息的Referer字段中提取出的字符串就是前导Web页面的URL值。如 果该URL中包含URL参数,则需要从原始URL值中去除URL参数,即去除URL中"?"字符串 之后所有内容得到的值为前导Web页面URL的值。可以但不限于通过网页爬虫识别包含指 向所述预定Web页面超级链接的前导Web页面信息。
[0044] 本实施例中,在检测阶段(步骤S101)中,如果一个周期中各Web页面的平均响应 时间均不大于预置的响应时间阈值,则认为未检测到资源消耗型攻击,无需进入防御阶段 (步骤S102),因此不进行步骤S102。
[0045] 本实施例的一种实施方式中,各周期分别采用一个布隆过滤器(Bloom Filter)存 储当前周期中各Web客户端对前导Web页面的访问记录。布隆过滤器是一个压缩的数据结 构,用来表示一个集合中所有元素,并支持对该集合中元素的查找,即可以回答"某个元素 是否属于某个集合? "的问题。
[0046] 本实施方式中,各周期所采用的布隆过滤器将构成一个布隆过滤器序列;每当一 个周期结束时,将生成一个新的布隆过滤器并追加到所述布隆过滤器序列中。在步骤S102 中,可通过对这个布隆过滤器序列中最近K个布隆过滤器进行检索,从而判定Web客户端在 发出所述预定Web页面访问请求前是否发出过对相关前导Web页面的访问。
[0047] 用来记录单位时间段T内各Web客户端对前导Web页面访问情况的布隆过滤器 如附图2所示。布隆过滤器使用长为m的位串(bit Vector) V来表达数据元素集合A = {ap a2, . . . an}。设有k个具有均勻分布特性的哈希函数{hj, i = 1,. . .,k,满足如下条件: Vx e 為比(X) e {1,2, · · ·,m},则:
[0048] 集合表示方法:对于集合中任一元素%,使用预先定义的k个哈希函数依次 对31进行哈希,得到k个哈希值e [l..m],然后依次将位串向量V的 bp b2,... bk位置1。图2为将一个元素 a插入到Bloom Filter数据结构的过程(k = 3), 使用哈希函数氏、H2和H3对a进行哈希,得到bp b2和b3,将位串向量V的bp b2和b3位均 置为1,其它保持为0。从图2可以看出,Bloom Filter数据表示方法实质是采用多个短标 签来表示一个元素。
[0049] 集合元素查找方法:当需要判定某一元素 a是否属于上述Bloom Filter表示的集 合时,方法如下:1)使用预先定义的k个哈希函数依次对元素 a进行哈希,得到k个哈希值 {bp b2,…bk},bi e [1. · m];然后判断位串向量V的bp b2,…bk位置上是否都为1,如果都 为1,则表示该元素在集合中,否则表示不在集合中。图3示意了基于Bloom Filter实现的 集合元素查找过程(即归属判定算法),对于要查找的元素 a,使用哈希函数氏、H2和H3进 行哈希得到bi、b2和b 3,将位串向量V的bi、b2和b3位作为与门的输入,进行与运算,如果结 果为1则说明存在该元素 a,为0则说明不存在。。
[0050] 基于Bloom Filter实现集合元素查找时可能存在误报,但是可以通过控制位串V 的长度m来将误报率控制在可接受的范围之内。
[0051] 本实施方式中,需要每个布隆过滤器的位串向量V的长度m。m可根据历史访问量 来决定,建议选择长度m时需要确保每个周期结束时,所对应的布隆过滤器的位串的填充 率为1/2以下为最佳。布隆过滤器的位串V长度太长则浪费不必要的空间,位串V长度太 短则会导致误报,过滤情况不佳。
[0052] 本实施方式中,布隆过滤器各散列函数输入为前导Web页面URL和Web客户端IP 地址。在每个周期开始时,创建新的布隆过滤器,然后,对于每个Web客户端对前导Web页 面的访问请求,取该前导Web页面URL和Web客户端IP地址作为布隆过滤器散列函数输入, 对布隆过滤器相应位置进行修改,从而将Web客户端对该前导Web页面的访问记录到当前 周期的布隆过滤器中。
[0053] 在防御阶段,当需要对针对预定Web页面访问请求进行过滤时,需要从预定Web页 面访问请求中提取前导Web页面URL和Web客户端IP地址;其中,前导Web页面URL从预 定Web页面访问请求的Referer字段提取,然后,以所提取的前导Web页面URL和Web客户 端IP地址为最近K个布隆过滤器散列函数输入,判定所述Web客户端在最近K个周期内是 否访问了该关联的前导Web页面。
[0054] 本实施方式中,可以但不限于采用一个宽度为K个周期长度的滑动窗口覆盖最近 K个周期的布隆过滤器,所述滑动窗口的最右侧是最新生成的布隆过滤器;也就是说,当创 建完成一个新的布隆过滤器后,要将所述滑动窗口向右移动,以保证最后生成的布隆过滤 器位于滑动窗口内最右侧,原先位于滑动窗口最左侧的布隆过滤器不再保存。
[0055] 为了确保所存储前导Web页面访问历史记录的时效性,本实施方式采用基于滑动 窗口的布隆过滤器序列来记录和存储各个周期内各Web客户端对前导Web页面的访问情 况。如图4所示,从第一个周期开始,为每个周期创建独立的如图2所示的布隆过滤器结构 体,得到布隆过滤器序列,包括第一个周期对应的布隆过滤器结构体11、……第m个周期对 应的布隆过滤器结构体12、滑动窗口 13 (长度为4个周期)中的最近4个周期对应的布隆 过滤器、以及当前周期正在创建的布隆过滤器结构体14。初始时,滑动窗口 13位于布隆过 滤器序列中的第一个布隆过滤器结构体11的左侧,即滑动窗口为空;第一个周期结束时, 第二个周期开始,为第二个周期创建新的布隆过滤器结构体,同时滑动窗口向前移动一格, 此时滑动窗口中包含了第一个周期中创建的布隆过滤器结构体11 ;第二个周期结束时,第 三个周期开始,为第三个周期创建新的布隆过滤器结构体11,同时滑动窗口向前移动一格, 它包含了第一、第二和第三个周期(假设K = 4)分别创建的布隆过滤器结构体11 ;以此类 推,当滑动窗口内的布隆过滤器个数达到了预先确定的K个时,位于滑动窗口左侧的布隆 过滤器就可以丢弃,这样就确保了当前滑动窗口中总是保存了最近K个周期中各Web客户 端访问前导Web页面的历史记录。
[0056] 本实施方式中,在防御阶段,当最近K个周期中不存在该Web客户端对预定Web页 面访问请求对应的前导Web页面的访问记录时,丢弃该访问请求的步骤前具体可以包括:
[0057] 如果所述滑动窗口内的K个布隆过滤器中不存在该Web客户端对该预定Web页面 访问请求的前导Web页面的访问记录,则检索当前周期内正在创建的布隆过滤器;如果正 在创建的布隆过滤器中存在该Web客户端对该预定Web页面访问请求的前导Web页面的访 问记录,则允许将该访问请求发给Web服务器;如果正在创建的布隆过滤器中也不存在所 述访问记录,贝 1J丢弃该访问请求。
[0058] 由于在步骤S102开始采取防御后,一些正常的Web客户端可能会开始针对Web服 务器的正常访问,为确保这部分合法Web流量的正常转发,在过滤资源消耗型Web攻击流量 而判断所述Web客户端是否访问了所述预定Web页面相关的前导Web页面时,除了检索最 近K个周期所对应的K个布隆过滤器外,还检索当前周期内正在创建的布隆过滤器。
[0059] 本实施例的一种实施方式中,所述步骤S102中还可以包括:
[0060] 如果在一个周期内各预定Web网页的平均响应时间均未超过该Web网页所对应的 响应时间阈值,且过滤比例低于预定阈值,则返回步骤S101 ;所述过滤比例为在针对所述 预定Web页面的访问请求中,丢弃的访问请求所占的比例。
[0061] 本实施方式中,如果各预定Web网页的平均响应时间均未超过该Web网页所对应 的响应时间阈值,且过滤比例低于预定阈值,则判定针对Web服务器的Web攻击结束,可 以回到步骤S101继续检测;如果达不到上述条件则认为攻击还在继续,则依然执行步骤 S102。
[0062] 本实施方式在防御过程中还将定期评估当前针对受保护Web服务器的Web攻击是 否结束,当发现资源消耗型Web攻击结束时,就可以返回资源消耗型Web攻击检测阶段,在 资源消耗型Web攻击检测阶段,只需要记录当前单位时间段T内各Web客户端对前导Web 页面的访问情况,以及通过监控各预定Web页面的平均响应时间来检测资源消耗型Web攻 击,而不进行流量过滤;当检测到资源消耗型Web攻击后再转入防御阶段。
[0063] 下面用一个具体例子说明本实施例,如图5所示,该例子包括步骤一?三。该例子 中以脆弱Web页面作为预定Web页面。
[0064] 步骤501 :使用网页爬虫识别包含指向脆弱Web页面超级链接的前导Web页面信 息(包括前导Web页面的URL和Web客户端IP地址);确定每个脆弱Web页面的普通平均 响应时间值,以及确定周期的时间长度T ;确定需要保存的最新前导Web页面访问历史的有 效时间为K个周期;
[0065] 502 :创建一个布隆过滤器结构体存储当前周期内各Web客户端对前导Web页面的 访问情况;监控当前周期内各脆弱Web页面访问请求的平均响应时间(比如有10个脆弱 Web页面访问请求,那么就有10个平均响应时间);当前周期结束时,如果发现当前周期内 存在平均响应时间大于预先设置的该脆弱Web页面的响应时间阈值(一个脆弱Web页面的 响应时间阈值可以但不限于为该脆弱Web页面的所述普通平均响应时间值的指定倍数)的 脆弱Web页面,则判定检测到针对该脆弱Web页面的资源消耗型Web攻击,进入503执行, 否则继续执行502 ;
[0066] 503 :针对各Web客户端发出的每个脆弱Web页面的访问请求,提取关联的前导 Web页面信息(包括前导Web页面的URL和Web客户端IP地址),并检索最近K个周期所 对应的K个布隆过滤器是否存在所提取的Web页面信息,如果一个脆弱Web页面访问请求 关联的前导Web页面信息存在于K个布隆过滤器所记录的前导Web页面访问历史中(即: 所述K个布隆过滤器中存在所述Web客户端访问过所述前导Web页面的记录),表示该脆 弱Web页面访问请求存在对前导Web页面的访问记录,贝U允许所述脆弱Web页面访问请求 通过,否则丢弃所述Web页面访问请求。
[0067] 实施例二,一种防御资源消耗型Web攻击的装置,包括:过滤单元;
[0068] 检测单元,用于每当一个周期结束时,分别将监控到的各预定Web页面的访问请 求的平均响应时间和该预定Web页面对应的响应时间阈值比较;如果该周期中存在平均响 应时间大于预置的响应时间阈值的预定Web页面,则启动所述过滤单元;
[0069] 所述过滤单元用于在启动后对于各Web客户端对预定Web页面的访问请求,当最 近K个周期中存在该Web客户端对该访问请求对应的前导Web页面的访问记录时,允许将 该访问请求发给Web服务器;当最近K个周期中不存在该Web客户端访问该访问请求对应 的前导Web页面的记录时,丢弃该访问请求;K为大于1的预定整数。
[0070] 本实施例中,所述前导Web页面是指包含一个指向预定Web页面超级链接的Web 页面。
[0071] 本实施例的一种实施方式中,所述检测单元还可以用于对各周期分别采用一个布 隆过滤器存储该周期中各Web客户端对前导Web页面的访问记录;各周期所采用的布隆过 滤器构成一个布隆过滤器序列;采用一个宽度为K个周期长度的滑动窗口覆盖最近K个周 期的布隆过滤器,所述滑动窗口的最右侧是最新生成的布隆过滤器。
[0072] 当然,在其它实施方式中,也可以采用别的方式存储访问记录。
[0073] 本实施方式中,所述布隆过滤器各散列函数输入可以但不限于为前导Web页面 URL和Web客户端IP地址;
[0074] 所述检测单元还用于从前导Web页面访问请求中提取前导Web页面URL和Web客 户端IP地址,输入当前周期对应的布隆过滤器;
[0075] 所述过滤单元还用于从预定Web页面访问请求中提取所述前导Web页面URL和 Web客户端IP地址,输入所述滑动窗口所覆盖的K个布隆过滤器,以检索最近K个周期中是 否存在该Web客户端对该访问请求对应的前导Web页面的访问记录。
[0076] 本实施方式的一种备选方案中,所述过滤单元还可以用于在丢弃访问请求前,检 索当前周期内正在创建的布隆过滤器;如果正在创建的布隆过滤器中存在该Web客户端对 该该预定Web页面访问请求的前导Web页面的访问记录,则允许将该访问请求发给Web服 务器;如果正在创建的布隆过滤器中也不存在所述访问记录,则丢弃该访问请求。
[0077] 本实施例的一种实施方式中,所述检测单元还可以用于当所述过滤单元启动后, 如果在一个周期内各预定Web网页的平均响应时间均未超过该Web网页所对应的响应时 间阈值,且过滤比例低于预定阈值,则关闭所述过滤单元;所述过滤比例为在针对所述预定 Web页面的访问请求中,丢弃的访问请求所占的比例。
[0078] 下面用一个具体例子说明本实施例,该例子中,预定Web页面为脆弱Web页面;本 实施例的防御资源消耗型Web攻击的装置应用在如图6所示的Web安全网关中,该Web安 全网关还包括:Web网页请求转发模块和Web页面响应转发模块;
[0079] Web页面请求转发模块:用于将接收到的Web页面访问请求转发给受保护的Web 服务器;
[0080] Web响应转发模块:用于接收来自受保护Web服务器的Web页面响应消息,然后转 发给对应的Web客户端。
[0081] 本例子中,防御资源消耗型Web攻击的装置里的检测单元具体可以包括:网页爬 虫模块、Web网页请求分类模块、前导Web网页访问记录模块、脆弱Web网页监控模块;
[0082] Web网页请求分类模块:接收来自Web客户端的Web页请求,并分为三类:针对脆 弱Web页面的访问请求,交给脆弱Web页面监控模块处理;针对前导Web页面的访问请求, 交给前导Web页面访问记录模块处理;其它Web页面访问请求,直接发送给Web页面请求转 发模块;
[0083] 网页爬虫模块:对受保护Web网站进行扫描,识别被保护Web网站上那些资源消耗 较多从而可能被Web攻击利用的脆弱Web页面,以及包含指向这些脆弱Web页面超级链接 的前导Web页面信息;所述脆弱Web页面信息和前导Web页面信息提供给Web网页请求分 类模块以分类,还分别提供给前导Web页面访问记录模块和脆弱Web页面监控模块使用;
[0084] 前导Web网页访问记录模块:接收来自Web页面请求分类模块转发来的前导Web 页面访问请求,提取前导Web页面的URL以及Web客户端IP地址,从所述Web响应转发模 块提取Web页面响应结果和响应时间;采用布隆过滤器来记录当前周期内的前导Web页面 访问情况,各个周期T所生成的布隆过滤器构成一个布隆过滤器序列;
[0085] 脆弱Web网页监控模块:在资源消耗型Web攻击检测阶段,接收来自Web页面请求 分类模块转发来的脆弱Web页面访问请求,并从Web页面响应转发模块提取脆弱Web页面 的响应时间,计算当前周期内每个脆弱Web页面的平均响应时间;如果刚结束的周期中存 在平均响应时间大于预置的响应时间阈值的脆弱Web页面,则启动所述过滤单元,并将脆 弱Web页面访问请求转发给该过滤单元;
[0086] 防御资源消耗型Web攻击的装置里的过滤单元用于在启动后从脆弱Web页面访问 请求中提取包含在脆弱Web页面请求消息中的前导Web页面URL信息以及Web客户端IP 地址,并以此检索所述布隆过滤器序列中最近K个布隆过滤器,来判定该Web客户端是否在 最近的K个时间段内发起过与所述脆弱Web页面请求相关的前导Web页面请求:如果是,则 表明针对该脆弱Web页面的请求符合Web访问上下文语义,转发该脆弱Web页面请求给Web 页面请求转发模块;否则判定为针对该脆弱Web页面的恶意请求,直接丢弃。
[0087] 本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘 等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应 地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[〇〇88]当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明的权利要求的保护范围。
【权利要求】
1. 一种防御资源消耗型攻击的方法,包括: 5101、 每当一个周期结束时,分别将监控到的各预定Web页面的访问请求的平均响应 时间和该预定Web页面对应的响应时间阈值比较;如果该周期中存在平均响应时间大于预 置的响应时间阈值的预定Web页面,则进行步骤S102 ; 5102、 对于各Web客户端对预定Web页面的访问请求,当最近K个周期中存在该Web客 户端对该访问请求对应的前导Web页面的访问记录时,允许将该访问请求发给Web服务器; 当最近K个周期中不存在该Web客户端访问该访问请求对应的前导Web页面的记录时,丢 弃该访问请求;K为大于1的预定整数。
2. 如权利要求1所述的方法,其特征在于: 各周期分别采用一个布隆过滤器存储当前周期中各Web客户端对前导Web页面的访问 记录;各周期所采用的布隆过滤器构成一个布隆过滤器序列; 采用一个宽度为K个周期长度的滑动窗口覆盖最近K个周期的布隆过滤器,所述滑动 窗口的最右侧是最新生成的布隆过滤器。
3. 如权利要求2所述的方法,其特征在于: 所述布隆过滤器各散列函数输入为前导Web页面URL和Web客户端IP地址; 所述步骤S101还包括:从前导Web页面访问请求中提取前导Web页面URL和Web客户 端IP地址,输入当前周期对应的布隆过滤器; 所述步骤S102还包括:从预定Web页面访问请求中提取所述前导Web页面URL和Web 客户端IP地址,输入所述滑动窗口所覆盖的K个布隆过滤器,以检索最近K个周期中是否 存在该Web客户端对该访问请求对应的前导Web页面的访问记录。
4. 如权利要求2所述的方法,其特征在于,当最近K个周期中不存在该Web客户端对该 访问请求对应的前导Web页面的访问记录时,丢弃该访问请求的步骤前包括: 如果所述滑动窗口内的K个布隆过滤器中不存在该Web客户端对该预定Web页面访问 请求的前导Web页面的访问记录,则检索当前周期内正在创建的布隆过滤器;如果正在创 建的布隆过滤器中存在该Web客户端对该预定Web页面访问请求的前导Web页面的访问记 录,则允许将该访问请求发给Web服务器;如果正在创建的布隆过滤器中也不存在所述访 问记录,贝IJ丢弃该访问请求。
5. 如权利要求1?4中任一项所述的方法,其特征在于,所述步骤S102中还包括: 如果在一个周期内各预定Web网页的平均响应时间均未超过该Web网页所对应的响应 时间阈值,且过滤比例低于预定阈值,则返回步骤S101 ;所述过滤比例为在针对所述预定 Web页面的访问请求中,丢弃的访问请求所占的比例。
6. -种防御资源消耗型攻击的装置,其特征在于,包括:过滤单元; 检测单元,用于每当一个周期结束时,分别将监控到的各预定Web页面的访问请求的 平均响应时间和该预定Web页面对应的响应时间阈值比较;如果该周期中存在平均响应时 间大于预置的响应时间阈值的预定Web页面,则启动所述过滤单元; 所述过滤单元用于在启动后对于各Web客户端对预定Web页面的访问请求,当最近K 个周期中存在该Web客户端对该访问请求对应的前导Web页面的访问记录时,允许将该访 问请求发给Web服务器;当最近K个周期中不存在该Web客户端访问该访问请求对应的前 导Web页面的记录时,丢弃该访问请求;K为大于1的预定整数。
7. 如权利要求6所述的装置,其特征在于: 所述检测单元还用于对各周期分别采用一个布隆过滤器存储该周期中各Web客户端 对前导Web页面的访问记录;各周期所采用的布隆过滤器构成一个布隆过滤器序列;采用 一个宽度为K个周期长度的滑动窗口覆盖最近K个周期的布隆过滤器,所述滑动窗口的最 右侧是最新生成的布隆过滤器。
8. 如权利要求7所述的装置,其特征在于: 所述布隆过滤器各散列函数输入为前导Web页面URL和Web客户端IP地址; 所述检测单元还用于从前导Web页面访问请求中提取前导Web页面URL和Web客户端 IP地址,输入当前周期对应的布隆过滤器; 所述过滤单元还用于从预定Web页面访问请求中提取所述前导Web页面URL和Web客 户端IP地址,输入所述滑动窗口所覆盖的K个布隆过滤器,以检索最近K个周期中是否存 在该Web客户端对该访问请求对应的前导Web页面的访问记录。
9. 如权利要求7所述的装置,其特征在于: 所述过滤单元还用于在丢弃访问请求前,检索当前周期内正在创建的布隆过滤器;如 果正在创建的布隆过滤器中存在该Web客户端对该该预定Web页面访问请求的前导Web页 面的访问记录,则允许将该访问请求发给Web服务器;如果正在创建的布隆过滤器中也不 存在所述访问记录,贝 1J丢弃该访问请求。
10. 如权利要求6?9中任一项所述的装置,其特征在于: 所述检测单元还用于当所述过滤单元启动后,如果在一个周期内各预定Web网页的平 均响应时间均未超过该Web网页所对应的响应时间阈值,且过滤比例低于预定阈值,则关 闭所述过滤单元;所述过滤比例为在针对所述预定Web页面的访问请求中,丢弃的访问请 求所占的比例。
【文档编号】H04L29/06GK104113525SQ201410222702
【公开日】2014年10月22日 申请日期:2014年5月23日 优先权日:2014年5月23日
【发明者】叶润国, 范科峰, 徐克超, 蔡磊 申请人:中国电子技术标准化研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1