首页> 中国专利> 防御网络攻击的方法、服务器及计算机可读存储介质

防御网络攻击的方法、服务器及计算机可读存储介质

摘要

本发明公开了一种防御网络攻击的方法、服务器及计算机可读存储介质。本发明中,通过基于预先构建的行为分析统计表中的预设分析因子,从客户端发起的业务请求中提取与预设分析因子对应的特征信息,并根据提取的特征信息更新预设分析因子对应的指标数据,即将客户端对网站的访问行为映射在行为分析统计表中,从而在业务请求落地为日志前,就可以根据预设的攻击判断规则,从行为分析统计表中选取满足攻击判断规则的多个目标预设分析因子,并根据攻击判断规则与目标预设分析因子对应的指标数据,判断业务请求是否为攻击请求,进而将攻击请求直接阻断,基于此能够提前识别出业务请求是否为攻击行为,从而大大提升了对爬虫攻击的识别即防护效率。

著录项

  • 公开/公告号CN112434304A

    专利类型发明专利

  • 公开/公告日2021-03-02

    原文格式PDF

  • 申请/专利权人 网宿科技股份有限公司;

    申请/专利号CN202011406157.6

  • 发明设计人 陈志勇;王凤杰;蔡舒晗;

    申请日2020-12-02

  • 分类号G06F21/57(20130101);G06F21/56(20130101);G06F21/62(20130101);G06F21/60(20130101);

  • 代理机构31260 上海晨皓知识产权代理事务所(普通合伙);

  • 代理人成丽杰

  • 地址 200030 上海市徐汇区斜土路2899号甲光启文化广场A幢5楼

  • 入库时间 2023-06-19 10:05:17

说明书

技术领域

本发明实施例涉及网络安全技术领域,特别涉及一种防御网络攻击的方法、服务器及计算机可读存储介质。

背景技术

爬虫,是一种自动获取网页内容的程序,通常会根据其合法性,划分为合法爬虫,如单纯用于采集数据,供搜索者查阅的搜索引擎类爬虫;以及非法爬虫,如非法采集数据,甚至发起DDoS攻击(Distributed denial of service attack,分布式拒绝服务攻击)的恶意爬虫。

随着互联网的发展,互联网上恶意爬虫的数量日益增加,这些恶意爬虫会伪造用户信息,模拟用户行为,绕过企业安全策略,并不断地访问服务器以获取信息。这样不仅严重拖慢了服务器的响应速度,还会浪费网络带宽,甚至会非法盗取信息,进而破坏企业正常营销活动的开展,最终给企业造成不可估量的经济损失。

为了防御恶意爬虫造成的网络攻击,目前通常会采用已知特征的访问控制、客户端访问频率限制、基于访问日志分析识别爬虫行为的方式来防止爬虫的攻击。但是,采用访问控制的方式来防止爬虫攻击,通常是基于如IP(Internet Protocol,网际互联协议)、User-Agent(用户代理)、Cookie(储存在用户本地终端上的数据)等常规的已知特征来设定企业安全策略的,而此类特征是较容易伪造的,因此企业安全策略很容易就会被绕过;采用客户端访问频率限制的方式来防止爬虫攻击,虽然在一定程度上可以缓解爬虫攻击对企业业务造成的影响,但是随着网络黑产技术及工具的不断更新迭代,爬虫的行为越来越拟人化,因而较难设定一个合适的访问频率限制阈值,以平衡正常用户访问和爬虫攻击行为,如在多用户单出口或NAT(Network Address Translation,网络地址转换)环境下,用户群共享同一个出口IP,如果设置的阈值不合理,可能会带来严重误报或漏报;而基于访问日志分析识别的方式来防止爬虫攻击,对于日志收集、分析的延迟会产生较大依赖,攻击方可以通过代理IP、秒拨IP等黑产工具,切换身份特征进行分散攻击或超低频攻击,从而导致基于日志的分析输出的攻击特征无法持续应用,进而绕过企业安全策略。

发明内容

本发明实施例的目的在于提供一种防御网络攻击的方法、服务器及计算机可读存储介质,旨在解决上述技术问题。

为解决上述技术问题,本发明的实施例提供了一种防御网络攻击的方法,包括以下步骤:

获取客户端发起的业务请求;

根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息,并根据所述特征信息,更新所述行为分析统计表中所述预设分析因子对应的指标数据;

根据预设的攻击判断规则,从所述行为分析统计表中选取满足所述攻击判断规则的多个目标预设分析因子,并根据所述攻击判断规则与所述目标预设分析因子对应的所述指标数据,判断所述业务请求是否为攻击请求;

若是,则阻断所述业务请求。

本发明的实施例还提供了一种服务器,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上文所述的防御网络攻击的方法。

本发明的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的防御网络攻击的方法。

