网站可用性检测方法、系统、可读存储介质及装置转让专利

申请号 : CN202110917616.5

文献号 : CN113660244B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李祯范渊

申请人 : 杭州安恒信息技术股份有限公司

摘要 :

本发明提供一种网站可用性检测方法、系统、可读存储介质及装置,所述方法包括:获取待检测的站点IP,并建立待检测的站点IP对应的学习模型;在WAF的外网口提取日常Web业务访问的目的IP,判断目的IP与学习模型的建模IP是否一致;若目的IP与学习模型的建模IP一致,则控制WAF对符合建模IP的Web请求信息做关键信息统计,判断关键信息是否在预设的正常范围内;若关键信息不在预设的正常范围内,则对目的IP进行非代理处理,以按照Linux网桥二层转发方式透传。本发明通过利用WAF机器学习功能,学习监控web服务器的http响应关键信息、以及经WAF自身处理的关键时效信息,经过合理建模,联动网桥转发机制,提升业务访问的可持续性。

权利要求 :

1.一种网站可用性检测方法,其特征在于,所述方法包括:

将健康可用性检测的站点IP输入机器学习模型中进行学习,并设置机器学习模型的参数,所述参数包括学习周期个数、静态/动态类型url和每个学习周期单位;

获取每个所述学习周期单位内符合条件的url请求,并采集多个所述url请求的相关信息,根据所述相关信息确定机器学习模型的基线,以得到所述站点IP对应的学习模型;

其中,所述采集多个所述url请求的相关信息的步骤包括:

记录每条所述url请求到达WAF的外网口的时间戳,作为第一时间戳;

记录每条所述url请求对应的服务器到达WAF的内网口的服务器响应报文中携带的响应码,作为响应码;

记录每条所述url请求对应的服务器响应报文到达所述WAF的内网口的时间戳,作为第二时间戳;

记录每条所述url请求对应的响应报文离开所述WAF的外网口的时间戳,作为第三时间戳;

所述根据所述相关信息确定机器学习模型的基线的步骤包括:

在一个所述学习周期单位中,获取所述响应码中最关键的响应码出现的分布比例;

根据所述第一时间戳和所述第三时间戳得到客户端从发出请求到接收响应的第一时间差值,并计算本周期内所有的第一时间差值的中位数;

根据所述第二时间戳和所述第三时间戳得到WAF转发服务器响应报文消耗在内部的第二时间差值,并计算本周期内所有的第二时间差值的中位数;

通过所述最关键的响应码出现的分布比例、所有的所述第一时间差值的中位数和所有的所述第二时间差值的中位数与总的所述学习周期个数,计算出所述最关键的响应码出现率的平均值、所有的所述第一时间差值的中位数的平均值以及所有的所述第二时间差值的中位数的平均值;

根据所述最关键的响应码出现率的平均值、所有的所述第一时间差值的中位数的平均值以及所有的所述第二时间差值的中位数的平均值,确定机器学习模型基线;

在WAF的外网口提取日常Web业务访问的目的IP,判断所述目的IP与所述学习模型的建模IP是否一致;

若所述目的IP与所述学习模型的建模IP一致,则控制所述WAF对符合所述建模IP的Web请求信息做关键信息统计,判断所述关键信息是否在预设的正常范围内;

若所述关键信息不在所述预设的正常范围内,则对所述目的IP进行非代理处理,以按照Linux网桥二层转发方式透传。

2.根据权利要求1所述的网站可用性检测方法,其特征在于,所述判断所述目的IP与所述学习模型的建模IP是否一致的步骤之后,所述方法还包括:若所述目的IP与所述学习模型的建模IP不一致,则将所述目的IP按正常流程代理转给后端服务器。

3.根据权利要求1所述的网站可用性检测方法,其特征在于,所述判断所述关键信息是否在预设的正常范围内的步骤之后,所述方法还包括:若所述关键信息在所述预设的正常范围内,则将所述目的IP按正常流程代理转给后端服务器。

4.一种网站可用性检测系统,其特征在于,所述系统包括:

学习模块,用于将健康可用性检测的站点IP输入机器学习模型中进行学习,并设置机器学习模型的参数,所述参数包括学习周期个数、静态/动态类型url和每个学习周期单位;

