以帮助其他检测方法来判断检测时刻点的流量是否异常。 如在单点动态检测中发现流量的突 变, 这时候动态检测会给出异常告警, 如果这个时候正好是系统启动 (刚上班时间) 的时刻, 则这种告警我们可以认为的判断是一种误报。 由于网络的相似性和周期性特点的存在使得我 们可以用静态检测方法来降低这种误报的可能性, 即静态通过历史数据的学习认为该时刻点 流量在阈值的范围内,则接受,否则发出网络流量异常告警。 T −1 T x t = φ 1 x t −1 + φ 2 x t − 2 + ε t
得到 AR 模型的参数后我们就可以计算出 ε t 的值,ε t 应该是符合正态分布的随机变量, 于是我们认为当 ε t 落在某个范围内则认为流量正常,超出某个范围认定网络出现异常流量。 3.3 时间窗纵向比较检测 仅仅通过单一时间点的检测我们认为还不能发现网络存在的所有异常, 当流量值均在单 x2t (1 ≤ t ≤ 6 ) ,上一工作日当前时间窗的数据为 y1t (1 ≤ t ≤ 6 ) ,该时间窗的是一个时间窗 的数据为 y2t (1 ≤ t ≤ 6 ) 。这样我们获得了四个时间窗的共 24 个数据,对这 24 个数据做如 下比较: y = ∑ d t nd w d + ∑ wt nw w w d t 表示过去四个工作日相同时刻的流量, wt 表示过去三周相同工作日相同时刻的流 量。 wd 和 ww 分别表示 d t 和 wt 在计算中所在权重,即流量主要是考虑那种相似程度更高, 实际流量应该 这个值由网络运维人员来设定。 y 表示计算出来的当前时刻流量的一个基值, 在范围[ y - λ1 , y + λ2 ]内波动,如果超出这个范围则视为异常。 单点静态检测这种方法虽然最简单最直接但是在实际的网络运行中有其实际意义, 它可 yt (1 ≤ t ≤ 6 ) ,进行计算: λ = ∑ (x t − yt 2 )2 6 如果当前时间窗和上一个时间窗的曲线相似,则 λ 的值则应趋进于 0,如果 λ 的值超出 某个设定的值,则认为两个曲线差异度较大,即不相似。如果 λ 在某个可以接受的范围内则 认为网络属于正常运行状态。 3.4 时间窗横向比较检测 3.1 单点静态检测 单点静态检测算法是一种基于阈值的检测算法。 由于网络流量存在相似性和周期性, 所 以可以通过比较不同工作日的同一时间点流量, 和每周相同工作日同一时间点可以观测和分 析当前时刻流量所处状态。 具体方法是系统获取过去四个工作日同一时刻的流量值, 和过去 三周相同工作日同一时刻的流量值, 分别给这两类流量值不同的权值用于计算, 通过取数学 期望的方式得到一个该工作日当前时刻的基本流量, 当前网络流量值应该在这个基本流量的 上下浮动。 系统根据网络实际运维人员的经验来调整阈值, 在以上一个基本流量为标准的基 础上检查网络流量是否出现异常。算法公式为: 3.2 单点动态检测 网络流量不仅存在相似性和周期性的特点, 还存在突发性和可变性的特点。 如果仅仅是 依靠静态检测方法来检测网络的运行情况,则网络可能出现的细小的流量突变则反映不出 来, 而这个时候可能是某种入侵或者网络故障出现的时刻。 只有当网络流量出现很大变化时, 静态检测算法才可能发现网络出现了问题,而这个时候可能已经错过了处理问题的最佳时 刻。静态检测算法的滞后性要求使用其他的方法来弥补,短期动态检测 AR[7,8](自回归)模 型能够较好的取得这样的效果。 对当前时刻过去一小段时间采集的流量数据做均值化除去周期项, 求得每个时刻流量的 剩余值,这一系列的剩余值则可近视为剩余平稳序列,可以对其做自回归模型 AR(p)拟 合。 我们每次对 N 个采集值求剩余平稳序列,N 个流量值记为 y1 , y2 , y3 ,…, yn , y 表 示这 N 个值的平均,则 yi - y 的结果为剩余平稳序列的项记为 xi 。对这些剩余的项选择合 适的阶数 p 进行拟合,要求剩余序列近似平稳则不能要求 N 的值过大,p 选择的阶数则直接 关系到 AR 模型拟合中参数的估算带来的时间上的考虑,所以选择 p 的阶数为 2,则 AR 模 型为: 样更多的结合历史数据,学习过去网络的行为,有助于我们发现网络中出现的异常。 对比纵向的时间窗数据的意思是, 抽取当前检测点时间过去的半小时数据, 即六个采样 点(系统设计每 5 分钟对流量进行采样一次)作为一个时间窗,同时从历史数据中抽取过去 一天的相同时间段内的六个采样点的数据作为比较依据。 由于网络流量的周期相似性, 这两 个时间窗内的数据点形成的曲线应该相似,通过对这两条曲线进行相似度[10]的比较我们可 以认为网络在这段时间内是否出现异常。 记 当 前 时 间 窗 内 的 流 量 数 据 为 xt (1 ≤ t ≤ 6 ) , 记 上 一 个 时 间 窗 的 流 量 数 据 为 xt = φ1 xt −1 + φ2 xt − 2 + ε t φ1 和 φ2 是 AR 模型的系数, ε t 表示 t 时刻出现的噪声。通过 xt 的值我们可以对 AR 模 型参数进行计算: x 3 = φ 1 x 2 + φ 2 x1 + ε x4 = φ1x3 + φ 2 x2 + ε … 3 4 X 表示系数矩阵,Y 表示预测拟合矩阵,则 φ =[ φ1 , φ2 ]矩阵可以由 X 和 Y 计算得出 φ = (X X ) X Y 。 系统通过对比纵向的时间窗得到网络流量异常,有可能是一种误报,这种情况出现在, 当网络流量曲线相似,但是当前网络的流量较纵向时间窗口流量有一个整体的上升或者下 降,即可能内部网络承载了新的业务。由于业务新的出现开始必然会导致流量的异常,但是 网络管理员认为这种流量属于正常范围(即人可控范围内),那么系统对于网络出现的这种 业务或是拓扑结构改变带来的流量变动需要有自适应的过程, 需要学习这种网络流量的变化 到达降低系统误报率的目的。 我 们 获 取 当 前 时 间 窗 的 数 据 记 为 x1t (1 ≤ t ≤ 6 ) , 当 前 时 间 窗 上 一 时 间 窗 数 据 为 点检测的可接受的范围内, 但每个检测点的流量值均较过去相同周期的值大或小, 即网络在 这个时间窗内的流量总和可能已经偏离了正常范围。 这个时候仅做单点检测可能已经不能满 足要求,于是我们提出了对网络流量进行时间窗的比较,即比较一段时间内的流量差异。这 -3-