CN109831450B - 一种自适应的网络流量异常检测方法 - Google Patents
一种自适应的网络流量异常检测方法 Download PDFInfo
- Publication number
- CN109831450B CN109831450B CN201910167605.2A CN201910167605A CN109831450B CN 109831450 B CN109831450 B CN 109831450B CN 201910167605 A CN201910167605 A CN 201910167605A CN 109831450 B CN109831450 B CN 109831450B
- Authority
- CN
- China
- Prior art keywords
- value
- ratio
- sampling
- learning
- network flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明公开了一种自适应的网络流量异常检测方法,属于网络安全领域,解决现有检测方法,自适性差、开销大和时效性差等问题。本发明包括第一阶段和第二阶段;若为初始学习则执行第一阶段,否则执行第二阶段;第一阶段为初始学习阶段,将最大值学习值作为该网络流量指标的预警阈值触发告警、突跳比例学习值和突跳值学习值作为共同预警阈值触发告警、突跳比例学习值和陡降比例学习值作为共同预警阈值触发告警;第二阶段将更新后的最大值学习值作为该网络流量指标的预警阈值触发告警、突跳比例学习值和突跳值学习值作为共同预警阈值触发告警、突跳比例学习值和陡降比例学习值作为共同预警阈值触发告警。本发明用于自适应学习对网络流量异常检测。
Description
技术领域
一种自适应的网络流量异常检测方法,用于自适应学习对网络流量异常检测,属于网络安全领域。
背景技术
随着Internet的不断发展,网络规模日益扩大,其承载的网络业务逐渐增多。网络安全已成为人们越来越关心的问题。网络流量异常是指对网络正常使用造成不良影响的网络流量模式,网络扫描、DDOS攻击、网络蠕虫病毒、恶意下载、物理链路损坏等都会导致网络流量异常。网络流量异常往往伴随严重后果,如占用网络资源,网络拥塞,造成丢包、延时增加;占用设备系统资源(CPU,内存等),网络设施面临瘫痪。因此网络异常流量的实时检测及合理响应对于维护网络安全、抑制恶意攻击和合理分配网络带宽具有重要意义。
目前常见的网络异常流量的检测方法有以下几种。
(1)基于数据挖掘的异常检测。数据挖掘可以有效的从海量网络流量数据中挖掘到潜在有用的信息。数据挖掘需要采集大量、真实有效的网络流量数据,通过抽样选取确定目标数据,对目标数据进行预处理及变换,然后应用数据挖掘中的算法如聚类分析、序列分析等,通过一定的判断规则,对流量数据进行检测。
(2)基于小波变换的异常检测。对于非稳定的信号,小波变换通过有限长的会衰减的小波基进行时频域变化,从而得到它的时频谱。小波变换检测流量的步骤通常为:对一个指标的全部采样值进行分析,将其拆分为不同的分量,通过计算不同分量的方差,来按照一定的概率发现指标异常。小波变换对于信号的分解和重构是有效的,分解后的信号在频域上具有专一性,并对信号进行了平滑处理,从而将处理方法从平稳时间序列扩展到了非平稳时间序列。通过分析不同的尺度下逼近信号和细节信号,可以方便的从中检测到异常流量。
(3)基于神经网络的异常检测。通过对输入信息的学习,构造输入和输出的关系模型,通过自动学习与更新,可以准确的表达非线性关系。因此当有新的输入进入时,可以良好的预测输出的情况。因此对于下一时间节点预测的错误概率一定程度上可以反过来代表该时间节点的行为异常程度。
上述的方法各有优点,都可以满足异常网络流量检测的要求,但是存在如下不足之处:
(1)自适性差。以上方法需要对海量的指标样本进行一次性处理,不适用于在线、实时的流量异常检测场景,无法根据动态数据及时调整阈值;上述方法得到的阈值是针对所有的指标样本而言的,针对性较差,无法适用于实时增长且不断变化的数据。
(2)开销大。为了保证结果的合理性,以上算法需要对大量数据进行学习,处理算法时间复杂度和空间复杂度均很高,且有较多的冗余数据参与到处理过程中;随着数据的增加,计算的复杂度可能呈指数型增长,极大的制约了流量异常检测的发展。
(3)时效性差。上述方法不能迅速对异常流量做出反应,往往需要在批量处理所有数据之后才能发现异常。
因此,目前尚未有一种网络流量异常检测方法方案,能够自适应地对实时网络数据进行在线、分阶段处理,以快速发现异常。
发明内容
针对上述研究的问题,本发明的目的在于提供一种自适应的网络流量异常检测方法,解决现有技术中的检测方法,自适性差、开销大和时效性差等问题。
为了达到上述目的,本发明采用如下技术方案:
一种自适应的网络流量异常检测方法,其特征在于,包括第一阶段和第二阶段;若为初始学习则执行第一阶段,否则执行第二阶段;
第一阶段为初始学习阶段,包括如下步骤:
S1、基于n个时间周期,获取每个时间周期内一个或多个网络流量指标的采样值,采样值表示该网络流量指标在该时间周期内的数值,某一个网络流量指标在n个时间周期得到n 个采样值;
S2、基于每个网络流量指标得到的n个采样值,得到最终最大学习值X_MAX_learn,并将X_MAX_learn*3作为该网络流量指标的预警阈值触发告警;
S3、基于小于等于最终最大学习值X_MAX_learn的该网络流量指标的所有采样值,得到突跳比例学习值X_INC_RATIO_learn和突跳值学习值X_CHANGE_learn作为共同预警阈值触发告警;
S4、针对每个网络流量指标的所有采样值,获得陡降比例学习值X_DEC_RATIO_learn,将突跳值学习值X_CHANGE_learn和陡降比例学习值X_DEC_RATIO_learn作为该网络流量指标的共同预警阈值触发告警;
S5、将步骤S2-S4得到的某网络流量指标的结果,对步骤S1获取的对应网络流量指标的n个采样值进行检测,若满足任意一结果,则触发告警,否则不触发告警。
第二阶段为持续学习与告警阶段,包括如下步骤:
步骤1、基于m个时间周期,再次获取每个时间周期内某网络流量指标的采样值;
步骤2、基于新获取的某网络流量指标的m个采样值对上一次得到的最终的最大值学习值X_MAX_learn、突跳值学习值X_CHANGE_learn、突跳比例学习值X_INC_RATIO_learn和陡降比例学习值X_DEC_RATIO_learn进行更新;
步骤3、基于更新后的某网络流量指标的结果,再对步骤1中新获取的对应的网络流量指标的n个采样值进行检测,若满足任意一结果,则触发告警,否则不触发告警。
进一步,所述步骤S2的具体步骤为:
S2.1、基于每个网络流量指标的n个采样值,n个采样值记录序列为(X1, X2,......Xn);
S2.2、对n个采样值从小到大排序,重新记录该网络流量指标的采样值序列为(S1,S 2,......Sn);
S2.3、取n的中值,即k=n/2,若有小数位,去掉小数位取整,在排序后的采样值序列中取采样值Sk作为该网络流量指标的最大学习值X_MAX_learn;
S2.4、基于排序后的采样值序列,选择采样值Si判断其是否小于X_MAX_learn*3,其中i=k+1,k+2,......n,若满足,则令X_MAX_learn=Si作为最大学习值X_MAX_learn,若该网络流量指标的采样值已检测完,得到最终最大学习值X_MAX_learn,X_MAX_learn*3则作为该网络流量指标的预警阈值,用于采样值超过预警预值触发该网络流量指标告警,否则,再次执行步骤S2.4对该网络流量指标的下一个采样值进行检测。
进一步,所述步骤S3的具体步骤为:
S3.1、基于小于等于最终最大学习值X_MAX_learn的该网络流量指标的所有采样值,计算每个网络流量指标的采样值的突跳比例和突跳值;
突跳比例是指每个网络流量指标的某一采样值与前一时间周期的采样值的升幅比例,计算公式为:((Xi+1 )-Xi )/Xi ;
突跳值指每个网络流量指标的某一采样值与前一时间周期的采样值的差值,计算公式为:(Xi+1 )-Xi ;
S3.2、取每个网络流量指标计算的所有突跳比例中的最大值为突跳比例学习值X_INC_RATIO_learn、所有突跳值中的最大值为突跳值学习值X_CHANGE_learn;
S3.3、每个网络流量指标计算的采样值的突跳比例和突跳值分别大于突跳比例学习值X_INC_RATIO_learn和突跳值学习值X_CHANGE_learn,则触发该网络流量指标告警。
进一步,所述步骤S4的具体步骤为:
S4.1、基于每个网络流量的n个采样值,计算每个网络流量指标的某一采样值与前一时间周期的采样值的陡降比例,计算公式为:(Xi -(Xi+1 ))/Xi ,取所有陡降比例中的最大值为陡降比例学习值X_DEC_RATIO_learn;
S4.2、每个网络流量指标计算的采样值的突跳值和陡降比例分别大于突跳值学习值X_CHANGE_learn和陡降比例学习值X_DEC_RATIO_learn,则触发该网络流量指标告警。
进一步,所述步骤2的具体步骤包括:
对上一次得到的某网络流量指标的最终最大值学习值X_MAX_learn进行更新,即取当前采样值Xi 与X_MAX_learn进行比较,如果Xi >X_MAX_learn且Xi <X_MAX_learn *3,则X_MAX_learn=Xi ,i=n+1,n+2...,n+m,n为当前采样值获取前,所有的时间周期个数;
对上一次得到的某网络流量指标的突跳值学习值X_CHANGE_learn进行更新,即取当前采样值与前一时间周期的采样值的差值Xi -(Xi-1 ),将其与上一次得到的X_CHANGE_learn进行比较,如果Xi -(Xi-1 )>X_CHANGE_learn,且同时满足 Xi <X_MAX_learn*3,则X_CHANGE_learn=Xi -(Xi-1 );
对上一次得到的某网络流量指标的突跳比例学习值X_INC_RATIO_learn进行更新,即取当前采样值与前一时间周期的采样值的突跳比例((Xi+1 )-Xi )/Xi ,将其与上一次得到的X_INC_RATIO_learn进行比较,如果((Xi+1 )-Xi )/Xi >X_INC_RATIO_learn,且同时满足 Xi <X_MAX_learn*3,则X_INC_RATIO_learn=((Xi+1 )-Xi )/Xi ;
对上一次得到的某网络流量指标的陡降比例学习值X_DEC_RATIO_learn进行更新,即取当前采样值与前一时间周期的采样值的陡降比例(Xi -(Xi+1 ))/Xi ,将其与X_DEC_RATIO_learn进行比较,如果(Xi -(Xi+1 ))/Xi >X_DEC_RATIO_learn,则X_DEC_RATIO_learn=(Xi -(Xi+1 ))/Xi 。
本发明同现有技术相比,其有益效果表现在:
(1)本发明时间和空间复杂度均明显低于现有方法的轻量级、自适应流量异常检测方法,即常见机器学习算法——决策树的算法时间复杂度为0(M*N*D),其中M为采样数量(时间周期数量),N为指标数量,D为树的深度,空间复杂度为o(M*Split*TreeNum),Split为平均每个特征的切分点数量,TreeNum为随机森林的树木数量;本发明的时间复杂度为 0(M*N),其中M为采样数量(时间周期数量),N为指标数量,空间复杂度为0(N),N为指标数量,所以本发明与现有技术相比是轻量级算法,时间、空间复杂度均优;
(2)本发明自动实时更新处理和分析过程中,根据处理数据的数据特征自动调整处理方法、处理顺序、处理参数、边界条件或约束条件,使其与所处理数据的统计分布特征、结构特征相适应,以取得最佳的处理效果。
(3)本发明自适应学习与告警能够自适应地学习某个指标的正常范围和抖动尺度,自适应获取各类指标的告警阈值,能够适应不同的网络环境,不需要人工训练过程。
附图说明
图1是本发明中第一阶段的流程示意图;
图2是本发明中第二阶段的流程示意图;
图3为本发明实施例中更新突跳比例学习值X_INC_RATIO_learn的计算示意图;
图4为本发明实施例中更新陡降比例学习值X_DEC_RATIO_learn的计算示意图。
具体实施方式
下面将结合附图及具体实施方式对本发明作进一步的描述。
采样值:专用网络设备(防火墙或流量分析系统)在一个时间周期内获得的一个指标的值,代表该指标在该时间周期内的数值。例如:一分钟内统计获得的“TCP报文数量”值,可以作为该一分钟内的“TCP报文数量”指标的采样值。
最大值:某个指标的多个采样值中的最大值。
最小值:某个指标的多个采样值中的最小值。
突跳值:某指标的当前采样值与前一个时间周期的采样值之差。
突跳比例:某指标的当前采样值与前一个时间周期的采样值之差>0时,该指标的大于零的差值与前一个采样值之间的比值。
陡降比例:某指标的当前采样值与前一个时间周期的采样值之差<0时,该指标的小于零的绝对值与前一个采样值之间的比值。
一种自适应的网络流量异常检测方法,包括第一阶段和第二阶段;若为初始学习则执行第一阶段,否则执行第二阶段;
第一阶段为初始学习阶段,包括如下步骤:
S1、基于n个时间周期,获取每个时间周期内一个或多个网络流量指标的采样值,采样值表示该网络流量指标在该时间周期内的数值,某一个网络流量指标在n个时间周期得到n 个采样值;即从专用网络设备(防火墙或流量分析系统)获得每分钟(也可为其它时间周期)多个网络流量指标的采样值,本发明不针对网络流量指标的采集值和指标定义进行设计,本发明可针对任意数值类型的指标进行分析,第初次学习中,n为初始学习的时间周期。
S2、基于每个网络流量指标得到的n个采样值,得到最终最大学习值X_MAX_learn,并将X_MAX_learn*3作为该网络流量指标的预警阈值触发告警;具体步骤为:
S2.1、基于每个网络流量指标的n个采样值,n个采样值记录序列为(X1, X2,......Xn);
S2.2、对n个采样值从小到大排序,重新记录该网络流量指标的采样值序列为(S1,S 2, ......Sn);
S2.3、取n的中值,即k=n/2,若有小数位,去掉小数位取整,在排序后的采样值序列中取采样值Sk作为该网络流量指标的最大学习值X_MAX_learn;
S2.4、基于排序后的采样值序列,选择采样值Si判断其是否小于X_MAX_learn*3,其中i=k+1,k+2,......n,若满足,则令X_MAX_learn=Si作为最大学习值X_MAX_learn,若该网络流量指标的采样值已检测完,得到最终最大学习值X_MAX_learn,X_MAX_learn*3则作为该网络流量指标的预警阈值,用于采样值超过预警预值触发该网络流量指标告警,否则,再次执行步骤S2.4对该网络流量指标的下一个采样值进行检测。
S3、基于小于等于最终最大学习值X_MAX_learn的该网络流量指标的所有采样值,得到突跳比例学习值X_INC_RATIO_learn和突跳值学习值X_CHANGE_learn作为共同预警阈值触发告警;具体步骤为:
S3.1、基于小于等于最终最大学习值X_MAX_learn的该网络流量指标的所有采样值,计算每个网络流量指标的采样值的突跳比例和突跳值;
突跳比例是指每个网络流量指标的某一采样值与前一时间周期的采样值的升幅比例,计算公式为:((Xi+1 )-Xi )/Xi ;
突跳值指每个网络流量指标的某一采样值与前一时间周期的采样值的差值,计算公式为:(Xi+1 )-Xi ;
S3.2、取每个网络流量指标计算的所有突跳比例中的最大值为突跳比例学习值X_INC_RATIO_learn、所有突跳值中的最大值为突跳值学习值X_CHANGE_learn;
S3.3、每个网络流量指标计算的采样值的突跳比例和突跳值分别大于突跳比例学习值X_INC_RATIO_learn和突跳值学习值X_CHANGE_learn,则触发该网络流量指标告警。
S4、针对每个网络流量指标的所有采样值,获得陡降比例学习值X_DEC_RATIO_learn,将突跳值学习值X_CHANGE_learn和陡降比例学习值X_DEC_RATIO_learn作为该网络流量指标的共同预警阈值触发告警;具体步骤为:
S4.1基于每个网络流量的n个采样值,计算每个网络流量指标的某一采样值与前一时间周期的采样值的陡降比例,计算公式为:(Xi -(Xi+1 ))/Xi,取所有陡降比例中的最大值为陡降比例学习值X_DEC_RATIO_learn;
S4.2、每个网络流量指标计算的采样值的突跳值和陡降比例分别大于突跳值学习值X_CHANGE_learn和陡降比例学习值X_DEC_RATIO_learn,则触发该网络流量指标告警。
S5、将步骤S2-S4得到的某网络流量指标的结果,对步骤S1获取的对应网络流量指标的n个采样值进行检测,若满足任意一结果,则触发告警,否则不触发告警。
第二阶段为持续学习与告警阶段,包括如下步骤:
步骤1、基于m个时间周期,再次获取每个时间周期内某网络流量指标的采样值,m与 n相等;
步骤2、基于新获取的某网络流量指标的m个采样值对上一次得到的最终的最大值学习值X_MAX_learn、突跳值学习值X_CHANGE_learn、突跳比例学习值X_INC_RATIO_learn和陡降比例学习值X_DEC_RATIO_learn进行更新;具体步骤包括:
对上一次得到的某网络流量指标的最终最大值学习值X_MAX_learn进行更新,即取当前采样值Xi 与X_MAX_learn进行比较,如果Xi >X_MAX_learn且Xi <X_MAX_learn*3,则X_MAX_learn=Xi ,i=n+1,n+2...,n+m,n为当前采样值获取前,所有的时间周期个数;
对上一次得到的某网络流量指标的突跳值学习值X_CHANGE_learn进行更新,即取当前采样值与前一时间周期的采样值的差值Xi -(Xi-1 ),将其与上一次得到的X_CHANGE_learn进行比较,如果Xi -(Xi-1 )>X_CHANGE_learn,且同时满足 Xi <X_MAX_learn*3,则X_CHANGE_learn=Xi -(Xi-1 );
对上一次得到的某网络流量指标的突跳比例学习值X_INC_RATIO_learn进行更新,即取当前采样值与前一时间周期的采样值的突跳比例((Xi+1 )-Xi )/Xi ,将其与上一次得到的X_INC_RATIO_learn进行比较,如果((Xi+1 )-Xi )/Xi >X_INC_RATIO_learn,且同时满足 Xi <X_MAX_learn*3,则X_INC_RATIO_learn=((Xi+1 )-Xi )/Xi ;
对上一次得到的某网络流量指标的陡降比例学习值X_DEC_RATIO_learn进行更新,即取当前采样值与前一时间周期的采样值的陡降比例(Xi -(Xi+1 ))/Xi ,将其与X_DEC_RATIO_learn进行比较,如果(Xi -(Xi+1 ))/Xi >X_DEC_RATIO_learn,则X_DEC_RATlO_learn=(Xi -(Xi+1 ))/Xi 。
步骤3、基于更新后的某网络流量指标的结果,再对步骤1中新获取的对应的网络流量指标的n个采样值进行检测,若满足任意一结果,则触发告警,否则不触发告警。
实施例
有专用网络设备(防火墙或流量分析DPI系统)对网络流量进行在线分析和统计,每间隔一个固定的时间周期,例如:1分钟为一个时间周期,输出一条网络流量指标统计记录,该统计记录存储了一个或多个统计的网络流量指标的采样值,例如:对于某个统计网络流量指标“TCP报文数量”,可获得每分钟的统计值,称为一个采样值),多条统计记录的集合,构成了不同指标的采样值时间序列。本发明对上述统计记录的集合进行依次分析,通过学习获得网络流量指标的正常状态,并通过识别网络流量指标的采样值的异常变化来触发报警。
在本实施例中,以“TCP报文数量”一个网络流量指标为例,假设通过防火墙日志,可获得该指标每分钟的采样值;
第一阶段:
基于n=10个时间周期,共获得10个“TCP报文数量”的采样值,10个采样值记录序列为(X1,X2,......Xn),采样值的具体值序列为(100,101,99,102,88,110,500, 112,115,9);
对采样值的具体值序列(100,101,99,102,88,110,500,112,115,9)从小到大进行排序,排序后的采样值序列结果为(9,88,99,100,101,102,110,112,115, 500);取10的中值,即k=10/2,k=5,因n为10,所以无小数点,无需去除小数点,采样值中值S5作为该网络流量指标的最大学习值X_MAX_learn,X_MAX_learn为101;
在排序后的采样值序列中,选择采样值Si判断其是否小于X_MAX_learn*3,其中i= k+1,k+2,......n,依次检查每个采样值,具体为:i=6时102<3*101,满足条件,令X_MAX_learn=102;1=7时,110<3*102,满足条件,令X_MAX_learn=110;i=8时, 112<3*110,满足条件,令X_MAX_learn=112,i=9时,115<3*112,满条件,令X_MAX_learn=115;i=10时,500>3*115,不满条件,X_MAX_learn=115;最终获得的结果为X_MAX_learn=115为第一阶段的“TCP报文数量”指标学习值,将此学习值作为最终最大值学习值,此后的告警过程中,将以115*3=345为“TCP报文数量”指标的预警阈值,如果“TCP报文数量”指标的采样值超过345,则会触发针对“TCP报文数量”的单个指标的预警。
基于小于等于最终最大学习值X_MAX_learn的所有采样值100,101,99,102,88,110,112,115,9进行突跳比例、突跳值的计算;
突跳比例的计算公式为((Xi+1 )-Xi )/Xi ,计算得到的结果分别为:0.010,-0.0198, 0.030,-0.1373,0.25,0.0268,-0.9217,X_INC_RATIO_learn为其中的最大值,即X_INC_RATIO_learn=0.25;
突跳值的计算公式为(Xi+1 )-Xi ,在本样例中认为110(X6)和112(X8)不相邻,因为其中间的500已经去除,因此112-110=2这一差值不予以考虑,计算得到的结果分别为:1,-2,3,-14,22,3,-106,X_CHANGE_learn为其中的最大值,即X_CHANGE_learn=22;
“TCP报文数量”指标的采样值的突跳比例和突跳值分别大于0.25和22,则会触发“TCP报文数量”指标突跳告警。
基于采样值的具体值序列(100,101,99,102,88,110,500,112,115,9),陡降比例的计算公式为:(Xi -(Xi+1 ))/Xi ,计算结果分别为-0.010,0.0198,-0.030,0.1373,-0.25,-3.5455,0.776,-0.0268,0.9217,选择最大值作为陡降比例学习值 (X_DEC_RATIO_learn);X_DEC_RATIO_learn=0.9217;
“TCP报文数量”指标的采样值的突跳值和陡降比例分别大于22和0.9217,则会触发“TCP报文数量”指标陡降告警。
针对第一阶段的采样值的具体值序列(100,101,99,102,88,110,500,112, 115,9)初始采样数据进行回溯,分别检查是否满足以下条件:
若Xi >115,则触发“TCP报文数量”指标最大值越界告警,即X7会触发最大值越界告警;
若((Xi+1 )-Xi )>22,且满足((Xi+1 )-Xi )/Xi >0.25,则触发“TCP报文数量”指标突跳告警。(X7-X6)=390>22且(X7-X6)/X6=3.5455>0.25,则触发“TCP报文数量”指标突跳告警;
“TCP报文数量”指标当前采样值与前一时间周期采样值的差值(Xi -(Xi+1 ))>22,且满足(Xi -(Xi+1 ))/Xi >0.9217,则触发“TCP报文数量”指标陡降告警。目前暂无指标触发陡降告警。
第二阶段:
以“TCP报文数量”指标为例,m=10,共获得10个“TCP报文数量”的采样值 (X11,X12,......Xn+10),采样值的具体值序列为(8,60,112,102,105,19,600, 90,89,143);
当i=20时,满足143>115且143<345,因此更新当前最大值X_MAX_learn =143,因此更新当前最大值X_MAX_learn =143;即对上一次得到的某网络流量指标的最终最大值学习值X_MAX_learn进行更新,取当前采样值Xi与X_MAX_learn进行比较,如果 Xi >X_MAX_learn且Xi <X_MAX_learn*3,则X_MAX_learn=Xi ,i=n+1,n+2...,n+m,n 为当前采样值获取前,所有的时间周期个数;
对上一次得到的某网络流量指标的突跳值学习值X_CHANGE_learn进行更新,即取当前采样值与前一时间周期的采样值的差值Xi -(Xi-1 ),将其与上一次得到的X_CHANGE_learn进行比较,如果Xi -(Xi-1 )>X_CHANGE_learn,且同时满足 Xi <X_MAX_learn*3,则X_CHANGE_learn=Xi -(Xi-1 ),针对(8,60,112,102,105, 19,600,90,89,143)计算可知,当i=12时,X12-X11=52,满足52>22且52<429,X_MAX_learn*3=143*3=429,更新X_CHANGE_learn=52;针对(8,60,112,102, 105,19,600,90,89,143)计算可知,当i=20时,X20-X19=54,满足54>52且 54<429,则X_CHANGE_learn=X20-X19=54;
对上一次得到的某网络流量指标的突跳比例学习值X_INC_RATIO_learn进行更新,即取当前采样值与前一时间周期的采样值的升幅比例((Xi+1 )-Xi )/Xi ,将其与上一次得到的X_INC_RATIO_learn进行比较,如果((Xi+1 )-Xi )/Xi >X_INC_RATIO_learn,且同时满足 Xi<X_MAX_learn*3,则X_INC_RATIO_1earn=((Xi+1 )-Xi )/Xi ;如果((Xi+1 )-Xi )/Xi >0.25,且同时满足Xi <429,则X_INC_RATIO_learn=((Xi+1 )-Xi )/Xi ;针对(8,60,112,102, 105,19,600,90,89,143)计算可知,如图3所示,突跳比例((Xi+1 )-Xi )/Xi 分别为- 0.1111,6.5000,0.8667,-0.0893,0.0294,-0.8190,30.5789((600-19)/19),-0.85,-0.0111,0.6067;如果((Xi+1 )-Xi )/Xi )>0.25且同时满足Xi <429,则进行更新;当i=11时,满足条件,则X_INC_RATIO_learn=6.5;当i=16时,满足条件,X_INC_RATIO_learn=30.5789,最终得到X_INC_RATIO_learn=30.5789;
对上一次得到的某网络流量指标的陡降比例学习值X_DEC_RATIO_learn进行更新,即取当前采样值与前一时间周期的采样值的陡降比例(Xi -(Xi+1 ))/Xi ,将其与X_DEC_RATIO_learn进行比较,如果(Xi -(Xi+1 ))/Xi >X_DEC_RATIO_learn,则X_DEC_RATIO_learn=(Xi -(Xi+1 ))/Xi ,如果(Xi -(Xi+1 ))/Xi >0.9217,则X_DEC_RATIO_learn=(Xi -(Xi+1 ))/Xi ;针对(8,60,112,102,105,19,600,90,89,143)计算可知,如图 4所示,陡降比例(Xi -(Xi+1 ))/Xi 分别为:0.1111,-6.5000,-0.8667,0.0893,-0.0294, 0.8190,-30.5789,0.8500,0.0111,-0.6067;无满足条件的数据,因此不予更新,X_DEC_RATIO_learn=0.9217。
第二阶段更新后告警:使用当前最新学习值,针对当前获得的“TCP报文数量”指标采样值的具体值序列(8,60,112,102,105,19,600,90,89,143),进行指标告警,告警触发条件包括三类(满足任意条件则触发告警),具体为:
Xi >429,则触发“TCP报文数量”指标最大值越界告警;即X17触发“TCP报文数量”指标最大值越界告警;
若((Xi+1 )-Xi )>54,且满足((Xi+1 )-Xi )/Xi >30.5789,则触发“TCP报文数量”指标突跳告警;
若(Xi -(Xi+1 ))>54,且满足(Xi -(Xi+1 ))/Xi >0.9217,则触发“TCP报文数量”指标陡降告警。
本实施例中只针对两次采集的采样值进行了说明,若采集第三次,则将第一次和第二次的采样值个数或时间周期进行累计后重置n,第三次采样值和时间周期作为m,以此类推。
以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。
Claims (5)
1.一种自适应的网络流量异常检测方法,其特征在于,包括第一阶段和第二阶段;若为初始学习则执行第一阶段,否则执行第二阶段;
第一阶段为初始学习阶段,包括如下步骤:
S1、基于n个时间周期,获取每个时间周期内一个或多个网络流量指标的采样值,采样值表示该网络流量指标在该时间周期内的数值,某一个网络流量指标在n个时间周期得到n个采样值;
S2、基于每个网络流量指标得到的n个采样值,得到最终最大学习值X_MAX_learn,并将X_MAX_learn*3作为该网络流量指标的预警阈值触发告警;最终最大学习值X_MAX_learn的定义为:在每个网络流量指标得到的n个采样值按照从小到大从左至右排序后的集合中,大于中位数,且小于其左边邻居成员值的3倍的最大成员值;
S3、基于小于等于最终最大学习值X_MAX_learn的该网络流量指标的所有采样值,得到突跳比例学习值X_INC_RATIO_learn和突跳值学习值X_CHANGE_learn作为共同预警阈值触发告警;突跳比例学习值是指每个网络流量指标的某一采样值相对于前一时间周期的采样值的升幅比例的最大值;突跳值学习值指每个网络流量指标的某一采样值与前一时间周期的采样值的差值的最大值;
S4、针对每个网络流量指标的所有采样值,获得陡降比例学习值X_DEC_RATIO_learn,将突跳值学习值X_CHANGE_learn和陡降比例学习值X_DEC_RATIO_learn作为该网络流量指标的共同预警阈值触发告警;陡降比例学习值是指每个网络流量指标的某一采样值相对于前一时间周期的采样值的降幅比例的最大值;
S5、将步骤S2-S4得到的某网络流量指标的结果,对步骤S1获取的对应网络流量指标的n个采样值进行检测,检测过程针对每个采样值进行3次判断:首先判断该采样值是否大于最终最大学习值X_MAX_learn,若满足条件则输出告警结果;其次判断该采样值相对于前一时间周期的采样值的升幅比例是否大于突跳比例学习值X_INC_RATIO_learn,且该采样值与前一时间周期的采样值的差值是否大于突跳值学习值X_CHANGE_learn,若同时满足则输出告警结果;然后判断该采样值相对于前一时间周期的采样值的降幅比例是否大于陡降比例学习值X_DEC_RATIO_learn,且前一时间周期的采样值与该采样值的差值与是否大于突跳值学习值X_CHANGE_learn,若同时满足则输出告警结果;若满足以上3次判断中的任意一告警结果,则触发告警,否则不触发告警;
第二阶段为持续学习与告警阶段,包括如下步骤:
步骤1、基于m个时间周期,再次获取每个时间周期内某网络流量指标的采样值;
步骤2、基于新获取的某网络流量指标的m个采样值对上一次得到的最终的最大值学习值X_MAX_learn、突跳值学习值X_CHANGE_learn、突跳比例学习值X_INC_RATIO_learn和陡降比例学习值X_DEC_RATIO_learn进行更新;
步骤3、基于更新后的某网络流量指标的结果,再对步骤1中新获取的对应的网络流量指标的n个采样值进行检测,检测过程针对每个采样值进行3次判断:首先判断该采样值是否大于最终最大学习值X_MAX_learn,若满足条件则输出告警结果;其次判断该采样值相对于前一时间周期的采样值的升幅比例是否大于突跳比例学习值X_INC_RATIO_learn,且该采样值与前一时间周期的采样值的差值是否大于突跳值学习值X_CHANGE_learn,若同时满足则输出告警结果;然后判断该采样值相对于前一时间周期的采样值的降幅比例是否大于陡降比例学习值X_DEC_RATIO_learn,且前一时间周期的采样值与该采样值的差值与是否大于突跳值学习值X_CHANGE_learn,若同时满足则输出告警结果;若满足以上3次判断中的任意一告警结果,则触发告警,否则不触发告警。
2.根据权利要求1所述的一种自适应的网络流量异常检测方法,其特征在于,所述步骤S2的具体步骤为:
S2.1、基于每个网络流量指标的n个采样值,n个采样值记录序列为(X1,X2,……Xn);
S2.2、对n个采样值从小到大排序,重新记录该网络流量指标的采样值序列为(S1,S2,……Sn);
S2.3、取n的中值,即k=n/2,若有小数位,去掉小数位取整,在排序后的采样值序列中取采样值Sk作为该网络流量指标的最大学习值X_MAX_learn;
S2.4、基于排序后的采样值序列,选择采样值Si 判断其是否小于X_MAX_learn*3,其中i=k+1,k+2,……n,若满足,则令X_MAX_learn=Si 作为最大学习值X_MAX_learn,若该网络流量指标的采样值已检测完,得到最终最大学习值X_MAX_learn,X_MAX_learn*3则作为该网络流量指标的预警阈值,用于采样值超过预警阈值触发该网络流量指标告警,否则,再次执行步骤S2.4对该网络流量指标的下一个采样值进行检测。
3.根据权利要求1或2所述的一种自适应的网络流量异常检测方法,其特征在于,所述步骤S3的具体步骤为:
S3.1、基于小于等于最终最大学习值X_MAX_learn的该网络流量指标的所有采样值,计算每个网络流量指标的采样值的突跳比例和突跳值;
突跳比例是指每个网络流量指标的某一采样值与前一时间周期的采样值的升幅比例,计算公式为:((Xi+1 )-Xi )/Xi ;
突跳值指每个网络流量指标的某一采样值与前一时间周期的采样值的差值,计算公式为:(Xi+1 )-Xi ;
S3.2、取每个网络流量指标计算的所有突跳比例中的最大值为突跳比例学习值X_INC_RATIO_learn、所有突跳值中的最大值为突跳值学习值X_CHANGE_learn;
S3.3、每个网络流量指标计算的采样值的突跳比例和突跳值分别大于突跳比例学习值X_INC_RATIO_learn和突跳值学习值X_CHANGE_learn,则触发该网络流量指标告警。
4.根据权利要求1或2所述的一种自适应的网络流量异常检测方法,其特征在于,所述步骤S4的具体步骤为:
S4.1、基于每个网络流量的n个采样值,计算每个网络流量指标的某一采样值与前一时间周期的采样值的陡降比例,计算公式为:(Xi -(Xi+1 ))/Xi ,取所有陡降比例中的最大值为陡降比例学习值X_DEC_RATIO_learn;
S4.2、每个网络流量指标计算的采样值的突跳值和陡降比例分别大于突跳值学习值X_CHANGE_learn和陡降比例学习值X_DEC_RATIO_learn,则触发该网络流量指标告警。
5.根据权利要求1所述的一种自适应的网络流量异常检测方法,其特征在于,所述步骤2的具体步骤包括:
对上一次得到的某网络流量指标的最终最大值学习值X_MAX_learn进行更新,即取当前采样值Xi 与X_MAX_learn进行比较,如果Xi >X_MAX_learn且Xi <X_MAX_learn*3,则X_MAX_learn=Xi ,i=n+1,n+2…,n+m,n为当前采样值获取前,所有的时间周期个数;
对上一次得到的某网络流量指标的突跳值学习值X_CHANGE_learn进行更新,即取当前采样值与前一时间周期的采样值的差值Xi -(Xi-1 ),将其与上一次得到的X_CHANGE_learn进行比较,如果Xi -(Xi-1 )>X_CHANGE_learn,且同时满足Xi <X_MAX_learn*3,则X_CHANGE_learn=Xi -(Xi-1 );
对上一次得到的某网络流量指标的突跳比例学习值X_INC_RATIO_learn进行更新,即取当前采样值与前一时间周期的采样值的突跳比例((Xi+1 )-Xi )/Xi ,将其与上一次得到的X_INC_RATIO_learn进行比较,如果((Xi+1 )-Xi )/Xi >X_INC_RATIO_learn,且同时满足Xi <X_MAX_learn*3,则X_INC_RATIO_learn=((Xi+1 )-Xi )/Xi ;
对上一次得到的某网络流量指标的陡降比例学习值X_DEC_RATIO_learn进行更新,即取当前采样值与前一时间周期的采样值的陡降比例(Xi -(Xi+1 ))/Xi ,将其与X_DEC_RATIO_learn进行比较,如果(Xi -(Xi+1 ))/Xi >X_DEC_RATIO_learn,则X_DEC_RATIO_learn=(Xi -(Xi+1 ))/Xi 。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910167605.2A CN109831450B (zh) | 2019-03-06 | 2019-03-06 | 一种自适应的网络流量异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910167605.2A CN109831450B (zh) | 2019-03-06 | 2019-03-06 | 一种自适应的网络流量异常检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109831450A CN109831450A (zh) | 2019-05-31 |
CN109831450B true CN109831450B (zh) | 2021-05-07 |
Family
ID=66865457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910167605.2A Active CN109831450B (zh) | 2019-03-06 | 2019-03-06 | 一种自适应的网络流量异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109831450B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111089865B (zh) * | 2019-12-19 | 2024-02-27 | 国网甘肃省电力公司电力科学研究院 | 一种基于f-rcnn的缺陷电缆检测方法 |
CN115118464A (zh) * | 2022-06-10 | 2022-09-27 | 深信服科技股份有限公司 | 一种失陷主机检测方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7895227B1 (en) * | 2007-04-27 | 2011-02-22 | Intuit Inc. | System and method for detecting trends in network-based content |
CN102130800A (zh) * | 2011-04-01 | 2011-07-20 | 苏州赛特斯网络科技有限公司 | 基于数据流行为分析的网络访问异常检测装置及方法 |
CN105429977A (zh) * | 2015-11-13 | 2016-03-23 | 武汉邮电科学研究院 | 基于信息熵度量的深度包检测设备异常流量监控方法 |
CN106357673A (zh) * | 2016-10-19 | 2017-01-25 | 中国科学院信息工程研究所 | 一种多租户云计算系统DDoS攻击检测方法及系统 |
-
2019
- 2019-03-06 CN CN201910167605.2A patent/CN109831450B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7895227B1 (en) * | 2007-04-27 | 2011-02-22 | Intuit Inc. | System and method for detecting trends in network-based content |
CN102130800A (zh) * | 2011-04-01 | 2011-07-20 | 苏州赛特斯网络科技有限公司 | 基于数据流行为分析的网络访问异常检测装置及方法 |
CN105429977A (zh) * | 2015-11-13 | 2016-03-23 | 武汉邮电科学研究院 | 基于信息熵度量的深度包检测设备异常流量监控方法 |
CN106357673A (zh) * | 2016-10-19 | 2017-01-25 | 中国科学院信息工程研究所 | 一种多租户云计算系统DDoS攻击检测方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于数据包分析的网络攻击诊断研究_;马之力;《网络空间安全》;20160710;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109831450A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108731923B (zh) | 一种旋转机械设备的故障检测方法及装置 | |
CN112398779A (zh) | 一种网络流量数据分析方法及系统 | |
CN107493277B (zh) | 基于最大信息系数的大数据平台在线异常检测方法 | |
CN109831450B (zh) | 一种自适应的网络流量异常检测方法 | |
CN112819336B (zh) | 一种基于电力监控系统网络威胁的量化方法及系统 | |
CN110334105B (zh) | 一种基于Storm的流数据异常检测方法 | |
CN112822206B (zh) | 网络协同攻击行为的预测方法、装置以及电子设备 | |
CN107714038A (zh) | 一种脑电信号的特征提取方法及装置 | |
CN110717472B (zh) | 基于改进的小波阈值去噪的故障诊断方法及系统 | |
CN112217650B (zh) | 网络阻塞攻击效果评估方法、装置及存储介质 | |
CN110598180B (zh) | 一种基于统计分析的事件检测方法、装置及系统 | |
CN110012009B (zh) | 基于决策树和自相似模型结合的物联网入侵检测方法 | |
CN115454778A (zh) | 大规模云网络环境下的时序指标异常智能监控系统 | |
CN110572397A (zh) | 一种基于流量的webshell的检测方法 | |
CN113420652A (zh) | 一种时序信号片段异常识别方法、系统、介质及终端 | |
CN112116078A (zh) | 一种基于人工智能的信息安全基线学习方法 | |
CN115622867A (zh) | 一种工控系统安全事件预警分类方法及系统 | |
Lavrova et al. | Wavelet-analysis of network traffic time-series for detection of attacks on digital production infrastructure | |
CN111444501A (zh) | 一种基于梅尔倒谱与半空间森林结合的LDoS攻击检测方法 | |
CN114116168A (zh) | 一种虚拟网络流量采集的方法 | |
CN108306997B (zh) | 域名解析监控方法及装置 | |
CA3191230A1 (en) | Method for detecting anomalies in time series data produced by devices of an infrastructure in a network | |
CN113726756A (zh) | 一种web异常流量检测方法、装置、设备及存储介质 | |
CN113780400A (zh) | 一种基于DDAE-CATBOOST的DDoS攻击流量分类方法 | |
CN109981413B (zh) | 网站监控指标报警的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |