一种实时阈值自适应流量预警方法及装置与流程

文档序号:11138677阅读:638来源:国知局
一种实时阈值自适应流量预警方法及装置与制造工艺

本申请涉及安全防护领域,特别涉及一种实时阈值自适应流量预警方法及装置。



背景技术:

随着互联网的不断发展,DDOS(Distributed Denial of Service,分布式拒绝服务)攻击(比如CC攻击)开始越来越多地针对互联网具体的应用和业务,如:游戏、购物、视频等;一方面DDOS攻击的针对性更为明确;另一方面,DDOS攻击从传统的高带宽、大流量攻击演化为隐蔽性更强的针对应用协议的小流量、慢速攻击,检测难度提高。

在传统的针对DDOS攻击进行流量检查时,通常是通过为与客户端对接的HTTP(HyperText Transfer Protocol,超文本传输协议)服务器设置流量的固定访问阈值,当客户端与HTTP服务器之间的连接数超出这个阈值时,则认为存在流量异常,可能有针对HTTP服务器的DDOS攻击。

然而,传统的设置固定阈值的方式,通常只能通过一步步手动或异步的方式更新阈值,通过调低预警基线,来提高预警精度,并未考虑流量的变化规律;例如:周末流量区别于工作日流量;业务低峰和高峰周期性更替等;因此,通过设置固定的阈值来完成流量检测,并不能适应复杂的业务场景。



技术实现要素:

有鉴于此,本申请提供一种实时阈值自适应流量预警方法及装置,用以解决传统设置固定阈值的方式不适用于复杂的业务场景的问题。

具体地,本申请是通过如下技术方案实现的:

一种实时阈值自适应流量预警方法,应用于基于流式处理框架的服务端,包括:

汇总客户端的访问日志并实时统计所述访问日志中各个时间戳对应的连接数;

从统计得到的各个时间戳对应的连接数中,获取目标时间戳之前若干个连续时间戳对应的连接数,以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数;

针对所述目标时间戳之前若干个连续时间戳对应的连接数以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数进行统计分析,得到对应于所述目标时间戳的动态连接数阈值;其中,所述动态连接数阈值用于表征与所述目标时间戳对应的时刻是否存在流量异常;

获取与所述目标时间戳对应的连接数,当所述目标时间戳的连接数大于所述目标时间戳对应的所述动态连接数阈值时,确定存在流量异常。

在所述实时阈值自适应流量预警方法中,所述针对所述目标时间戳之前若干个连续时间戳对应的连接数以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数进行统计分析,得到对应于所述目标时间戳的动态连接数阈值,包括:

根据所述目标时间戳之前若干个连续时间戳对应的连接数生成第一序列,并将所述第一序列输入预设的自回归模型进行预测计算,以得到与所述目标时间戳对应的连接数的预测值;

根据所述目标时间戳对应的连接数的预测值以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数生成第二序列,并计算所述第二序列的标准差;

计算所述预测值与所述标准差与预设系数的乘积之和,得到所述目标时间戳对应的动态连接数阈值。

在所述实时阈值自适应流量预警方法中,所述方法还包括:

在将所述第一序列输入预设的自回归模型进行预测计算前,对所述第一序列进行零均值化处理。

在所述实时阈值自适应流量预警方法中,所述方法还包括:

计算所述预测值与所述标准差与预设系数的乘积之和,并将所述预测值与所述标准差与预设系数的乘积之和加上预设的修正值,得到所述目标时间戳对应的动态连接数阈值。

在所述实时阈值自适应流量预警方法中,所述预设系数,根据检测灵敏度需求进行自定义;所述预设系数的取值范围包括[1,3]。

在所述实时阈值自适应流量预警方法中,所述预设的修正值包括所述第一序列的平均数。

一种实时阈值自适应流量预警装置,应用于基于流式处理框架的服务端,包括:

统计单元,用于汇总客户端的访问日志并实时统计所述访问日志中各个时间戳对应的连接数;

获取单元,用于从统计得到的各个时间戳对应的连接数中,获取目标时间戳之前若干个连续时间戳对应的连接数,以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数;

计算单元,用于针对所述目标时间戳之前若干个连续时间戳对应的连接数以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数进行统计分析,得到对应于所述目标时间戳的动态连接数阈值;其中,所述动态连接数阈值用于表征与所述目标时间戳对应的时刻是否存在流量异常;

判断单元,用于获取与所述目标时间戳对应的连接数,当所述目标时间戳的连接数大于所述目标时间戳对应的所述动态连接数阈值时,确定存在流量异常。

在所述实时阈值自适应流量预警装置中,所述计算单元,进一步用于:

根据所述目标时间戳之前若干个连续时间戳对应的连接数生成第一序列,并将所述第一序列输入预设的自回归模型进行预测计算,以得到与所述目标时间戳对应的连接数的预测值;