本发明实施例提供的防御网络攻击的方法、服务器及计算机可读存储介质,通过基于预先构建的行为分析统计表中的预设分析因子,从客户端发起的业务请求中提取与预设分析因子对应的特征信息,并根据提取的特征信息更新预设分析因子对应的指标数据,即将客户端对网站的访问行为映射在行为分析统计表中,从而可以基于当前访问行为识别攻击并对攻击进行阻断,而并非是仅仅基于客户端的身份特征对攻击进行检测,有效解决了目前爬虫通过伪造各类身份特征绕过访问控制策略的问题。

此外,在本发明实施例中,由于对业务请求的检测是基于预设的攻击判断规则和行为分析统计表中的目标预设分析因子对应的指标数据进行的,而行为分析统计表中预设分析因子对应的指标数据又是根据实时发起的业务请求中提取出的特征信息进行动态更新的,这样便实现了对业务请求的实时检测判定,从而能够及时发现爬虫攻击,在业务请求落地为日志前,就可以根据预设的攻击判断规则和行为分析统计表中满足该规则的多个目标预设分析因子对应的指标数据,提前识别出业务请求是否为攻击行为,进而在识别为攻击行为时直接进行阻断,从而大大提升了对爬虫攻击的识别及防护效率。

此外,在本发明实施例中,在确定业务请求为非法业务请求,即识别到爬虫攻击时,仅阻断当前本次攻击请求,将阻断行为仅限于当前请求本身,而非对发起请求的端口、IP进行封禁,从而可以较好的控制防护范围,进而降低漏报和误报率。

另外,所述行为分析统计表的构建,包括:获取预先确定的所述预设分析因子;将所述预设分析因子作为字段名,在内存中建表,并将所述预设分析因子对应的所述指标数据设置为空值或0,得到所述行为分析统计表。本发明中,通过根据预先确定的预设分析因子在内存中构建行为分析统计表,从而在获取到客户端发起的业务请求之后,能够快速从内存中读取出行为分析统计表中的预设分析因子,进而根据预设分析因子从业务请求中提取相应的特征信息,并根据提取的特征信息快速更新行为分析统计表中预设分析因子对应的指标数据,即能够提高安全服务器对业务请求的处理速度,

此外,在本发明中,通过将客户端的访问行为映射为行为分析统计表,并进行分类记录,行为分析统计表中的预设分析因子是从当前业务请求到达业务服务器之前进行提取,且行为分析统计表记录的是周期内的多个目标预设分析因子对应的指标数据,即使业务请求被爬虫等攻击行为伪造客户端身份特征,仍无法绕开攻击判断规则。

另外,所述行为分析统计表的构建,还包括:为所述预设分析因子设置对应的分析周期,所述分析周期用于限定所述预设分析因子的有效期。本发明中,在构建行为分析统计表时,通过设置用于限定预设分析因子的有效期的分析周期,从而可以通过设定的分析周期,合理调整行为分析统计表中的预设分析因子,使得行为分析统计表能够根据实际访问情况进行调整,以更好的确定业务请求的合法性。

另外,在所述得到所述行为分析统计表之后,所述方法还包括:记录所述预设分析因子的存在时长,并在所述存在时长大于所述分析周期时,将所述预设分析因子,及所述预设分析因子对应的所述指标数据,从所述行为分析统计表中删除。

另外,在所述将所述预设分析因子,及所述预设分析因子对应的所述指标数据,从所述行为分析统计表中删除之前,所述方法还包括:获取所述存在时长内,所述预设分析因子在各时刻时对应的所述指标数据;对所述各时刻的所述指标数据进行分析,得到所述预设分析因子对应的变化率;根据所述变化率和预设的删除策略,判断是否需要将所述预设分析因子,及所述预设分析因子对应的所述指标数据,从所述行为分析统计表中删除;若需要,则执行所述将所述预设分析因子,及所述预设分析因子对应的所述指标数据,从所述行为分析统计表中删除的步骤。本发明中,通过分析预设分析因子在各时刻对应的指标数据,进而获得预设因子在存在时长内的变化率,进而根据确定的变化率和预设的删除策略确定是否需要将预设分析因子,及预设分析因子对应的指标数据,从行为分析统计表中删除,从而可以避免将可能是攻击行为的预设分析因子删除。

另外,在所述根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息之前,所述方法还包括:获取当前时刻的所述预设分析因子,得到待比较分析因子;将所述行为分析统计表中的所述预设分析因子,与所述待比较分析因子进行比较;若所述预设分析因子与所述待比较分析因子匹配,则执行所述根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息的步骤;否则,根据所述待比较分析因子,修改所述行为分析统计表中的所述预设分析因子,并在修改所述行为分析统计表中的所述预设分析因子后,执行所述根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息的步骤。本发明中,通过上述处理方式,实现了对行为分析统计表中的预设分析因子的动态更新,进而使得分析统计表也能够根据访问行为实时变换,从而更好的适应于客户端发起的各种业务请求,进而及时发现潜在的攻击请求。