以及获取每个所述学习周期单位内符合条件的url请求,并采集多个所述url请求的相关信息,根据所述相关信息确定机器学习模型的基线,以得到所述站点IP对应的学习模型;其中,所述采集多个所述url请求的相关信息包括:记录每条所述url请求到达WAF的外网口的时间戳,作为第一时间戳;记录每条所述url请求对应的服务器到达WAF的内网口的服务器响应报文中携带的响应码,作为响应码;记录每条所述url请求对应的服务器响应报文到达所述WAF的内网口的时间戳,作为第二时间戳;记录每条所述url请求对应的响应报文离开所述WAF的外网口的时间戳,作为第三时间戳;所述根据所述相关信息确定机器学习模型的基线包括:在一个所述学习周期单位中,获取所述响应码中最关键的响应码出现的分布比例;根据所述第一时间戳和所述第三时间戳得到客户端从发出请求到接收响应的第一时间差值,并计算本周期内所有的第一时间差值的中位数;根据所述第二时间戳和所述第三时间戳得到WAF转发服务器响应报文消耗在内部的第二时间差值,并计算本周期内所有的第二时间差值的中位数;通过所述最关键的响应码出现的分布比例、所有的所述第一时间差值的中位数和所有的所述第二时间差值的中位数与总的所述学习周期个数,计算出所述最关键的响应码出现率的平均值、所有的所述第一时间差值的中位数的平均值以及所有的所述第二时间差值的中位数的平均值;根据所述最关键的响应码出现率的平均值、所有的所述第一时间差值的中位数的平均值以及所有的所述第二时间差值的中位数的平均值,确定机器学习模型基线;

判断模块,用于在WAF的外网口提取日常Web业务访问的目的IP,判断所述目的IP与所述学习模型的建模IP是否一致;

控制模块,用于若所述目的IP与所述学习模型的建模IP一致,则控制所述WAF对符合所述建模IP的Web请求信息做关键信息统计,判断所述关键信息是否在预设的正常范围内;

处理模块,用于若所述关键信息不在所述预设的正常范围内,则对所述目的IP进行非代理处理,以按照Linux网桥二层转发方式透传。

5.根据权利要求4所述的网站可用性检测系统,其特征在于,所述判断模块包括:

第一处理单元,用于若所述目的IP与所述学习模型的建模IP不一致,则将所述目的IP按正常流程代理转给后端服务器。

6.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至3中任一项所述的网站可用性检测方法。

7.一种网站可用性检测装置,包括服务器,所述服务器包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述的网站可用性检测方法。

说明书 :

网站可用性检测方法、系统、可读存储介质及装置

技术领域

[0001] 本申请涉及网络安全技术领域,特别是涉及网站可用性检测方法、系统、可读存储介质及装置。

背景技术

[0002] 目前应用层的攻击愈发多样,需要对web业务服务器进行网络安全防御,于是会部署WAF(web网页防火墙),场景的部署场景有透明代理、反向代理。透明代理是指物理串接在业务线路中,处于7层代理工作模式,但WAF自身没有业务地址,导致无法通过TCP会话直接探测后端服务器健康性;或者无法感知WAF自身代理功能的健康性,出现因WAF自身问题而影响业务访问。
[0003] 现有对业务站点可用性检测的方法,大多基于域名访问的方式。由一台负载均衡设备(或者nginx)对指定业务服务器进行定期间隔性的7层HTTP访问探测,在一个计算周期内,根据返回的结果判断其健康可用状态。主要依据两类结果:1.源探测端能否与服务器建立TCP连接,服务端口通;2.源探测端发出http请求url,是否能收到服务器返回的http状态码200。
[0004] 目前的相关技术中存在以下缺点:1.当WAF以透明代理串接在负载均衡与web服务器之间时,源探测端是与WAF的端口建立TCP连接,而非后端服务器的端口;2.源探测端发出http请求url后,只关注是否收到正确的http状态码,不关注每次的获取等待时间,无法敏锐识别出业务访问延迟的异常情况;3.上述探测技术无法进一步辨析业务异常是WAF原因,还是web服务器原因;4.当前WAF透明代理工作模式中,尚无针对web服务器进行可用性检测的方法。

发明内容