根据所述目标时间戳对应的连接数的预测值以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数生成第二序列,并计算所述第二序列的标准差;

计算所述预测值与所述标准差与预设系数的乘积之和,得到所述目标时间戳对应的动态连接数阈值。

在所述实时阈值自适应流量预警装置中,所述计算单元,进一步用于:

在将所述第一序列输入预设的自回归模型进行预测计算前,对所述第一序列进行零均值化处理。

在所述实时阈值自适应流量预警装置中,所述计算单元,进一步用于:

计算所述预测值与所述标准差与预设系数的乘积之和,并将所述预测值与所述标准差与预设系数的乘积之和加上预设的修正值,得到所述目标时间戳对应的动态连接数阈值。

在所述实时阈值自适应流量预警装置中,所述预设系数,根据检测灵敏度需求进行自定义;所述预设系数的取值范围包括[1,3]。

在所述实时阈值自适应流量预警装置中,所述预设的修正值包括所述第一序列的平均数。

在本申请实施例中,由于目标时间戳对应的连接数阈值,是由基于流式处理框架的服务端通过所述目标时间戳之前若干个连续的时间戳对应的连接数,以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数计算得到的动态连接数阈值,因而可以有效适用于复杂的业务场景。

附图说明

图1是本申请示出的一种实时阈值自适应流量预警方法的流程图;

图2是本申请示出的一种流式处理框架的示意图;

图3是本申请示出的一种实时阈值自适应流量预警装置的逻辑框图;

图4是本申请示出的一种实时阈值自适应流量预警装置的硬件结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

为了应对现有技术中,通过设置固定阈值针对DDOS攻击进行流量异常检测时,无法应对真实复杂的业务场景的问题,本申请提出一种动态阈值机制,可以结合大数据框架,实时地统计目标时间戳之前若干个连续的时间戳对应的连接数和该目标时间戳之前与该目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数,并对统计到的连接数进行分析计算,低延迟的估算出对应于上述目标时间戳的动态连接数阈值。

由于该动态连接数阈值是随着上述目标时间戳之前的若干个连续的时间戳对应的连接数,以及与该目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数而变化的,从而可以避免采用固定阈值的缺陷,能够有效适用于真实复杂的业务场景。

参见图1,为本申请示出的一种实时阈值自适应流量预警方法的流程图,该流程图的执行主体是基于流式处理框架的服务端;所述方法包括以下步骤:

步骤101:汇总客户端的访问日志并实时统计所述访问日志中各个时间戳对应的连接数。

步骤102:从统计得到的各个时间戳对应的连接数中,获取目标时间戳之前若干个连续时间戳对应的连接数,以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数。

步骤103:针对所述目标时间戳之前若干个连续时间戳对应的连接数以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数进行统计分析,得到对应于所述目标时间戳的动态连接数阈值;其中,所述动态连接数阈值用于表征与所述目标时间戳对应的时刻是否存在流量异常。

步骤104:获取与所述目标时间戳对应的连接数,当所述目标时间戳的连接数大于所述目标时间戳对应的所述动态连接数阈值时,确定存在流量异常。

上述服务端,可以是基于流式处理框架的服务器集群,或者是由基于流失处理框架的服务器集群所搭建的大数据处理平台;其中,上述流式处理框架的具体框架形态,在本例中不进行特别限定;例如,如图2所示,在示出的一种实施方式中,上述流式处理框架可以是storm框架。

上述访问日志,可以是指客户端在访问与客户端对接的HTTP服务器上的资源时,所产生的日志文件;其中,在该日志文件中,通常可以记录客户端IP地址、浏览器、时间戳、域名等信息。

上述目标时间戳,可以是指需要进行流量异常检测的当前时刻;例如,假设当前时刻为T,那么如果需要针对当前时刻的流量执行异常检测,则可以将当前时刻T转换成为时间戳,此时转换后的该时间戳,即为上述目标时间戳。

在本例中,服务端可以汇总各客户端的访问日志,然后基于流式处理框架,对汇总的访问日志实时统计各个时间戳对应的连接数,并基于统计得到的当前时刻之前的若干个连续时间戳对应的连接数和与当前时刻保持预设时间间隔周期的若干个时间戳对应的连接数,进行分析计算,从而可以低延迟地估算出对应于当前时刻的动态连接数阈值,从而避免了采用固定阈值的缺陷,能够有效适用于真实复杂的业务场景

在本申请实施例中,上述服务端在汇总各客户端的访问日志时,可以是接收与客户端对接的HTTP服务器上传的访问日志。当汇总完成后,上述服务端可以实时统计访问日志中各个时间戳对应的连接数;例如,假设当前时刻为tk+1,汇总的访问日志中包括t1、t2、t3……tk-1、tk等时间戳,则可以分别统计与时间戳t1、t2、t3……tk-1、tk对应的连接数c1、c2、c3……ck-1、ck