另外,所述获取客户端发起的业务请求,包括:监测与业务服务器建立通信连接的所述客户端;在监测到所述客户端向业务服务器发起所述业务请求时,拦截所述业务请求。本发明中,通过上述处理方式,从而无需专门设定客户端发起的业务请求先到执行防御网络攻击方法的安全服务器,而是由安全服务器主动拦截。这样,对于任意接入到业务服务器的客户端,安全服务器都可以进行监督。

另外,根据预设的攻击判断规则,从所述行为分析统计表中选取满足所述攻击判断规则的多个目标预设分析因子,并根据所述攻击判断规则与所述目标预设分析因子对应的所述指标数据,判断所述业务请求是否为攻击请求;若否,则将所述业务请求转发至业务服务器。本发明中,通过根据预设的攻击判断规则与满足攻击判断规则的多个目标预设分析因子对应的指标数据,来确定业务请求的合法性,即识别业务请求是否为攻击请求,进而在确定业务请求是攻击请求时,直接阻断业务请求,在业务请求不是攻击请求,即合法请求时,才将业务请求转发至业务服务器,由业务服务器进行处理,从而在不影响合法业务请求的同时,有效阻断了非法业务请求对业务服务器的访问,进而避免业务服务器遭受攻击。

另外,所述预设的攻击判断规则由策略控制服务器根据所述客户端的业务特征分类训练获得;在所述根据预设的攻击判断规则,从所述行为分析统计表中选取满足所述攻击判断规则的多个目标预设分析因子,并根据所述攻击判断规则与所述目标预设分析因子对应的所述指标数据之前,所述方法还包括:分析所述业务请求,确定适合所述业务请求的攻击判断规则,从所述策略控制服务器获取所述攻击判断规则,根据所述攻击判断规则,从所述行为分析统计表中选取满足所述攻击判断规则的多个目标预设分析因子及与所述目标预设分析因子对应的所述指标数据,判断所述业务请求是否为攻击请求。本发明中,攻击判断规则由策略控制服务器根据所述客户端的业务特征分类训练获得,从而在选择用来判断当前业务请求合法性的攻击判断规则时,通过分析业务请求请求,进而从策略控制服务器获取适合当前业务请求的攻击判断规则,使得最终用来判断当前业务请求合法性的攻击判断规则是仅针对当前业务请求的。

此外,在本发明中,由于预设的攻击判断规则是根据客户端的访问特征设置的,而判断当前业务请求合法性时所依据的多个目标预设分析因子,又是基于根据当前业务请求确定的攻击判断规则选取的,对于不同的业务请求,攻击判断规则可能不同,所以根据攻击判断规则选取的目标预设分析因子也是动态变化的,从而解决了现有固定采用某一种特征信息作为防御恶意网络爬虫造成的攻击时,特征信息容易被伪造的问题。

另外,所述预设分析因子包括:业务域名、客户端标识、总请求次数、不同超文本传输协议HTTP方法的请求次数、javascript文件请求次数、图片文件请求次数;所述客户端标识包括:网际互联协议IP、用户代理UA、设备指纹。本发明,给出了多种维度的预设分析因子,通过多种预设分析因子的组合,能够快速、准确的识别出各种爬虫攻击,从而更好的保护了企业的业务安全。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本发明第一实施例提供的防御网络攻击的方法的具体流程图;

图2是本发明第一实施例提供的防御网络攻击的方法中涉及的客户端、安全服务器、策略控制服务器、业务服务器之间的交互示意图;

图3是本发明第二实施例提供的防御网络攻击的方法的具体流程图;

图4是本发明第三实施例提供的防御网络攻击的装置的结结构示意图;

图5是本发明第四实施例提供的服务器的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

本发明的第一实施例涉及一种防御网络攻击的方法,应用于服务器。

为了尽可能保证被访问的业务的安全性,本实施例将客户端需要访问的业务的处理操作,单独部署于业务服务器进行处理,将实现本发明涉及的防疫网络攻击方案的服务器称为安全服务器,即专门部署了用于判断客户端发起的业务请求的安全性的安全服务器,以及专门用于处理安全、合法的业务请求的业务服务器。

下面对本实施例的防御网络攻击的方法的实现细节进行说明,以下内容仅为方便理解而提供的实现细节,并非实施本方案的必须。

本实施例的具体流程如图1所示,具体包括以下步骤:

步骤101,获取客户端发起的业务请求。

具体的说,在本实施例中,安全服务器获取客户端发起的业务请求的操作,可以是通过监测与业务服务器建立通信连接的所有客户端,并在监测到有任意客户端向业务服务器发起业务请求时,直接拦截客户端发往业务服务器的业务请求。

在实际应用中,这种拦截方式,具体是在业务请求到达业务服务器之前,由安全服务器拦截该业务请求,接着由安全服务器对业务请求进行合法性判断,然后根据判断结果,决定是否阻断该业务请求,使其不能到达业务服务器。

通过这种由安全服务器主动拦截的处理方式,能够对任意发往业务服务器的业务请求进行实时监测,在业务请求到达安全服务器时即对请求进行检测,有效保障了业务服务器的安全性。