[0005] 本申请实施例提供了一种网站可用性检测方法、系统、可读存储介质及装置,以至少解决上述相关技术中的不足。
[0006] 第一方面,本申请实施例提供了一种网站可用性检测方法,所述方法包括:
[0007] 获取待检测的站点IP,并建立所述待检测的站点IP对应的学习模型;
[0008] 在WAF的外网口提取日常Web业务访问的目的IP,判断所述目的IP与所述学习模型的建模IP是否一致;
[0009] 若所述目的IP与所述学习模型的建模IP一致,则控制所述WAF对符合所述建模IP的Web请求信息做关键信息统计,判断所述关键信息是否在预设的正常范围内;
[0010] 若所述关键信息不在所述预设的正常范围内,则对所述目的IP进行非代理处理,以按照Linux网桥二层转发方式透传。
[0011] 在其中一些实施例中,所述判断所述目的IP与所述学习模型的建模IP是否一致的步骤之后,所述方法还包括:
[0012] 若所述目的IP与所述学习模型的建模IP不一致,则将所述目的IP按正常流程代理转给后端服务器。
[0013] 在其中一些实施例中,所述获取待检测的站点IP,并建立所述待检测的站点IP对应的学习模型的步骤包括:
[0014] 将健康可用性检测的站点IP输入机器学习模型中进行学习,并设置机器学习模型的参数,所述参数包括学习周期个数、静态/动态类型url、每个学习周期单位;
[0015] 获取每个所述学习周期单位内符合条件的url请求,并采集多个所述url请求的相关信息,根据所述相关信息确定机器学习模型的基线,以得到所述站点IP对应的学习模型。
[0016] 在其中一些实施例中,所述采集多个所述url请求的相关信息的步骤包括:
[0017] 记录每条所述url请求到达所述WAF外网口的时间戳,作为第一时间戳;
[0018] 记录每条所述url请求对应的服务器到达所述WAF内网口的服务器响应报文中携带的响应码,作为响应码;
[0019] 记录每条所述url请求对应的服务器响应报文到达WAF内网口的时间戳,作为第二时间戳;
[0020] 记录每条所述url请求对应的响应报文离开WAF外网口的时间戳,作为第三时间戳。
[0021] 在其中一些实施例中,所述根据所述相关信息确定机器学习模型的基线的步骤包括:
[0022] 在一个所述学习周期单位中,获取所述响应码中最关键的响应码出现的分布比例;
[0023] 根据所述第一时间戳和所述第三时间戳得到所述获取客户端从发出请求到接收响应的第一时间差值,并计算本周期内所有的第一时间差值的中位数;
[0024] 根据所述第二时间戳和所述第三时间戳得到所述WAF转发服务器响应报文消耗在内部的第二时间差值,并计算本周期内所有的第二时间差值的中位数;
[0025] 通过所述最关键的响应码出现的分布比例、所有的所述第一时间差值的中位数和所有的所述第二时间差值的中位数与总的所述学习周期个数,计算出所述最关键的响应码出现率的平均值、所有的所述第一时间差值的中位数的平均值以及所有的所述第二时间差值的中位数的平均值;
[0026] 根据所述最关键的响应码出现率的平均值、所有的所述第一时间差值的中位数的平均值以及所有的所述第二时间差值的中位数的平均值,确定机器学习模型基线。
[0027] 在其中一些实施例中,所述判断所述关键信息是否在预设的正常范围内的步骤之后,所述方法还包括:
[0028] 若所述关键信息在所述预设的正常范围内,则将所述目的IP按正常流程代理转给后端服务器。
[0029] 第二方面,本申请实施例提供了一种网站可用性检测系统,所述系统包括:
[0030] 学习模块,用于获取待检测的站点IP,并建立所述待检测的站点IP对应的学习模型;
[0031] 判断模块,用于在WAF的外网口提取日常Web业务访问的目的IP,判断所述目的IP与所述学习模型的建模IP是否一致;
[0032] 控制模块,用于若所述目的IP与所述学习模型的建模IP一致,则控制所述WAF对符合所述建模IP的Web请求信息做关键信息统计,判断所述关键信息是否在预设的正常范围内;
[0033] 处理模块,用于若所述关键信息不在所述预设的正常范围内,则对所述目的IP进行非代理处理,以按照Linux网桥二层转发方式透传。
[0034] 在其中一些实施例中,所述判断模块包括:
[0035] 第一处理单元,用于若所述目的IP与所述学习模型的建模IP不一致,则将所述目的IP按正常流程代理转给后端服务器。
[0036] 第三方面,本申请实施例提供了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的网站可用性检测方法。
[0037] 第四方面,本申请实施例提供了一种网站可用性检测装置,包括服务器,所述服务器包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的网站可用性检测方法。
[0038] 相比于相关技术,本申请实施例提供的网站可用性检测方法、系统、可读存储介质及装置,通过Web应用防火墙以7层代理的工作模式串接在web服务器外侧,基于WAF机器学习能力,建立一个包含网站业务http状态码范围分布、WAF内部转发http状态码所耗延迟时间为基线的大模型,利用WAF机器学习功能,学习监控web服务器的http响应关键信息、以及经WAF自身处理的关键时效信息,经过合理建模,联动网桥转发机制,提升业务访问的可持续性,当请求客户端访问网站业务时,从发出请求到收得http状态码消耗的时间超过警戒阈值后,WAF针对此服务器停止代理,以网桥直通的方式进行转发流量,避免因WAF自身原因影响网站的可用性。解决了现有技术中无法通过TCP会话直接探测后端服务器健康性;或者无法感知WAF自身代理功能的健康性,出现因WAF自身问题而影响业务访问的问题。
[0039] 本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

