网络流量监测方法、装置、计算机设备及存储介质转让专利

申请号 : CN201810239414.8

文献号 : CN108650218B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李洋

申请人 : 平安科技(深圳)有限公司

摘要 :

本发明公开了一种网络流量监测方法、装置、计算机设备及存储介质。该网络流量监测方法包括:获取实际网络流量,基于实际网络流量获取对应的至少一个预设应用场景和与预设应用场景相对应的实际特征向量;基于至少一个预设应用场景查询预设的正常流量模型库,获得与每一预设应用场景对应的正常特征向量;若同一预设应用场景对应的实际特征向量和正常特征向量的交集小于第一阈值,则预设应用场景对应的实际特征向量为异常流量集;统计获取异常流量集的对应的异常占比,若异常占比大于第二阈值,则实际网络流量为异常网络流量。该方法通过简单高效的方法识别出是否存在异常流量,适用于网络流量运算量较大的云安全领域。

权利要求 :

1.一种网络流量监测方法,其特征在于,包括:

采集正常网络流量,所述正常网络流量包括至少一个预设应用场景和与所述预设应用场景相对应的正常行为特征;

对同一所述预设应用场景下的所有正常行为特征进行计算,获取对应的平均值和标准差;

基于所述平均值和所述标准差,获取所述应用场景基准线;

继续获取下一预设应用场景对应的预设应用场景基准线,直至完成获取所有预设应用场景基准线;

获取实际网络流量,调用所述预设应用场景基准线,划分所述实际网络流量,获取与所述实际网络流量对应的至少一个预设应用场景和与所述预设应用场景相对应的实际特征向量;

基于至少一个所述预设应用场景查询预设的正常流量模型库,获得与每一所述预设应用场景对应的正常特征向量;

若同一预设应用场景对应的所述实际特征向量和所述正常特征向量的交集小于第一阈值,则所述预设应用场景对应的所述实际特征向量为异常流量集;

统计获取所述异常流量集的对应的异常占比,若所述异常占比大于第二阈值,则所述实际网络流量为异常网络流量。

2.如权利要求1所述的网络流量监测方法,其特征在于,所述基于所述实际网络流量获取对应的至少一个预设应用场景和实际特征向量,包括:基于所述实际网络流量,调用预设的应用场景基准线对所述实际网络流量进行划分,获取对应的预设应用场景;

基于所述实际网络流量,采用与所述预设应用场景相对应的特征提取算法对所述实际网络流量进行特征提取和特征向量化,获取对应的实际特征向量。

3.如权利要求1所述的网络流量监测方法,其特征在于,在所述获取实际网络流量的步骤之前,所述网络流量监测方法还包括:创建正常流量模型库;

所述创建正常流量模型库,包括:

获取正常网络流量,基于预设的应用场景基准线划分所述正常网络流量,以获得对应的预设应用场景;

对所述正常网络流量进行特征提取和特征向量化,获得对应的正常特征向量;

将所述预设应用场景和所述正常特征向量关联存储到数据库中,形成正常流量模型库。

4.如权利要求3所述的网络流量监测方法,其特征在于,所述对所述正常网络流量进行特征提取和特征向量化,获得对应的正常特征向量,包括:对所述正常网络流量进行特征提取,获取场景特征数据;

采用矩阵计算对所述场景特征数据进行特征向量化,获得对应的正常特征向量。

5.如权利要求1所述的网络流量监测方法,其特征在于,所述统计获取所述异常流量集的对应的异常占比,包括:初始化异常总数和流量总数;

若所述预设应用场景对应的所述实际特征向量为异常流量集,则所述异常总数和所述流量总数均加1;

若所述预设应用场景对应的所述实际特征向量不为异常流量集,则所述流量总数加1;

将所述异常总数除以所述流量总数,获取所述异常占比。

6.一种网络流量监测装置,其特征在于,包括:

采集网络流量子单元,用于采集正常网络流量,所述正常网络流量包括至少一个预设应用场景和与所述预设应用场景相对应的正常行为特征;

获取平均值子单元,用于对同一所述预设应用场景下的所有正常行为特征进行计算,获取对应的平均值和标准差;

获取基准线子单元,用于基于所述平均值和所述标准差,获取所述应用场景基准线;

获取基准线单元,用于继续获取下一预设应用场景对应的预设应用场景基准线,直至完成获取所有预设应用场景基准线;

获取网络流量模块,用于获取实际网络流量,调用所述预设应用场景基准线,划分所述实际网络流量,获取与所述实际网络流量对应的至少一个预设应用场景和与所述预设应用场景相对应的实际特征向量;

获得特征向量模块,用于基于至少一个所述预设应用场景查询预设的正常流量模型库,获得与每一所述预设应用场景对应的正常特征向量;

对应特征向量模块,用于若同一预设应用场景对应的所述实际特征向量和所述正常特征向量的交集小于第一阈值,则所述预设应用场景对应的所述实际特征向量为异常流量集;