进一步地,在实际应用中,为了既做到拦截所有发往业务服务器的业务请求,又降低对安全服务器的资源占用,即减少安全服务器花费大量资源监督与业务服务器通信的客户端。可以直接将客户端访问业务服务器的目的IP映射到安全服务器的IP,即面向客户端的目的IP实质是安全服务器的,从而在客户端发起业务请求时,业务请求能够直接到达安全服务器。

进一步地,为了不影响操作客户端的用户的使用体验,同时又便于对安全服务器的更新维护,可以采用虚拟IP与实际物理IP相配合的方式,即对于客户端,始终分配的是安全服务器固定的虚拟IP,然后建立虚拟IP与实际物理IP的映射,这样对于客户端,每次发起业务请求时,始终访问的是安全服务器的虚拟IP,而究竟到达哪个实际物理IP对应的安全服务器,则会根据预先构建的虚拟IP与实际物理IP之间的映射表,自动转发到对应的安全服务器,这样就可以设置主、从安全服务器,在主安全服务器进行更新维护,或者发生异常时,业务请求可以直接转发到从安全服务器。

应当理解的是,上述示例仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。

步骤102,根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息,并根据所述特征信息,更新所述行为分析统计表中所述预设分析因子对应的指标数据。

具体的说,为了提高安全服务器对业务请求的处理速度,在本实施例中预先构建的行为分析统计表是直接由安全服务器构建在本机内存中的,从而在获取到客户端发起的业务请求之后,能够快速从内存中读取出行为分析统计表中的预设分析因子,进而根据预设分析因子从业务请求中提取相应的特征信息,并根据提取的特征信息快速更新行为分析统计表中预设分析因子对应的指标数据。借此,将客户端的访问行为映射为行为分析统计表,并进行分类记录,行为分析统计表中的预设分析因子是从当前业务请求到达业务服务器之前进行提取,且行为分析统计表记录的是周期内的多个目标预设分析因子对应的指标数据,即使业务请求被爬虫等攻击行为伪造客户端身份特征,仍无法绕开攻击判断规则。

进一步地,为了使得构建的分析分析统计表能够全方位的涵盖各种访问行为,而不仅仅是客户端的身份特征或某一种单一的特征,如某一种请求数,本实施例在安全服务器中预先存储了能够满足各种业务需求的,多维度的预设分析因子。

关于这些预设分析因子的设置,在实际应用中,可以是由技术人员设定的,也可以是基于预设的机器学习算法,比如卷积神经网络算法,对历史攻击行为数据进行分析,进而确定目前各类攻击行为对应的攻击特征,并将对应攻击特征的客户端的访问行为映射为预设分析因子。

相应地,在安全服务器的内容中构建行为分析统计表的过程,具体为:先从本地存储预设分析因子的区域获取预设分析因子,然后将获取到的预设分析因子作为建表的字段名,在内存中建表,同时将预设因子对应的指标数据设置为空值或0,进而得到行为分析统计表。

为了使构建的行为分析统计表能够尽可能涵盖各种业务请求中携带的特征信息,在本实施例中,构建行为分析统计表所依据的预设分析因子包括,但不限于业务域名、客户端标识、总请求次数、不同超文本传输协议HTTP方法的请求次数、javascript(JS)文件请求次数、图片文件请求次数,即在实际应用中可以根据企业的业务类型,针对发起的业务请求可能携带的特征信息设置相应的预设分析因子。

相应地,客户端标识包括,但不限于网际互联协议IP、用户代理UA、设备指纹,即在实际应用中还可以包括其他能标识客户端身份的标识信息。

通过预设多种维度的预设分析因子,从而可以在判断业务请求的合法性或安全性时,能够基于根据不同业务请求确定的攻击判断规则,从行为分析统计表中选取合适的预设分析因子作为目标预设分析因子,进而通过对选取的多个目标预设分析因子的组合,能够快速、准确的识别出各种爬虫攻击,进而可以更好的保护企业的业务安全。

此外,需要说明的是,在构建行为分析统计表时,为预设分析因子对应的指标数据设置空值,还是0,具体是根据预设分析因子本身确定的。

比如说,针对请求次数(不同HTTP方法的请求次数、JS文件请求次数、图片文件请求次数)的预设分析因子,对应的指标数据的初始值可以设置为0,以便在后续提取到此类预设分析因子对应的特征信息时,直接对指标数据进行计算值的累加。

还比如说,针对业务域名、客户端标识等需要具体描述信息的预设分析因子,对应的指标数据的初始值可以设置为空值,以便在后续提取到此类预设分析因子对应的特征信息时,直接将特征信息记录到这类预设分析因子对应的指标数据区域中。

应当理解的是,上述示例仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。

进一步地,在实际应用中,安全服务器在构建行为分析统计表时,还可以为行为分析统计表中的各预设分析因子设置对应的分析周期。