在实际应用中,与当前时刻对应的连接数,通常与当前时刻之前的若干个连续时刻的连接数线性相关,因此,在本例中,当实时统计出汇总的访问日志中各个时间戳对应的连接数后,可以进一步获取上述目标时间戳(即当前时刻)之前若干个连续时间戳对应的连接数;例如,假设当前时刻为tk+1,则可以获取当前时刻之前tk、tk-1、tk-2……tk-p+1等p个时间戳的连接数,ck、ck-1、ck-2……ck-p+1

另外,当前时刻对应的连接数,除了与当前时刻之前的若干个连续时刻的连接数线性相关以外,在实际应用中,根据历史数据分析可知,连接数的大小通常呈现周期性变化,因此,基于这一规律,在本例中,当实时统计出汇总的访问日志中各个时间戳对应的连接数后,还可以进一步获取目标时间戳之前与该目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数;例如,假设当前时刻为ts,则可以获取时间戳ts-q、ts-2q、ts-3q……ts-mq对应的连接数cs-q、cs-2q、cs-3q……cs-mq。其中,时间间隔周期q可以根据实际应用场景进行调整,如果连接数的大小变化的周期为一周,则q可以设置为一周,m为获取的历史连接数的数量。

在本申请实施例中,当服务端在获得上述目标时间戳之前若干个连续时间戳对应的连接数以及上述目标时间戳之前与上述目标时间戳保持预设时间周期的若干个时间戳对应的连接数后,可以针对统计结果进行建模计算,得到对应于上述目标时间戳的动态连接数阈值。其中,上述动态连接数阈值随上述目标时间戳的变化而动态变化,用于表征与上述目标时间戳对应的时刻是否存在流量异常。

在本申请实施例中,服务端在获得上述目标时间戳之前若干个连续时间戳对应的连接数后,可以根据上述目标时间戳之前若干个连续时间戳对应的连接数生成第一序列,然后将该第一序列输入预设的自回归模型进行预测计算,以获得上述目标时间戳对应的连接数的预测值;例如,假设当前时刻为tk+1,可以生成包括目标时间戳tk+1之前p个时间戳对应的连接数的第一序列(ck,ck-1,ck-2……ck-p+1),然后可以将该第一序列输入自回归模型进行预测计算,得到计算结果,即上述目标时间戳对应的连接数的预测值ck+1;其中,自回归模型的阶数为p。

其中,上述自回归模型建模的具体过程,在本例中不再进行详述,本领域技术人员在将本申请记载的技术方案付诸实现时,可以参考相关技术中的记载。

当然,除了上述自回归模型以外,在实际应用中,也可以采用诸如小波分析、神经网络、协方差分析等方法对目标时间戳之前的若干个连续时间戳对应的连接数进行预测计算,得到目标时间戳对应的连接数的预测值,在此不再赘述。

其中,在示出的一种实施方式中,服务端在将上述第一序列输入自回归模型进行预测计算之前,为了提高预测计算的准确性,可以对上述第一序列进行零均值化处理,在零均值化处理完成后,再输入自回归模型进行预测计算;例如:假设第一序列是(ck,ck-1,ck-2……ck-p+1),将上述第一序列中的各连接数减去上述第一序列的平均数得到一个新序列然后将上述新序列输入自回归模型进行预测计算,得到上述目标时间戳对应的连接数的预测值ck+1

在本申请实施例中,当服务端计算出上述目标时间戳对应的连接数的预测值后,服务端还可以根据上述目标时间戳对应的连接数的预测值以及上述目标时间戳之前与该目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数,生成第二序列,并计算得到该第二序列的标准差;

例如,假设当前时刻为ts,预测值为cs,时间间隔周期为q,生成包括预测值cs以及目标时间戳ts之前m个时间戳对应的连接数的第二序列(cs,cs-q,cs-2q,cs-3q……cs-mq),然后可以计算该第二序列的标准差σs

在本例中,当服务端计算出上述第二序列的标准差之后,此时可以计算上述目标时间戳对应的连接数的预测值与上述标准差与预设系数的乘积之和,获得上述目标时间戳对应的动态连接数阈值。

例如,在示出的一种实施方式中,上述动态连接数阈值可以用如下公式来表征:

ns=cs+ασs

其中,在上述公式中,ns即为用于衡量ts时刻是否存在流量异常的上述动态连接数阈值;cs表示上述目标时间戳ts对应的连接数的预测值,α表示上述预设系数,σs表示上述目标时间戳ts对应的上述第二序列的标准差。