统计异常占比模块,用于统计获取所述异常流量集的对应的异常占比,若所述异常占比大于第二阈值,则所述实际网络流量为异常网络流量。

7.如权利要求6所述的网络流量监测装置,其特征在于,所述获得特征向量模块包括:获取应用场景单元,用于基于所述实际网络流量,调用预设的应用场景基准线对所述实际网络流量进行划分,获取对应的预设应用场景;

获取特征向量单元,用于基于所述实际网络流量,采用与所述预设应用场景相对应的特征提取算法对所述实际网络流量进行特征提取和特征向量化,获取对应的实际特征向量。

8.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至

5任一项所述网络流量监测方法的步骤。

9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述网络流量监测方法的步骤。

说明书 :

网络流量监测方法、装置、计算机设备及存储介质

技术领域

[0001] 本发明涉及网络安全领域,尤其涉及一种网络流量监测方法、装置、计算机设备及存储介质。

背景技术

[0002] 网络异常流量突发会造成网络的拥塞,从而产生丢包、延时和抖动,导致网络服务质量下降;不仅如此,突发流量这种网络异常流量还可能存在安全风险,例如:DDOS攻击、蠕虫和窃密等,会对网络和业务系统造成极大的危害。
[0003] 常见的网络异常流量监测方法通常包括提取异常流量的“指纹”进行识别或者通过机器学习模型来识别异常流量。前者对未发现过的网络异常流量无法识别;后者则需要通过复杂的数据挖掘算法进行判定。在涉及到大数据运算的云安全领域,现有的监测方案难以提供更为高效、精准的网络异常流量监测方案。

发明内容

[0004] 本发明实施例提供一种网络流量监测方法、装置、计算机设备及存储介质,以解决在大数据运算的云安全领域,无法提供更为高效、精准的网络异常流量监测方案的问题。
[0005] 第一方面,本发明实施例提供一种网络流量监测方法,包括:
[0006] 获取实际网络流量,基于实际网络流量获取对应的至少一个预设应用场景和与预设应用场景相对应的实际特征向量;
[0007] 基于至少一个预设应用场景查询预设的正常流量模型库,获得与每一预设应用场景对应的正常特征向量;
[0008] 若同一预设应用场景对应的实际特征向量和正常特征向量的交集小于第一阈值,则预设应用场景对应的实际特征向量为异常流量集;
[0009] 统计获取异常流量集的对应的异常占比,若异常占比大于第二阈值,则实际网络流量为异常网络流量。
[0010] 第二方面,本发明实施例提供一种网络流量监测装置,包括:
[0011] 获取网络流量模块,用于获取实际网络流量,基于实际网络流量获取对应的至少一个预设应用场景和与预设应用场景相对应的实际特征向量;
[0012] 获得特征向量模块,用于基于至少一个预设应用场景查询预设的正常流量模型库,获得与每一预设应用场景对应的正常特征向量;
[0013] 对应特征向量模块,用于若同一预设应用场景对应的实际特征向量和正常特征向量的交集小于第一阈值,则预设应用场景对应的实际特征向量为异常流量集;
[0014] 统计异常占比模块,用于统计获取异常流量集的对应的异常占比,若异常占比大于第二阈值,则实际网络流量为异常网络流量。
[0015] 本发明第三方面提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明第一方面所述网络流量监测方法的步骤。
[0016] 本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述网络流量监测方法的步骤。
[0017] 本发明实施例提供的网络流量监测方法、装置、计算机设备及存储介质,是通过获取实际网络流量,基于实际网络流量对应的应用场景查询预设的正常流量模型库,用以监测实际网络流量是否为网络异常流量来实现的。一方面,通过正常流量模型库监测实际网络流量,也可检测到未发现过的网络异常流量;另一方面,通过建立正常流量模型库,该正常流量模型库可适用于网络流量运算量较大的云安全领域,用于高效、快速地识别出网络异常。

附图说明

[0018] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0019] 图1是本发明实施例1中网络流量监测方法的一流程图。
[0020] 图2是本发明实施例1中网络流量监测方法的另一具体流程图。
[0021] 图3是本发明实施例1中网络流量监测方法的另一具体流程图。
[0022] 图4是本发明实施例1中网络流量监测方法的另一具体流程图。
[0023] 图5是本发明实施例1中网络流量监测方法的另一具体流程图。
[0024] 图6是本发明实施例1中网络流量监测方法的另一具体流程图。
[0025] 图7是本发明实施例1中网络流量监测方法的另一具体流程图。
[0026] 图8是本发明实施例2中网络流量监测装置的一原理框图。
[0027] 图9是本发明实施例4中计算机设备的一示意图。

具体实施方式