具体的说,所述分析周期是用于限定对应的预设分析因子的有效期的,即在某一时刻内,一预设分析因子可能是攻击请求的一个特征,在其他时刻,随着企业业务需求的变化,该预设分析因子就变成合法特征了。

相应地,在为行为分析统计表中的各预设分析因子设置了对应的分析周期后,安全服务器需要记录各预设分析因子的存在时长,进而在存在时长大于该预设分析因子对应的分析周期时,根据业务需要,将该预设分析因子,及与之对应的指标数据,从行为分析统计表中删除。

当然,在实际应用中,也可以根据业务需求,设置存在时长小于对应的分析周期时,将该预设分析因子,及与之对应的指标数据,从行为分析统计表中删除。具体的删除条件,本领域技术人员可以根据需要设置,本实施例对此不做限制。

进一步地,为了避免将可能是攻击行为的预设分析因子,及对应的指标数据删除,进而导致安全服务器无法检测出客户端发起的业务请求是否为攻击请求。在将预设分析因子,及预设分析因子对应的指标数据,从行为分析统计表中删除之前,可以先分析该预设分析因子在存在时长内,各时刻对应的指标数据的变化率,进而根据变化率来决定是否需要进行删除,具体实现方式如下:

首先,获取所述存在时长内,所述预设分析因子在各时刻时对应的所述指标数据;

然后,对所述各时刻的所述指标数据进行分析,得到所述预设分析因子对应的变化率;

最后,根据所述变化率和预设的删除策略,判断是否需要将所述预设分析因子,及所述预设分析因子对应的所述指标数据,从所述行为分析统计表中删除。

具体的说,所述删除策略可以是规定,在变化率不断增大时,不删除;反之,则删除。

相应地,若通过判断,确定需要则执行所述将所述预设分析因子,及所述预设分析因子对应的所述指标数据,从所述行为分析统计表中删除的操作。

步骤103,根据预设的攻击判断规则,从所述行为分析统计表中选取满足所述攻击判断规则的多个目标预设分析因子。

步骤104,根据所述攻击判断规则与所述目标预设分析因子对应的所述指标数据,判断所述业务请求是否为攻击请求。

具体的说,在步骤102中通过行为分析统计表对客户端的访问行为的特征信息进行了记录,在步骤103和步骤104中,当预设分子因子对应的指标数据满足预设的攻击判断规则,则会触发对应的攻击判断规则判断当前业务请求是否为攻击请求,也即安全服务器根据预设的攻击判断规则,确定触发该攻击判断规则的多个目标预设分子因子,从表征客户端访问行为的行为分析统计表中选取该多个目标预设分析因子,以及与多个目标预设分析因子对应的指标数据,判断这些指标数据是否满足攻击判断规则的条件,从而判断所述业务请求是否为攻击请求。

相应地,若通过判断,确定当前业务请求是攻击请求,则直接执行步骤105对该业务请求进行阻断,即不将确定为攻击请求的业务请求转发至业务服务器;反之,则执行步骤106将业务请求转发至业务服务器,由业务服务器作出对业务请求的响应。

需要说明的是,在本实施例中,为了便于对攻击判断规则的更新维护,攻击判断规则是由单独部署的服务器进行管理的,为了便于区分,以下将管理攻击判断规则的服务器称为策略控制服务器。

具体而言,为了使安全服务器从策略控制服务器获取到适合当前业务请求的攻击判断规则,由策略控制服务器管理的攻击判断规则,具体是根据客户端的业务特征分类训练获得的。

相应地,在执行步骤104时,可以在每一次判断之前,分析当前业务请求,确定适合该业务请求的攻击判断规则,即先从策略控制服务器获取最新,且适合当前业务请求的攻击判断规则,然后再根据获取到的攻击判断规则,从行为分析统计表中选取满足该攻击判断规则的多个目标预设分析因子,并根据攻击判断规则与目标预设分析因子对应的指标数据,来判断业务请求是否为攻击请求。

由于,预设的攻击判断规则是由策略控制服务器根据客户端的业务特征分类训练获得的,而当前时刻安全服务器从策略控制服务器获取的攻击判断规则,是通过对实时获取到的业务请求分析确定的,保证了确定的攻击判断规则是仅适合当前的业务请求的,从而能够实现仅阻断攻击请求本身,而不影响共用IP的用户群中其他客户端发起的合法业务请求。

关于本实施例中所说的攻击判断规则,可以是某几个预设分析因子,也即前文所述的多个目标预设分析因子对应的指标数据的计数值满足某一预设条件(如大于,或小于,或等于)时,认为当前业务请求为攻击请求;也可以是某几个预设分析因子对应的指标数据的占比满足某一预设条件(如大于,或小于,或等于);还可以是某几个预设分析因子对应的指标数据的不为空时,即只要从业务请求中提取出这类预设分析因子对应的特征数据,便认为当前业务请求为攻击请求。

为了便于理解,以下举例进行说明:

假设预先构建的行为分析统计表中的预设分析因子包括N种分析因子,比如分析因子1为、分析因子2...分析因子N,并且这些分析因子对应的初始值均为0或空值。