[0040] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0041] 图1为本发明第一实施例中的网站可用性检测方法的流程图;
[0042] 图2为本发明第二实施例中的网站可用性检测方法的流程图;
[0043] 图3为本发明第三实施例中的网站可用性检测方法的流程图;
[0044] 图4为本发明第四实施例中的网站可用性检测系统的结构框图;
[0045] 图5为本发明第五实施例中的网站可用性检测装置的结构框图。
[0046] 主要元件符号说明:
[0047]
[0048]
[0049] 如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

[0050] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0051] 显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
[0052] 在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
[0053] 除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
[0054] 实施例一
[0055] 请参阅图1,所示为本发明第一实施例中的网站可用性检测方法,用于透明代理,所述方法具体包括步骤S101至S104:
[0056] S101,获取待检测的站点IP,并建立所述待检测的站点IP对应的学习模型;
[0057] 在具体实施时,从WAF要代理防护的诸多站点中,选择要健康可用性检测的站点IP,同时将选中的站点IP输入机器学习模型的功能菜单中进行学习,并设置机器学习模型中学习周期个数、静态\动态类型url、每个学习周期单位(5分钟或10分钟或20分钟或30分钟),系统根据预设的每个学习周期单位,关注此单位时间内符合条件的URL请求,同时采集多个所述URL请求的相关信息,采集信息的步骤包括如下:
[0058] S11,记录每条URL请求到达WAF外网口的时间戳(精确毫秒单位);
[0059] S12,记录每条URL请求对应的来自服务器到达WAF内网口的,服务器响应报文中携带的响应码,例如http code 200、30x、40x、50x;
[0060] S13,记录每条URL请求对应的服务器响应报文到达WAF内网口的时间戳(精确毫秒单位);
[0061] S14,记录每条URL请求对应的响应报文离开WAF外网口的时间戳(精确毫秒单位)。
[0062] 其中请求客户端到服务器的流量流程依次为请求客户端、WAF外网口、WAF内网口、服务器IP。
[0063] 机器计算结果:
[0064] 在一个学习周期单位中,根据步骤S12所产生的响应码,统计最关键的响应码50x(例如500,502,503代表URL请求失败)出现的分布比例A,其中根据总的学习周期个数,计算出最关键的响应码50x出现率的平均值A1,其中
[0065] 根据步骤S14与步骤S11的差值,即为请求客户端从发出请求到接收响应的时间差值B,计算本周期内所有B的中位数值B1(单个周期内所有B按照从小到大顺序排序,采用二分法找到中位数值B1),根据总的学习周期个数,计算出多个中位数值B1的平均值B2,其中[0066] 根据步骤S14与步骤S13的差值,即为WAF转发服务器响应报文在消耗在内部的时间差值C,计算本周期内所有的C的中位数值C1(单个周期内所有C按照从小到大顺序排序,采用二分法找到中位数值C1),根据总的学习周期个数,计算出多个中位数值C1的平均值C2,其中
[0067] 结合A1、B2、C2,针对同一个站点IP,从三个维度构成机器学习模型基线,其中,第一维度是URL请求失败的出现率,即最终的A值;第二维度是URL请求到接收经历的时间差值,即最终的B值;第三个维度是WAF内部处理URL响应报文耗时的时间差,即最终的C值,并针对A、B、C三个数值,设置正常动态浮动区间上限,例如正常最高上浮为+10%。
[0068] S102,在WAF的外网口提取日常Web业务访问的目的IP,判断所述目的IP与所述学习模型的建模IP是否一致;
[0069] 在具体实施时,当客户端URL请求数据包到达WAF外网口时,WAF会依照流程提取源IP、目的IP、源端口、目的端口,判断其中的目的IP与所述学习模型的建模IP是否一致。
[0070] S103,若所述目的IP与所述学习模型的建模IP一致,则控制所述WAF对符合所述建模IP的Web请求信息做关键信息统计,判断所述关键信息是否在预设的正常范围内;
[0071] 在具体实施时,学习完成后,所述WAF对符合信息采集要求的URL请求和响应包统计A、B、C的数值,然后按照最近200次请求、最近300次请求、最近400次请求,分别统计出三个A的平均值、三个B的平均值、三个C的平均值。
[0072] 判断是否存在三个相同类型的值连续超过正产区间上限,即三个A的平均值、三个B的平均值、三个C的平均值中任一一种类型的三个数值都超过上限值,则判断为异常。
[0073] S104,若所述关键信息不在所述预设的正常范围内,则对所述目的IP进行非代理处理,以按照Linux网桥二层转发方式透传。
[0074] 经过步骤S103的判断,出现超过上限的情况,WAF会认为访问体验不佳,存在访问异常情况,也可能是WAF自身代理环节出现问题,于是对后续产生的新URL请求,WAF以网桥直通的方式直接透传,绕过WAF处理。
[0075] 综上,本发明上述实施例当中的网站可用性检测方法,通过Web应用防火墙以7层代理的工作模式串接在web服务器外侧,基于WAF机器学习能力,建立一个包含网站业务http状态码范围分布、WAF内部转发http状态码所耗延迟时间为基线的大模型,利用WAF机器学习功能,学习监控web服务器的http响应关键信息、以及经WAF自身处理的关键时效信息,经过合理建模,联动网桥转发机制,提升业务访问的可持续性,当请求客户端访问网站业务时,从发出请求到收得http状态码消耗的时间超过警戒阈值后,WAF针对此服务器停止代理,以网桥直通的方式进行转发流量,避免因WAF自身原因影响网站的可用性。
[0076] 实施例二
[0077] 请参阅图2,所示为本发明第二实施例中的网站可用性检测方法,用于透明代理,所述方法具体包括步骤S201至S203:
[0078] S201,获取待检测的站点IP,并建立所述待检测的站点IP对应的学习模型;
[0079] 在具体实施时,从WAF要代理防护的诸多站点中,选择要健康可用性检测的站点IP,同时将选中的站点IP输入机器学习模型的功能菜单中进行学习,并设置机器学习模型中学习周期个数、静态\动态类型url、每个学习周期单位(5分钟或10分钟或20分钟或30分钟),系统根据预设的每个学习周期单位,关注此单位时间内符合条件的URL请求,同时采集多个所述URL请求的相关信息,采集信息的步骤包括如下:
[0080] S11,记录每条URL请求到达WAF外网口的时间戳(精确毫秒单位);
[0081] S12,记录每条URL请求对应的来自服务器到达WAF内网口的,服务器响应报文中携带的响应码,例如http code 200、30x、40x、50x;
[0082] S13,记录每条URL请求对应的服务器响应报文到达WAF内网口的时间戳(精确毫秒单位);
[0083] S14,记录每条URL请求对应的响应报文离开WAF外网口的时间戳(精确毫秒单位)。
[0084] 其中请求客户端到服务器的流量流程依次为请求客户端、WAF外网口、WAF内网口、服务器IP。
[0085] 机器计算结果:
[0086] 在一个学习周期单位中,根据步骤S12所产生的响应码,统计最关键的响应码50x(例如500,502,503代表URL请求失败)出现的分布比例A,其中根据总的学习周期个数,计算出最关键的响应码50x出现率的平均值A1,其中
[0087] 根据步骤S14与步骤S11的差值,即为请求客户端从发出请求到接收响应的时间差值B,计算本周期内所有B的中位数值B1(单个周期内所有B按照从小到大顺序排序,采用二分法找到中位数值B1),根据总的学习周期个数,计算出多个中位数值B1的平均值B2,其中[0088] 根据步骤S14与步骤S13的差值,即为WAF转发服务器响应报文在消耗在内部的时间差值C,计算本周期内所有的C的中位数值C1(单个周期内所有C按照从小到大顺序排序,采用二分法找到中位数值C1),根据总的学习周期个数,计算出多个中位数值C1的平均值C2,其中
[0089] 结合A1、B2、C2,针对同一个站点IP,从三个维度构成机器学习模型基线,其中,第一维度是URL请求失败的出现率,即最终的A值;第二维度是URL请求到接收经历的时间差值,即最终的B值;第三个维度是WAF内部处理URL响应报文耗时的时间差,即最终的C值,并针对A、B、C三个数值,设置正常动态浮动区间上限,例如正常最高上浮为+10%。
[0090] S202,在WAF的外网口提取日常Web业务访问的目的IP,判断所述目的IP与所述学习模型的建模IP是否一致;
[0091] 在具体实施时,当客户端URL请求数据包到达WAF外网口时,WAF会依照流程提取源IP、目的IP、源端口、目的端口,判断其中的目的IP与所述学习模型的建模IP是否一致。
[0092] S203,若所述目的IP与所述学习模型的建模IP不一致,则将所述目的IP按正常流程代理转给后端服务器。
[0093] 在具体实施时,上述步骤S202中的目的IP不在监控列表中时,WAF无须采集各种A、B、C的数值,按照正常流程进行代理并转发后端服务器。其中,监控列表中的IP是指WAF界面设置的需要进行保护站点学习的IP。
[0094] 综上,本发明上述实施例当中的网站可用性检测方法,通过Web应用防火墙以7层代理的工作模式串接在web服务器外侧,基于WAF机器学习能力,建立一个包含网站业务http状态码范围分布、WAF内部转发http状态码所耗延迟时间为基线的大模型,利用WAF机器学习功能,学习监控web服务器的http响应关键信息、以及经WAF自身处理的关键时效信息,经过合理建模,联动网桥转发机制,提升业务访问的可持续性。
[0095] 实施例三
[0096] 请参阅图3,所示为本发明第三实施例中的网站可用性检测方法,用于透明代理,所述方法具体包括步骤S301至S304:
[0097] S301,获取待检测的站点IP,并建立所述待检测的站点IP对应的学习模型;
[0098] 在具体实施时,从WAF要代理防护的诸多站点中,选择要健康可用性检测的站点IP,同时将选中的站点IP输入机器学习模型的功能菜单中进行学习,并设置机器学习模型中学习周期个数、静态\动态类型url、每个学习周期单位(5分钟或10分钟或20分钟或30分钟),系统根据预设的每个学习周期单位,关注此单位时间内符合条件的URL请求,同时采集多个所述URL请求的相关信息,采集信息的步骤包括如下:
[0099] S11,记录每条URL请求到达WAF外网口的时间戳(精确毫秒单位);
[0100] S12,记录每条URL请求对应的来自服务器到达WAF内网口的,服务器响应报文中携带的响应码,例如http code 200、30x、40x、50x;
[0101] S13,记录每条URL请求对应的服务器响应报文到达WAF内网口的时间戳(精确毫秒单位);
[0102] S14,记录每条URL请求对应的响应报文离开WAF外网口的时间戳(精确毫秒单位)。
[0103] 其中请求客户端到服务器的流量流程依次为请求客户端、WAF外网口、WAF内网口、服务器IP。
[0104] 机器计算结果:
[0105] 在一个学习周期单位中,根据步骤S12所产生的响应码,统计最关键的响应码50x(例如500,502,503代表URL请求失败)出现的分布比例A,其中根据总的学习周期个数,计算出最关键的响应码50x出现率的平均值A1,其中
[0106] 根据步骤S14与步骤S11的差值,即为请求客户端从发出请求到接收响应的时间差值B,计算本周期内所有B的中位数值B1(单个周期内所有B按照从小到大顺序排序,采用二分法找到中位数值B1),根据总的学习周期个数,计算出多个中位数值B1的平均值B2,其中[0107] 根据步骤S14与步骤S13的差值,即为WAF转发服务器响应报文在消耗在内部的时间差值C,计算本周期内所有的C的中位数值C1(单个周期内所有C按照从小到大顺序排序,采用二分法找到中位数值C1),根据总的学习周期个数,计算出多个中位数值C1的平均值C2,其中
[0108] 结合A1、B2、C2,针对同一个站点IP,从三个维度构成机器学习模型基线,其中,第一维度是URL请求失败的出现率,即最终的A值;第二维度是URL请求到接收经历的时间差值,即最终的B值;第三个维度是WAF内部处理URL响应报文耗时的时间差,即最终的C值,并针对A、B、C三个数值,设置正常动态浮动区间上限,例如正常最高上浮为+10%。
[0109] S302,在WAF的外网口提取日常Web业务访问的目的IP,判断所述目的IP与所述学习模型的建模IP是否一致;
[0110] 在具体实施时,当客户端URL请求数据包到达WAF外网口时,WAF会依照流程提取源IP、目的IP、源端口、目的端口,判断其中的目的IP与所述学习模型的建模IP是否一致。
[0111] S303,若所述目的IP与所述学习模型的建模IP一致,则控制所述WAF对符合所述建模IP的Web请求信息做关键信息统计,判断所述关键信息是否在预设的正常范围内;
[0112] 在具体实施时,学习完成后,所述WAF对符合信息采集要求的URL请求和响应包统计A、B、C的数值,然后按照最近200次请求、最近300次请求、最近400次请求,分别统计出三个A的平均值、三个B的平均值、三个C的平均值。
[0113] 判断是否存在三个相同类型的值连续超过正产区间上限,即三个A的平均值、三个B的平均值、三个C的平均值中任一一种类型的三个数值都超过上限值,则判断为异常。
[0114] S304,若所述关键信息在所述预设的正常范围内,则将所述目的IP按正常流程代理转给后端服务器。
[0115] 在具体实施时,经过步骤S103的判断,未出现超过上限的情况,WAF会认为访问是正常的,继续维持现有的数据转发方式。
[0116] 综上,本发明上述实施例当中的网站可用性检测方法,通过Web应用防火墙以7层代理的工作模式串接在web服务器外侧,基于WAF机器学习能力,建立一个包含网站业务http状态码范围分布、WAF内部转发http状态码所耗延迟时间为基线的大模型,利用WAF机器学习功能,学习监控web服务器的http响应关键信息、以及经WAF自身处理的关键时效信息,经过合理建模,联动网桥转发机制,提升业务访问的可持续性,当请求客户端访问网站业务时,从发出请求到收得http状态码消耗的时间超过警戒阈值后,WAF针对此服务器停止代理,以网桥直通的方式进行转发流量,避免因WAF自身原因影响网站的可用性。
[0117] 实施例四
[0118] 本发明另一方面还提出一种网站可用性检测系统,请参阅图4,所示为本发明第四实施例中的网站可用性检测系统,用于透明代理,所述系统包括:
[0119] 学习模块11,用于获取待检测的站点IP,并建立所述待检测的站点IP对应的学习模型;
[0120] 进一步的,所述学习模块11包括:
[0121] 学习单元111,用于将健康可用性检测的站点IP输入机器学习模型中进行学习,并设置机器学习模型的参数,所述参数包括学习周期个数、静态/动态类型url、每个学习周期单位;
[0122] 获取单元112,用于获取每个所述学习周期单位内符合条件的url请求,并采集多个所述url请求的相关信息。
[0123] 进一步的,所述获取单元112还包括:
[0124] 第一记录子单元1121,用于记录每条所述url请求到达所述WAF外网口的时间戳,作为第一时间戳;
[0125] 第二记录子单元1122,用于记录每条所述url请求对应的服务器到达所述WAF内网口的服务器响应报文中携带的响应码,作为响应码;
[0126] 第三记录子单元1123,用于记录每条所述url请求对应的服务器响应报文到达WAF内网口的时间戳,作为第二时间戳;
[0127] 第四记录子单元1124,用于记录每条所述url请求对应的响应报文离开WAF外网口的时间戳,作为第三时间戳。
[0128] 构建单元113,用于根据所述相关信息确定机器学习模型的基线,以得到所述站点IP对应的学习模型。
[0129] 进一步的,所述构建单元113包括:
[0130] 采集子单元1131,用于在一个所述学习周期单位中,获取所述响应码中最关键的响应码出现的分布比例;
[0131] 第一计算子单元1132,用于根据所述第一时间戳和所述第三时间戳得到所述获取客户端从发出请求到接收响应的第一时间差值,并计算本周期内所有的第一时间差值的中位数;
[0132] 第二计算子单元1133,用于根据所述第二时间戳和所述第三时间戳得到所述WAF转发服务器响应报文消耗在内部的第二时间差值,并计算本周期内所有的第二时间差值的中位数;
[0133] 第三计算子单元1134,用于通过所述最关键的响应码出现的分布比例、所有的所述第一时间差值的中位数和所有的所述第二时间差值的中位数与总的所述学习周期个数,计算出所述最关键的响应码出现率的平均值、所有的所述第一时间差值的中位数的平均值以及所有的所述第二时间差值的中位数的平均值;
[0134] 构建子单元1135,用于根据所述最关键的响应码出现率的平均值、所有的所述第一时间差值的中位数的平均值以及所有的所述第二时间差值的中位数的平均值,确定机器学习模型基线。
[0135] 判断模块12,用于在WAF的外网口提取日常Web业务访问的目的IP,判断所述目的IP与所述学习模型的建模IP是否一致;
[0136] 进一步的,所述判断模块12包括:
[0137] 第一处理单元121,用于若所述目的IP与所述学习模型的建模IP不一致,则将所述目的IP按正常流程代理转给后端服务器。
[0138] 控制模块13,用于若所述目的IP与所述学习模型的建模IP一致,则控制所述WAF对符合所述建模IP的Web请求信息做关键信息统计,判断所述关键信息是否在预设的正常范围内;
[0139] 处理模块14,用于若所述关键信息不在所述预设的正常范围内,则对所述目的IP进行非代理处理,以按照Linux网桥二层转发方式透传。
[0140] 进一步的,所述处理模块14包括:
[0141] 第二处理单元141,用于若所述关键信息在所述预设的正常范围内,则将所述目的IP按正常流程代理转给后端服务器。
[0142] 综上,本发明上述实施例当中的网站可用性检测系统,通过Web应用防火墙以7层代理的工作模式串接在web服务器外侧,基于WAF机器学习能力,通过学习模块11建立一个包含网站业务http状态码范围分布、WAF内部转发http状态码所耗延迟时间为基线的大模型,判断模块12有效的判断目的IP是否需要进行学习,当对目的IP进行学习时,控制模块13有效的控制所述WAF统计关键时效信息,当请求客户端访问网站业务时,处理模块14判断从发出请求到收得http状态码消耗的时间超过警戒阈值后,WAF针对此服务器停止代理,以网桥直通的方式进行转发流量,避免因WAF自身原因影响网站的可用性。
[0143] 实施例五
[0144] 本发明还提出一种网站可用性检测装置,请参阅图5,所示为本发明第五实施例中的网站可用性检测装置,包括服务器,所述服务器包括存储器10、处理器20以及存储在所述存储器10上并可在所述处理器20上运行的计算机程序30,所述处理器20执行所述计算机程序30时实现上述的网站可用性检测方法。
[0145] 在具体实施时,当处理器20获取待检测的站点IP,并建立所述待检测的站点IP对应的学习模型;
[0146] 处理器20在WAF的外网口提取日常Web业务访问的目的IP,判断所述目的IP与所述学习模型的建模IP是否一致;
[0147] 若所述目的IP与所述学习模型的建模IP一致,处理器20控制所述WAF对符合所述建模IP的Web请求信息做关键信息统计,判断所述关键信息是否在预设的正常范围内;
[0148] 若所述关键信息不在所述预设的正常范围内,处理器20对所述目的IP进行非代理处理,以按照Linux网桥二层转发方式透传。
[0149] 其中,存储器10至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器10在一些实施例中可以是车辆的内部存储单元,例如该车辆的硬盘。存储器10在另一些实施例中也可以是车辆的外部存储装置,例如车辆上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器10还可以既包括车辆的内部存储单元也包括外部存储装置。存储器10不仅可以用于存储安装于车辆的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0150] 其中,处理器20在一些实施例中可以是电子控制单元(Electronic Control Unit,简称ECU,又称行车电脑)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器10中存储的程序代码或处理数据,例如执行访问限制程序等。
[0151] 需要指出的是,图5示出的结构并不构成对网站可用性检测装置的限定,在其它实施例当中,该网站可用性检测装置可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0152] 本发明当中的网站可用性检测装置,通过Web应用防火墙以7层代理的工作模式串接在web服务器外侧,基于WAF机器学习能力,建立一个包含网站业务http状态码范围分布、WAF内部转发http状态码所耗延迟时间为基线的大模型,利用WAF机器学习功能,学习监控web服务器的http响应关键信息、以及经WAF自身处理的关键时效信息,经过合理建模,联动网桥转发机制,提升业务访问的可持续性,当请求客户端访问网站业务时,从发出请求到收得http状态码消耗的时间超过警戒阈值后,WAF针对此服务器停止代理,以网桥直通的方式进行转发流量,避免因WAF自身原因影响网站的可用性。
[0153] 本发明实施例还提出一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的网站可用性检测方法。
[0154] 本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
[0155] 计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0156] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0157] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0158] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。