[0028] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029] 精确的网络流量模型可以帮助人们设计更好的网络协议、更合理的网络拓扑结构,更智能的网络监控系统,以提供更高效的QOS(Quality of Service,服务质量),保证网络运行得高效、稳定和安全。网络是复杂的非线性系统,同时又受到各种复杂外界因素的影响,其流量模型(即网络流量模型)也是复杂多变的。现有大多网络流量模型是基于异常流量,且经过复杂的机器学习后进行建模的。本发明实施例提出一种基于正常流量进行建模,对网络流量进行流量监控的方法,该方法主要应用于对于时效性要求较强的大数据运算领域,尤其应用在云计算领域。
[0030] 流量监控,就是针对网络通信数据包进行管理与控制,同时进行优化与限制。流量监控的目的是允许并保证数据包的高效传输,禁止或限制非法数据包传输。
[0031] 云计算是一种可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件和服务),可提供可用的、便捷的、按需的网络访问服务。由于云计算应用的不断深入,以及对大数据处理需求的不断扩大,用户对云计算的性能和安全的要求随之增大。本提案的执行主体是提供资源共享池的服务器。
[0032] 实施例1
[0033] 图1示出本实施例中网络流量监测方法的流程图。该网络流量监控方法应用于云计算环境中的服务器。该服务器可根据客户端的需求提供不同的云端服务,比如:虚拟主机、专有网络和云存储等。如图1所示,该网络流量监测方法包括如下步骤:
[0034] S10.获取实际网络流量,基于实际网络流量获取对应的至少一个预设应用场景和与预设应用场景相对应的实际特征向量。
[0035] 实际网络流量是指在本次流量监控过程中实时采集到的网络流量。其中,网络流量就是网络上通过数据包传输的数据量,两台计算机通过网络进行“沟通”,具体是借助发送与接收数据包来完成的。
[0036] 应用场景是以云平台为基础,针对不同业务搭建的业务模型。应用于本实施例,服务器已预置应用场景库,并根据业务的增减随时增减应用场景库中相应的业务场景,此处存储在应用场景库中的业务场景即为预设应用场景。云计算的资源池中存在多种业务场景对应的网络流量,从资源池引入到上层网络,应对多种业务场景对应的网络流量进行逐一的区分,建立不同的业务模型,找到不同业务对应的底层协议种类,以便在云计算爆发的时候,使得每个逻辑业务网络更加清晰,从庞大的数据流当中提取不同网络流量。
[0037] 不同业务场景对应的网络流量是不一样的,应对各种行业应用下,云计算网络的不同业务场景对应的网络流量进行区分,同时对这些网络流量采用特征提取算法进行管理。特征向量就是将网络流量进行区分和管理后得到的,对应区分后的应用场景下的特征数据。其中,特征提取算法是指实现对网络内部流量的透视和对网络资源的控制,分辨出具体用户在预设应用场景下的数据流量,具体可以是DPI算法(Deep packet inspection,深度数据包检测算法)。
[0038] 举例说明实际网络流量、预设应用场景和实际特征向量三者关系:云平台服务器的输入端口接收到的所有的网络流量为实际网络流量。该实际网络流量可能至少包括三种预设应用场景需要的网络流量,这三种预设应用场景为:
[0039] (1)SaaS应用场景:
[0040] 包括大量的HTTP与HTTPS流量,主要分布于80与443端口。
[0041] (2)PaaS应用场景:
[0042] PaaS属于对外提供定制的软件运行环境,往往会在系统开发与调试阶段产生不同的数据流量。
[0043] (3)IaaS应用场景:
[0044] IaaS所产生的流量属于在线存储的服务,每个存储通道还产生的流量区分。
[0045] 服务器将分别属于上述三种预设应用场景的网络流量进行划分后,再将每种预设应用场景划分得到的网络流量进行特征提取算法来提取对应的实际特征向量。
[0046] 本步骤中,服务器将实际网络流量经过区分和管理后得到至少一个预设应用场景和对应的实际特征向量,将庞大的云数据经过细微化处理,便于服务器基于该预设应用场景和实际特征向量进一步判定该实际网络流量是否为异常流量,降低处理云数据的复杂性。
[0047] S20.基于至少一个预设应用场景查询预设的正常流量模型库,获得与每一预设应用场景对应的正常特征向量。
[0048] 其中,正常流量模型库存储在正常网络流量的情况下,所有应用场景对应的正常特征向量形成的集合数据库,用以对比实际网络流量是否存在异常。其中,正常网络流量指是在网络处于安全稳定的状态时,网络中的流量数据包的传输速度和数量。其中,正常特征向量是对正常网络流量进行特征提取算法后得到的特征数据。
[0049] 在实际网络检测环境中,每个预设应用场景对应两个特征向量:正常特征向量和实际特征向量。本实施例中,实际特征向量是对当前实时采集到的实际网络流量采用特征提取算法进行处理后的特征向量。而正常特征向量是任一预设应用场景下预先采集并存储的特征向量,可用作判断实际特征向量是否存在异常的指标。本步骤中,服务器获取当前预设应用场景对应的实际特征向量,并提取对应的正常特征向量,以利于服务器进一步直接处理该预设应用场景下的正常特征向量和实际特征向量。
[0050] S30.若同一预设应用场景对应的实际特征向量和正常特征向量的交集小于第一阈值,则预设应用场景对应的实际特征向量为异常流量集。
[0051] 其中,由于一般同类别的样本具有相似性,也即实际特征向量和正常特征向量的样本在特征空间上如果分布具有聚集性,样本之间的距离较小,则说明实际特征向量为正常特征向量。可以理解地,当实际特征向量的样本和正常特征向量样本之间的距离较大时,该预设应用场景对应的实际特征向量即为异常流量集。
[0052] 第一阈值就是在空间分布上预先划定用于衡量实际特征向量为正常特征向量的最小交集范围。
[0053] 进一步地,服务器对比实际特征向量和正常特征向量的交集,用于检测异常流量集的算法说明如下:
[0054]
[0055]
[0056] 本步骤中,通过简单算法即可获取每个预设应用场景中正常特征向量和实际特征向量两者的交集,提高服务器对多个预设应用场景的实际特征向量进行异常判定的速度。
[0057] S40.统计获取异常流量集的对应的异常占比,若异常占比大于第二阈值,则实际网络流量为异常网络流量。
[0058] 其中,异常占比是异常流量集的数量占总监测流量集的总数的百分比。第二阈值是依据实际经验和需要确定的,用以划分异常流量集或者非异常流量集的临界点。
[0059] 本步骤中,通过统计实际网络流量中的异常流量集的数量,进而可获取异常流量集在总监测流量集中的异常占比。若该异常占比大于既定的第二阈值,则该实际网络流量属于异常网络流量,需要服务器采取进一步的处理措施,比如锁定接收该实际网络流量的端口等。
[0060] 本发明实施例提供的网络流量监测方法、装置、计算机设备及存储介质,是通过获取实际网络流量,基于实际网络流量对应的应用场景查询预设的正常流量模型库,用以监测实际网络流量是否为网络异常流量来实现的。一方面,通过正常流量模型库监测实际网络流量,也可检测到未发现过的网络异常流量;另一方面,通过建立正常流量模型库,该正常流量模型库可适用于网络流量运算量较大的云安全领域,用于高效、快速地识别出网络异常。
[0061] 在一具体实施方式中,如图2所示,步骤S10中,即基于实际网络流量获取对应的至少一个预设应用场景和实际特征向量,具体包括如下步骤:
[0062] S11.基于实际网络流量,调用预设的应用场景基准线对实际网络流量进行划分,获取对应的预设应用场景。
[0063] 其中,应用场景基准线是由预设应用场景对应的正常网络流量的行为特征来划定的,其中,行为特征包括网络利用率、应用响应时间、协议分布和用户带宽消耗。
[0064] 网络利用率:在特定时间间隔内使用了多少带宽的的测量值,可以通过协议测量网络利用率。
[0065] 应用响应时间:主要用于显示网络中Web网站的连接情况,如局域网中哪些计算机在上网,或者主要浏览哪些网站。
[0066] 协议分布:根据会话层、传输层和应用层协议的分布汇报网络的使用情况。
[0067] 用户带宽消耗:带宽是指单位时间能通过链路的数据量,此处是指用户使用网络时所占用的数据量大小。
[0068] 进一步地,不同的预设应用场景存在不同的应用场景基准线,当新的实际网络流量不在该应用场景划定的应用场景基准线上时,可以判断此时的实际流量不属于本预设应用场景。
[0069] 本步骤中,服务器通过采用应用场景基准线将实际网络流量划分出若干预设应用场景,以使判定实际网络流量的过程更加具有针对性和条理性。
[0070] S12.基于实际网络流量,采用与预设应用场景相对应的特征提取算法对实际网络流量进行特征提取和特征向量化,获取对应的实际特征向量。
[0071] 其中,采用与预设应用场景相对应的特征提取算法对实际网络流量进行特征提取和特征向量化的过程主要包括以步骤:
[0072] (1)采用与预设应用场景相对应的特征提取算法对实际网络流量进行特征提取。
[0073] 本实施例中,与预设应用场景相对应的特征提取算法具体可采用DPI算法,即可采用DPI算法(Deep packet inspection,深度数据包检测算法)检测数据包的应用层协议,以检测、解析和发现P2P数据流。DPI可以帮助实现对网络内部流量的透视和对网络资源的控制,可以分辨出具体用户在预设应用场景下的数据流。
[0074] DPI算法使用一个载荷特征库存储载荷特征串,符合载荷特征串的数据包即被视为P2P数据流。几乎每种P2P对应的预设应用场景都具有自己的应用层协议,通过数据报文捕获,分析报文特征,则可以为每种P2P应用层协议定义唯一的载荷特征串。定义载荷特征串的原则为:选择该协议特有的,交互过程中必须出现且实际环境中出现频率最高的字段作为协议的载荷特征串。
[0075] 再从捕获出的P2P数据流中提取该预设应用场景中的有效特征,比如:用户的入站路径、用户的入站页面、用户浏览站点常用路径、每个访问的停留时间和用户的退出页面等。
[0076] (2)对提取出的特征进行特征向量化,获取对应的实际特征向量。
[0077] 其中,特征向量化是将步骤(1)中得到的特征进行多维特征矩阵计算后形成的向量集合,可表示该预设应用场景下的多维特征,该多维特征可包括IP地址对、端口号、协议类型和TCP连接的统计信息等。可以理解地,不同预设应用场景下的特征大都不同,也即各个预设应用场景对应的特征向量是不同的。
[0078] 进一步地,不同应用场景对应不同的特征向量,以协议类型举例说明:
[0079] 网际层应用场景对应的协议:IP协议、ICMP协议、ARP协议和RARP协议。
[0080] 传输层应用场景对应的协议:TCP协议和UDP协议。
[0081] 应用层应用场景对应的协议:FTP、Telnet、SMTP、HTTP、RIP、NFS和DNS。
[0082] 根据上述协议,服务器计算不同层应用场景的服务时,使用不同的协议计算得到特征向量。
[0083] 将步骤(1)得到的有效特征带入可逆矩阵。可逆矩阵可以分解为特征值和特征向量的乘积,即AV=lambaV,其中V是特征向量矩阵,用以将矩阵换基,即将一个矩阵基底转换为以另一组以特征向量为基的矩阵,从而将矩阵中的有效特征进行降维。
[0084] 举例说明通过矩阵来将有效特征进行降维的过程。以网际层应用场景为例:存在20个获取得到的网际层应用场景的样本的集合,每个样本都包括IP协议、ICMP协议、ARP协议和RARP协议四种协议对应的四个有效特征值。从四个有效特征值中提取出两个基本特征值,以便下一次给出实际网络流量时,即可通过这两个基本特征值判断出该实际网络流量属于网际层应用场景。网际层应用场景的原有效特征有四个存在冗余,减少数据量最直接的方法就是降维。矩阵降维的过程为:把样本的集合赋给一个20行4列的矩阵R,减掉均值并归一化,它的协方差矩阵C=RTR,C是4行4列的矩阵,对C进行特征分解,对角化C=UDUT,其中U是特征向量组成的矩阵,D是特征之组成的对角矩阵,并按由大到小排列。然后,令R’=RU,就实现了样本集在特征向量这组正交基上的投影。R’中的数据列是按照对应特征值的大小排列的,后面的列对应小特征值,去掉以后对整个数据集的影响比较小。直接去掉后面的2列,只保留前2列,就完成了降维从而实现特征向量化。这个降维方法也叫PCA算法(Principal Component Analysis,主成分分析算法)。
[0085] 本步骤中,通过特征提取算法提取出实际网络流量中的实际特征向量来进一步基于该实际特征向量判定实际网络流量是否为异常流量,可使服务器更加高效地判定实际网络流量是否为异常流量。
[0086] 在一具体实施方式中,如图3所示,步骤S10之前,即在获取实际网络流量的步骤之前,网络流量监测方法还包括:
[0087] S50.生成当前预设应用场景对应的应用场景基准线。
[0088] 其中,当前预设应用场景是指当前网络流量所属的预设应用场景。应用场景基准线是由预设应用场景对应的正常网络流量的行为特征来划定的,具体地,行为特征包括网络利用率、应用响应时间、协议分布和用户带宽消耗。
[0089] 应用场景基准线可将数据量较大的实际网络流量按预设应用场景进行划分,是按预设应用场景对实际网络流量进行监测的必要条件。
[0090] 在一具体实施方式中,如图4所示,步骤S50中,即生成当前预设应用场景对应的应用场景基准线的步骤,具体还包括如下步骤:
[0091] S51.采集正常网络流量,正常网络流量包括至少一个预设应用场景和与预设应用场景相对应的正常行为特征。
[0092] 本步骤中,首先确定至少一个预设应用场景,通过采集该预设应用场景中的正常网络流量,以获取该预设应用场景对应的正常行为特征,比如:正常网络利用率、正常应用响应时间、正常协议分布和正常用户带宽消耗等。
[0093] 通过获取预设应用场景对应的多个正常行为特征的值,可基本描述该预设应用场景,利于服务器对该预设应用场景建立正常流量模型。
[0094] S52.对同一预设应用场景下的所有正常行为特征进行计算,获取对应的平均值和标准差。
[0095] 其中,平均值具体为算数平均值,算数平均值为所有数据之和与数据总个数的商值,平均值可以集中呈现变量的整体状态。标准差具体为各数据偏离平均数的距离的平均数,是一组数据平均值分散程度的一种度量,一个较大的标准差,代表数据中大部分数值和数据的平均值之间差异较大;一个较小的标准差,代表数据中大部分数值较接近数据的平均值,标准差可以当作不确定性的一种测量。
[0096] 在获得正常行为特征的特征值后,对特征值进行平均值和标准差的计算。平均值μ的计算公式如下: 其中,n为特征值的个数,i的取值为1到n,xi为特征值中的任一项数据。标准差σ的计算公式如下: 其中,N为特征值的个数,i的取值为1-N,xi为特征值中的任一项数据,μ为特征值的平均值。
[0097] S53.基于平均值和标准差,获取应用场景基准线。
[0098] 本实施例中,应用场景基准线划分至少两个基准线范围,每一基准线范围对应一预设应用场景。其中,基准线范围包括上限值和下限值,上限值为基准线范围的最大值,下限值为基准线范围的最小值。预设应用场景为数据对应的状态,根据数据可能出现的状态可划分为不同的预设应用场景,比如第一预设应用场景、第二预设应用场景、第三预设应用场景和第四预设应用场景等。
[0099] 具体地,基于平均值和标准差,获取应用场景基准线具体包括如下步骤:
[0100] (1)获取标准差与标准差系数的标准差乘积。
[0101] 其中,标准差系数为正数,可以为正整数,也可以是正分数。将标准差与标准差系数相乘,即可获取对应的标准差乘积。本实施例中,设标准差系数为k,则获取的标准差乘积为k*σ。
[0102] (2)基于平均值和标准差乘积的和值,确定一基准线范围的上限值。
[0103] 基准线范围的上限值是基准线范围的最大值,基准线范围的上限值依赖于相应的特征值的平均值和标准差,具体计算方法为平均值和标准差乘积之和。例如特征值的平均值是μ、标准差是σ、标准差系数为k,则特征值所对应的基准线值的上限值为μ+k*σ。每一基准线范围的上限值可将历史基准线值划分成两个基准线范围,对应不同的预设应用场景。
[0104] (3)基于平均值和标准差乘积的差值,确定一基准线范围的下限值。
[0105] 基准线范围的下限值是基准线范围的最小值,基准线范围的下限值依赖于相应的特征值的平均值和标准差,具体计算方法为平均值和标准差乘积之差。例如特征值的平均值是μ、标准差是σ、标准差系数为k,则特征值所对应的基准线值的下限值为μ-k*σ。每一基准线范围的下限值可将历史基准线值划分成两个基准线范围,对应不同的预设应用场景。
[0106] 可以理解地,基准线范围的上限值和下限值的计算过程中,标准差系数取值越大,基准线范围越大。设基于特征值计算出的平均值为μ、标准差为σ、标准差系数为k,则该特征值对应的历史基准线值中任一基准线范围的上限值为μ+k*σ,下限值为μ-k*σ,由于标准差系数较大的基准线范围包含标准差系数较小的基准线范围,为更清楚展示不同基准线范围对应的预设应用场景,需将标准差系数较小的基准线范围从标准差较大的基准线范围中删除,以确定任一基准线范围为:[[μ-k*σ,μ-(k-1)*σ],
[0107] [μ+(k-1)*σ,μ+k*σ]]。
[0108] 本实施例中,若每一基准线范围对应一预设应用场景,比如第一预设应用场景、第二预设应用场景、第三预设应用场景和第四预设应用场景等预设应用场景。当k取1时,基准线范围为:[[μ-σ,μ],[μ,μ+σ]],即
[0109] [μ-σ,μ+σ],该基准线范围最接近于特征值对应的平均值,确定该基准线范围对应的预设应用场景为第一预设应用场景。当k取2时,基准线范围为:[[μ-2σ,μ-σ],[μ+σ,μ+2σ]],该基准线范围接近第一预设应用场景,确定该基准线范围对应的预设应用场景为第二预设应用场景。当k取3时,基准线范围为:[[μ-3σ,μ-2σ],[μ+2σ,μ+3σ]],该基准线范围接近第二预设应用场景,确定该基准线范围对应的预设应用场景为第三预设应用场景,并定义K取3值获取到的基准线范围以外的预设应用场景为第四预设应用场景。
[0110] S60.继续获取下一预设应用场景对应的预设应用场景基准线,直至完成获取所有预设应用场景基准线。
[0111] 重复步骤S50的方法,可获取所有预设应用场景对应的预设应用场景基准线,以便于服务器可直接调用预设应用场景基准线,且准确地划分实际网络流量。
[0112] 本实施例中,服务器通过提前生成所有预设应用场景对应的预设应用场景基准线,以便于服务器在截取海量实际网络流量时,可直接调用预设应用场景基准线,且准确地划分实际网络流量。
[0113] 优选地,在步骤S10之前,即在获取实际网络流量的步骤之前,网络流量监测方法还包括:
[0114] S70.创建正常流量模型库。
[0115] 其中,正常流量模型库存储在正常网络流量的情况下,所有应用场景对应的正常特征向量形成的集合数据库,用以作为对比实际网络流量是否为正常网络流量的判断依据。而正常网络流量指是在网络处于安全稳定的状态时,网络中的流量数据包的传输的速度和数量。
[0116] 在一具体实施方式中,如图5所示,在步骤S70中,即创建正常流量模型库的步骤,具体包括如下步骤:
[0117] S71.获取正常网络流量,基于预设的应用场景基准线划分正常网络流量,以获得对应的预设应用场景。
[0118] 本步骤类似于另一具体实施方式中的步骤S11,这里不再赘述。本步骤S71和步骤S11的区别在于,步骤S11是基于实际网络流量来获得对应的预设应用场景,本步骤S71中,是基于正常网络流量来获取的对应的预设应用场景。
[0119] 进一步地,不同的预设应用场景存在不同的应用场景基准线,本步骤仅仅采集位于该预设应用场景划定的应用场景基准线上的正常网络流量,以对属于该预设应用场景的正常网络流量进行建模。
[0120] S72.对正常网络流量进行特征提取和特征向量化,获得对应的正常特征向量。
[0121] 本步骤类似于另一具体实施方式中的步骤S12,这里不再赘述。本步骤S72中,采用与预设应用场景相对应的特征提取算法对正常网络流量进行特征提取和特征向量化,获取对应的正常特征向量。
[0122] 本步骤中,通过特征提取算法提取出不同的预设应用场景对应的正常特征向量作为参考值,以便于服务器判定实际网络流量时进行参考。
[0123] S73.将预设应用场景和正常特征向量关联存储到数据库中,形成正常流量模型库。
[0124] 可以理解地,将所有预设应用场景和分别对应的正常特征向量关联存储到数据库中,即形成正常流量模型库,以便于服务器判定实际网络流量是否为异常流量时即可进行调用和参考,提高服务器处理实际网络流量的速度。
[0125] 在一具体实施方式中,如图6所示,在步骤S72中,即对正常网络流量进行特征提取和特征向量化,获得对应的正常特征向量,具体包括如下步骤:
[0126] S721.对正常网络流量进行特征提取,获取场景特征数据。
[0127] S722.采用矩阵计算对场景特征数据进行特征向量化,获得对应的正常特征向量。
[0128] 具体地,本实施例中的步骤S721至步骤S722类似于本发明另一实施例中的步骤S11至步骤S12,这里不再赘述。两个实施例的区别在于,本实施例中是对正常网络流量进行处理得到正常特征向量的,另一实施例是对实际网络流量进行处理得到实际特征向量的。本实施例得到的正常特征向量利于服务器作为参考值对比实际特征向量,来判定实际网络流量是否为异常流量集。
[0129] 在一具体实施方式中,如图7所示,在步骤S40中,即统计获取异常流量集的对应的异常占比,具体包括如下步骤:
[0130] S41.初始化异常总数和流量总数。
[0131] 其中,异常总数是指参与本次监测的实际网络流量中的异常流量集的总数,流量总数是参与本次监测的所有实际网络流量的总数。
[0132] 初始化异常总数和流量总数就是给异常总数和流量总数赋予初始值,都可以设置为0。
[0133] S42.若预设应用场景对应的实际特征向量为异常流量集,则异常总数和流量总数均加1。
[0134] 可以理解地,无论参与本次监测的实际网络流量中的当前预设应用场景是否为异常流量集,只要监测一个新的预设应用场景就需给流量总数加1。同时,如果该预设应用场景经监测后为异常流量集,则给异常总数加1。
[0135] S43.若预设应用场景对应的实际特征向量不为异常流量集,则流量总数加1。
[0136] 如步骤S42中所描述,无论参与本次监测的实际网络流量中的当前预设应用场景是否为异常流量集,只要监测一个新的预设应用场景就需给流量总数加1。
[0137] S44.将异常总数除以流量总数,获取异常占比。
[0138] 其中,异常占比就是异常总数占流量总数的百分比。
[0139] 本步骤通过初始化初始化异常总数和流量总数,并随着对实际网络流量进行监测时实时更新这两个数据,可简单快捷地获取当前的异常占比。
[0140] 本发明实施例提供的网络流量监测方法是通过获取实际网络流量,基于实际网络流量对应的预设应用场景查询预设的正常流量模型库,用以监测实际网络流量是否为网络异常流量来实现的。一方面,通过正常流量模型库监测实际网络流量,也可检测到未发现过的网络异常流量;另一方面,通过简单高效的算法即可建立正常流量模型库,适用于网络流量运算量较大的云安全领域。
[0141] 进一步地,服务器还通过采用应用场景基准线将实际网络流量划分出预设应用场景,以使判定实际网络流量的过程更加具有针对性和条理性;通过提前生成所有预设应用场景对应的预设应用场景基准线,以便于服务器在截取海量实际网络流量时,可直接调用预设应用场景基准线,且准确地划分实际网络流量;通过初始化初始化异常总数和流量总数,并随着对实际网络流量进行监测时实时更新这两个数据,可简单快捷地获取当前的异常占比。
[0142] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0143] 实施例2
[0144] 图8示出与实施例1中网络流量监测方法一一对应的网络流量监测装置的原理框图。如图8所示,该网络流量监测装置包括获取网络流量模块10、获得特征向量模块20、对应特征向量模块30和统计异常占比模块40。其中,获取网络流量模块10、获得特征向量模块20、对应特征向量模块30和统计异常占比模块40的实现功能与实施例中网络流量监测方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
[0145] 获取网络流量模块10,用于获取实际网络流量,基于实际网络流量获取对应的至少一个预设应用场景和与预设应用场景相对应的实际特征向量。
[0146] 获得特征向量模块20,用于基于至少一个预设应用场景查询预设的正常流量模型库,获得与每一预设应用场景对应的正常特征向量。
[0147] 对应特征向量模块30,用于若同一预设应用场景对应的实际特征向量和正常特征向量的交集小于第一阈值,则预设应用场景对应的实际特征向量为异常流量集。
[0148] 统计异常占比模块40,用于统计获取异常流量集的对应的异常占比,若异常占比大于第二阈值,则实际网络流量为异常网络流量。
[0149] 优选地,该获得特征向量模块20包括获取应用场景单元21和取特征向量单元22。
[0150] 获取应用场景单元21,用于基于实际网络流量,调用预设的应用场景基准线对实际网络流量进行划分,获取对应的预设应用场景。
[0151] 获取特征向量单元22,用于基于实际网络流量,采用与预设应用场景相对应的特征提取算法对实际网络流量进行特征提取和特征向量化,获取对应的实际特征向量。
[0152] 优选地,该网络流量监测装置还包括生成基准线单元50。
[0153] 生成基准线单元50,用于生成当前预设应用场景对应的应用场景基准线。
[0154] 优选地,该生成基准线单元50包括采集网络流量子单元51、获取平均值子单元52和获取基准线子单元53。
[0155] 采集网络流量子单元51,用于采集正常网络流量,正常网络流量包括至少一个预设应用场景和与预设应用场景相对应的正常行为特征。
[0156] 获取平均值子单元52,用于对同一预设应用场景下的所有正常行为特征进行计算,获取对应的平均值和标准差。
[0157] 获取基准线子单元53,用于基于平均值和标准差,获取应用场景基准线。
[0158] 获取基准线单元60,用于继续获取下一预设应用场景对应的预设应用场景基准线,直至完成获取所有预设应用场景基准线。
[0159] 优选地,该网络流量监测装置还包括创建模型库单元70,用于创建正常流量模型库。
[0160] 优选地,创建模型库单元70包括获取网络流量子单元71、获得特征向量子单元72和形成模型库子单元73。
[0161] 获取网络流量子单元71,用于获取正常网络流量,基于预设的应用场景基准线划分正常网络流量,以获得对应的预设应用场景。
[0162] 获得特征向量子单元72,用于对正常网络流量进行特征提取和特征向量化,获得对应的正常特征向量。
[0163] 形成模型库子单元73,用于将预设应用场景和正常特征向量关联存储到数据库中,形成正常流量模型库。
[0164] 优选地,该获得特征向量子单元72包括获取特征数据子单元721和获得特征向量子单元722。
[0165] 获取特征数据子单元721,用于对正常网络流量进行特征提取,获取场景特征数据。
[0166] 获得特征向量子单元722,用于采用矩阵计算对场景特征数据进行特征向量化,获得对应的正常特征向量。
[0167] 优选地,该统计异常占比模块40包括初始化总数单元41、异常流量集处理单元42、加流量总数单元43和获取异常占比单元44。
[0168] 初始化总数单元41,用于初始化异常总数和流量总数。
[0169] 异常流量集处理单元42,用于若预设应用场景对应的实际特征向量为异常流量集,则异常总数和流量总数均加1。
[0170] 加流量总数单元43,用于若预设应用场景对应的实际特征向量不为异常流量集,则流量总数加1。
[0171] 获取异常占比单元44,用于将异常总数除以流量总数,获取异常占比。
[0172] 实施例3
[0173] 本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中网络流量监测方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中网络流量监测中各模块/单元的功能,为避免重复,这里不再赘述。
[0174] 可以理解地,计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号和电信信号等。
[0175] 实施例4
[0176] 图9是本发明一实施例提供的计算机设备的示意图。如图9所示,该实施例的计算机设备80包括:处理器81、存储器82以及存储在存储器82中并可在处理器81上运行的计算机程序83。处理器81执行计算机程序83时实现上述实施例1中网络流量监测方法的步骤,例如图1所示的步骤S10至S40。或者,处理器81执行计算机程序83时实现上述各装置实施例中各模块的功能,例如图8所示获取网络流量模块10、获得特征向量模块20、对应特征向量模块30和统计异常占比模块40的功能。
[0177] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0178] 以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。