表1初始行为分析统计表

在接收到业务请求后,从所述业务请求中提取表1中给出的预设分析因子对应的特征信息,并根据每一种分析因子对应的特征信息更新表1中分析因子对应的指标数据后,得到的更新后的行为分析统计表如表2。

表2更新后的行为分析统计表

在一实施例中,例如分析因子1为客户端的IP地址如IP1,分析因子2为GET请求数,分析因子3为静态资源请求数(如图片、JS文件),分析因子4为总请求数,分析因子5为POST请求数,如果根据当前的业务请求,确定满足攻击判断规则的目标预设分析因子为表2中的分析因子1-5,具体的攻击判断规则可以限定“预设周期内,GET请求数和静态资源请求数小于1,总请求数小于6,POST请求数大于1时,确定当前的业务请求为API攻击请求”,当该业务请求满足该攻击判断规则时,对该业务请求进行拦截,否则不拦截,即直接转发至业务服务器。

基于确定的攻击判断规则和表2中记录的内容可知,当前业务请求为API攻击请求。

这种基于业务请求自身的业务特征确定的仅适合当前业务请求的攻击判断规则,相较于现有一般是设置一个总请求数阈值,比如100,当总请求数超过100,则拦截当前客户端IP的所有请求的方式,能够有效识别特定特征的攻击,例如API低频攻击,且只对当前业务请求进行阻断,而不是阻断被判断有攻击行为的客户端IP的所有请求。

具体的,对于API低频攻击,即“预设周期内GET请求数和静态资源请求数小于1,总请求数小于6,POST请求数大于1”,总请求数远远小于100,基于常规的根据总请求数阈值来判断攻击的方式,因为总请求没有超过阈值,会将该业务请求判断为正常业务请求,但根据本申请的攻击判断规则,结合表征客户端访问行为的行为分析统计表中的预设分析因子,当多个目标预设分析因子的指标数据满足攻击判断规则,则触发该攻击判断规则进行攻击行为判断,综合判断多个目标预设分析因子的指标数据如GET请求数、静态资源请求数、POST请求数及总请求数,当预设周期内,GET请求数和静态资源请求数小于1,总请求数小于6,POST请求数大于1时,那么说明当前存在刷端口的攻击行为。这样,基于本实施例中确定的攻击判断规则对业务请求进行处理时,由于行为分析统计表中的预设分析因子是客户端的全方位的访问行为特征的映射,基于分析统计表中的满足所述攻击判断规则的多个目标预设分析因子的判断,可以快速、准确的识别出攻击请求,减少攻击行为漏报的风险。

相应地,如果从业务请求中提取的目标预设分析因子对应的指标数据不满足上述规定,比如是“预设周期内,GET请求数大于等于1,静态资源请求数大于等于1,总请求数小于6,POST请求数大于1”,则认为当前业务请求不是攻击请求,不需要进行阻断。比如更新后的行为分析表中记录的上述5种分析因子对应的指标数据如表3,则认为当前业务请求不是攻击请求,不需要进行阻断。

表3更新后的行为分析统计表

应当理解的是,上述示例仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。

为了便于理解本实施例提供的防御网络攻击的方法中,客户端、安全服务器、业务服务器和策略控制服务器的交互,以下结合图2进行说明:

如图2所示,防御网络攻击的方法适用于的整体网络架构主要包括客户端、安全服务器、策略控制服务器,以及业务服务器。

具体而言,在实际应用中,客户端为可以发起业务请求的设备,如PC端、移动端,也可以是服务器等。

相应地,策略控制服务器为管理攻击判断规则的服务器。在实际应用中,策略控制服务器会根据根据不同客户端的业务特征分类训练获得能够适合不同业务请求的攻击判断规则,从而能够像安全服务器推送适合当前接收到的业务请求的攻击判断规则。

相应地,业务服务器为实际提供业务请求响应的服务器。在本实施例中具体是为合法的业务请求,即非攻击请求提供响应,并作出处理。

相应地,安全服务器为执行本实施例提供的防御网络攻击方法的服务器,主要用于处理客户端发起的业务请求,将客户端发起的业务请求解析为行为分析统计表中预设分析因子对应的指标数据,存在本地内存中,并结合从策略控制服务器获取到的攻击判断规则,对业务请求进行攻击判断,并对识别为爬虫攻击的业务请求,即攻击请求,对攻击请求进行阻断,对于正常用户的业务请求,即合法请求,则转发给业务服务器处理。

由此,本实施例中提供的防御网络攻击的方法,通过基于预先构建的行为分析统计表中的预设分析因子,从客户端发起的业务请求中提取与预设分析因子对应的特征信息,并根据提取的特征信息更新预设分析因子对应的指标数据,即将客户端对网站的访问行为映射在行为分析统计表中,从而可以基于当前访问行为识别攻击并对攻击进行阻断,而并非是仅仅基于客户端的身份特征对攻击进行检测,有效解决了目前爬虫通过伪造各类身份特征绕过访问控制策略的问题。