在本申请实施例中,计算上述目标时间戳对应的动态连接数阈值,除将上述预测值和上述标准差与上述预设系数的乘积相加以外,还可以根据实际应用的网络环境,加上预设的修正值,得到上述目标时间戳对应的动态连接数阈值;

例如,在示出的另一种实施方式中,上述动态连接数阈值可以用如下公式来表征:

ns=cs+ασs+b

其中,b表示上述预设的修正值。

在示出的另一种实施方式中,上述预设的修正值b可以是上述第一序列的平均数在这种情况下,上述动态连接数阈值可以用如下公式来表征:

其中,需要说明的是,上述预设系数α可以根据检测灵敏度需求进行自定义;例如,在示出的一种实施方式中,由于各时间戳对应的连接数,通常符合正态分布,因此可以将上述预设系数的取值范围设置为[1,3];比如,在实际应用中,上述预设系数可以设置为3。

在本申请实施例中,当服务端基于实时统计获取到的上述目标时间戳之前若干个连续时间戳对应的连接数,以及上述目标时间戳之前与上述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数,并根据统计结果建模计算,得到上述目标时间戳对应的动态连接数阈值后,可以获取与上述目标时间戳对应的实际连接数,并将获得的该实际连接数与上述动态连接数阈值进行比较。

如果获得的实际连接数大于上述动态连接数阈值,则确定存在流量异常;在这种情况下,客户端对接的HTTP服务器可能遭受攻击。管理员可以针对流量异常可能的原因采取相应的解决措施。

综上所述,在本申请实施例中,基于流式处理框架的服务端,根据客户端上传的访问日志,实时统计该访问日志中各个时间戳对应的连接数,并从统计结果中获取目标时间戳之前若干个连续时间戳对应的连接数,以及与该目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数;然后通过对获取到的连接数进行分析计算,得到对应于该目标时间戳的动态连接数阈值。同时,获取该目标时间戳对应的连接数,并将该连接数与上述动态连接数阈值进行比较,确定是否存在流量异常。

由于本申请实施例是实时采样,实时建模计算,使得每一个时刻的连接数阈值都是独一无二的,制定阈值的依据综合了当前时刻前的短期规律和长期的周期性规律,因此可以有效地适用于真实复杂的业务场景。

与本申请实时阈值自适应流量预警方法的实施例相对应,本申请还提供了用于执行上述方法实施例的装置的实施例。

参见图3,为本申请实时阈值自适应流量预警装置的一个实施例框图:

如图3所述,该实时阈值自适应流量预警装置30包括:

统计单元310,用于汇总客户端的访问日志并实时统计所述访问日志中各个时间戳对应的连接数。

获取单元320,用于从统计得到的各个时间戳对应的连接数中,获取目标时间戳之前若干个连续时间戳对应的连接数,以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数。

计算单元330,用于针对所述目标时间戳之前若干个连续时间戳对应的连接数以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数进行统计分析,得到对应于所述目标时间戳的动态连接数阈值;其中,所述动态连接数阈值用于表征与所述目标时间戳对应的时刻是否存在流量异常。

判断单元340,用于获取与所述目标时间戳对应的连接数,当所述目标时间戳的连接数大于所述目标时间戳对应的所述动态连接数阈值时,确定存在流量异常。

在本例中,所述计算单元330,进一步用于:

根据所述目标时间戳之前若干个连续时间戳对应的连接数生成第一序列,并将所述第一序列输入自回归模型进行预测计算,以得到与所述目标时间戳对应的连接数的预测值;

根据所述目标时间戳对应的连接数的预测值以及所述目标时间戳之前与所述目标时间戳保持预设时间间隔周期的若干个时间戳对应的连接数生成第二序列,并计算所述第二序列的标准差;

计算所述预测值与所述标准差与预设系数的乘积之和,得到所述目标时间戳对应的动态连接数阈值。

在本例中,所述计算单元330,进一步用于:

在将所述第一序列输入自回归模型进行预测计算前,对所述第一序列进行零均值化处理。

在本例中,所述计算单元330,进一步用于:

计算所述预测值与所述标准差与预设系数的乘积之和,并将所述预测值与所述标准差与预设系数的乘积之和加上预设的修正值,得到所述目标时间戳对应的动态连接数阈值。

在本例中,所述预设系数,根据检测灵敏度需求进行自定义;所述预设系数的取值范围包括[1,3]。

在本例中,所述预设的修正值包括所述第一序列的平均数。

本申请实时阈值自适应流量预警装置的实施例可以应用在基于流式处理框架的服务端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在基于流式处理框架的服务端的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请实时阈值自适应流量预警装置所在基于流式处理框架的服务端的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的基于流式处理框架的服务端通常根据该实时阈值自适应流量预警装置的实际功能,还可以包括其他硬件,对此不再赘述。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1