此外,在本实施例中,由于对业务请求的检测是基于预设的攻击判断规则和行为分析统计表中的目标预设分析因子对应的指标数据进行的,而行为分析统计表中预设分析因子对应的指标数据又是根据实时发起的业务请求中提取出的特征信息进行动态更新的,这样便实现了对业务请求的实时检测判定,从而能够及时发现爬虫攻击,在业务请求落地为日志前,就可以根据预设的攻击判断规则和行为分析统计表中满足该规则的多个目标预设分析因子对应的指标数据,提前识别出业务请求是否为攻击行为,进而在识别为攻击行为时直接进行阻断,从而大大提升了对爬虫攻击的识别及防护效率。

此外,在本实施例中,在确定业务请求为非法业务请求,即识别到爬虫攻击时,仅阻断当前本次攻击请求,将阻断行为仅限于当前请求本身,而非对发起请求的端口、IP进行封禁,从而可以较好的控制防护范围,进而降低漏报和误报率。

此外,在本实施例中,攻击判断规则由策略控制服务器根据所述客户端的业务特征分类训练获得,从而在选择用来判断当前业务请求合法性的攻击判断规则时,通过分析业务请求请求,进而从策略控制服务器获取适合当前业务请求的攻击判断规则,使得最终用来判断当前业务请求合法性的攻击判断规则是仅针对当前业务请求的。

此外,在本实施例中,由于预设的攻击判断规则是根据客户端的访问特征设置的,而判断当前业务请求合法性时所依据的多个目标预设分析因子,又是基于根据当前业务请求确定的攻击判断规则选取的,对于不同的业务请求,攻击判断规则可能不同,所以根据攻击判断规则选取的目标预设分析因子也是动态变化的,从而解决了现有固定采用某一种特征信息作为防御恶意网络爬虫造成的攻击时,特征信息容易被伪造的问题。

本发明的第二实施例涉及一种防御网络攻击的方法。第二实施例在第一实施例的基础上做了进一步改进,主要改进之处为:根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息之前,将行为分析统计表中的预设分析因子,与策略控制服务器中当前时刻的预设分析因子进行比较,进而根据比较结果,对行为分析统计表中的预设分析因子进行更新。

如图3所示,第二实施例涉及的防御网络攻击的方法,包括如下步骤:

步骤301,获取客户端发起的业务请求。

不难发现,本实施例的步骤301与第一实施例中的步骤101大致相同,此处不再赘述。

步骤302,获取当前时刻的所述预设分析因子,得到待比较分析因子。

具体的说,获取的当前时刻的所述预设分析因子,是指安全服务器本地记录的预设分析因子,这些预设分析因子,可能是构建行为分析统计表时所使用的预设分析因子,也可能是新增的,或者是删除了构建行为分析表时所使用的某些预设分析因子。

步骤303,判断所述预设分析因子是否与所述待比较分析因子匹配。

即,将行为分析统计表中记录的预设分析因子,与当前时刻安全服务器从本地检测到的待比较分析因子进行比较。

相应地,若通过比较,确定二者匹配,即行为分析统计表中记录的预设分析因子,与当前时刻从策略控制服务器获取到的待比较分析因子是相同的,则直接进入步骤305;否则,执行步骤304。

步骤304,根据所述待比较分析因子,修改所述行为分析统计表中的所述预设分析因子。

具体的说,若待比较分析因子与预设分析因子不匹配,可能是完全不相同,也可能是部分不相同,则根据待比较分析因子对行为分析统计表中的预设分析因子进行修改,以使行为分析统计中的预设分析因子能够与待比较分析因子匹配,进而实现对行为分析统计表的实时更新维护。

步骤305,根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息,并根据所述特征信息,更新所述行为分析统计表中所述预设分析因子对应的指标数据。

步骤306,根据预设的攻击判断规则,从所述行为分析统计表中选取满足所述攻击判断规则的多个目标预设分析因子。

步骤307,根据所述攻击判断规则与所述目标预设分析因子对应的所述指标数据,判断所述业务请求是否为攻击请求。

步骤308,阻断所述业务请求。

步骤309,将所述业务请求转发至业务服务器。

不难发现,本实施例的步骤305至步骤309与第一实施例中的步骤102至步骤106大致相同,此处不再赘述。

由此,本实施例中提供的防御网络攻击的方法,通过基于上述处理方式,实现了对行为分析统计表中的预设分析因子的动态更新,进而使得分析统计表也能够根据实际情况实时变换,从而更好的适应于客户端发起的各种业务请求,进而及时发现潜在的攻击请求。

应当理解的是,上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第三实施例涉及一种防御网络攻击的装置,如图4所示,包括:获取模块401、提取模块402、选取模块403、判断模块404和处理模块405。

其中,获取模块401,用于获取客户端发起的业务请求;提取模块402,用于根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息,并根据所述特征信息,更新所述行为分析统计表中所述预设分析因子对应的指标数据;选取模块403,用于根据预设的攻击判断规则,从所述行为分析统计表中选取满足所述攻击判断规则的多个目标预设分析因子;判断模块404,用于根据所述攻击判断规则与所述目标预设分析因子对应的所述指标数据,判断所述业务请求是否为攻击请求;处理模块405,用于在所述业务请求是攻击请求时,阻断所述业务请求。

此外,在另一个例子中,防御网络攻击的装置,还包括行为分析统计表构建模块。

具体而言,行为分析统计表构建模块,用于获取预先确定的所述预设分析因子;将所述预设分析因子作为字段名,在内存中建表,并将所述预设分析因子对应的所述指标数据设置为空值或0,得到所述行为分析统计表。

此外,在另一个例子中,行为分析统计表构建模块在构建行为分析统计表时,还用于为所述预设分析因子设置对应的分析周期。

具体的说,所述分析周期用于限定所述预设分析因子的有效期。

此外,在另一个例子中,行为分析统计表构建模块,在完成对行为分析统计表的构建之后,还用于执行以下操作:

记录所述预设分析因子的存在时长,并在所述存在时长大于所述分析周期时,将所述预设分析因子,及所述预设分析因子对应的所述指标数据,从所述行为分析统计表中删除。

此外,在另一个例子中,行为分析统计表构建模块,在将所述预设分析因子,及所述预设分析因子对应的所述指标数据,从所述行为分析统计表中删除之前,还用于执行以下操作:

获取所述存在时长内,所述预设分析因子在各时刻时对应的所述指标数据;

对所述各时刻的所述指标数据进行分析,得到所述预设分析因子对应的变化率;

根据所述变化率和预设的删除策略,判断是否需要将所述预设分析因子,及所述预设分析因子对应的所述指标数据,从所述行为分析统计表中删除;

若需要,则执行所述将所述预设分析因子,及所述预设分析因子对应的所述指标数据,从所述行为分析统计表中删除的操作。

此外,在另一个例子中,行为分析统计表构建模块,还用于在提取模块402执行根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息的操作之前,执行以下操作:

获取当前时刻的所述预设分析因子,得到待比较分析因子;

将所述行为分析统计表中的所述预设分析因子,与所述待比较分析因子进行比较。

相应地,若所述预设分析因子与所述待比较分析因子匹配,则触发提取模块402执行所述根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息的操作;否则,根据所述待比较分析因子,修改所述行为分析统计表中的所述预设分析因子,并在修改所述行为分析统计表中的所述预设分析因子后,触发提取模块402执行所述根据预先构建的行为分析统计表中的预设分析因子,从所述业务请求中提取与所述预设分析因子对应的特征信息的操作。

此外,在另一个例子中,获取模块401在获取客户端发起的业务请求时,具体为:

监测与业务服务器建立通信连接的所述客户端;

在监测到所述客户端向业务服务器发起所述业务请求时,拦截所述业务请求。

此外,在另一个例子中,处理模块405还用于在判断模块404根据所述攻击判断规则与所述目标预设分析因子对应的所述指标数据,判断所述业务请求是否为攻击请求,并确定所述业务请求不是攻击请求时,将所述业务请求转发至业务服务器。

此外,在另一个例子中,所述预设的攻击判断规则由策略控制服务器根据所述客户端的业务特征分类训练获得。

相应地,防御网络攻击的装置还包括攻击判断规则确定模块。

具体而言,攻击判断规则确定模块,用于在选取模块403执行上述操作前,分析所述业务请求,确定适合所述业务请求的攻击判断规则,从所述策略控制服务器获取所述攻击判断规则。

相应地,选取模块403在从行为分析统计表中选取多个目标预设分析因子时,是根据攻击判断规则确定模块确定的攻击判断规则,从所述行为分析统计表中选取满足所述攻击判断规则的多个目标预设分析因子。

此外,在另一个例子中,所述预设分析因子包括,但不限于:业务域名、客户端标识、总请求次数、不同超文本传输协议HTTP方法的请求次数、javascript文件请求次数、图片文件请求次数;所述客户端标识包括,但不限于:网际互联协议IP、用户代理UA、设备指纹。

不难发现,本实施例为与第一或第二实施例相对应的装置实施例,本实施例可与第一或第二实施例互相配合实施。第一或第二实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一或第二实施例中。

值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。

本发明第四实施例涉及一种服务器,如图5所示,包括至少一个处理器501;以及,与所述至少一个处理器501通信连接的存储器502;其中,所述存储器502存储有可被所述至少一个处理器501执行的指令,所述指令被所述至少一个处理器501执行,以使所述至少一个处理器501能够执行上述第一或第二实施例所描述的防御网络攻击的方法。

其中,存储器502和处理器501采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器501和存储器502的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器501处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传输给处理器501。

处理器501负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器502可以被用于存储处理器501在执行操作时所使用的数据。

本发明第五实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述防御网络攻击的方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号