网络异常流量检测模型设计与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.2
单点动态检测
网络流量不仅存在相似性和周期性的特点, 还存在突发性和可变性的特点。 如果仅仅是
依靠静态检测方法来检测网络的运行情况,则网络可能出现的细小的流量突变则反映不出 来, 而这个时候可能是某种入侵或者网络故障出现的时刻。 只有当网络流量出现很大变化时, 静态检测算法才可能发现网络出现了问题,而这个时候可能已经错过了处理问题的最佳时 刻。静态检测算法的滞后性要求使用其他的方法来弥补,短期动态检测 AR[7,8](自回归)模 型能够较好的取得这样的效果。 对当前时刻过去一小段时间采集的流量数据做均值化除去周期项, 求得每个时刻流量的 剩余值,这一系列的剩余值则可近视为剩余平稳序列,可以对其做自回归模型 AR(p)拟 合。 我们每次对 N 个采集值求剩余平稳序列,N 个流量值记为 y1 , y2 , y3 ,…, yn , y 表 示这 N 个值的平均,则 yi - y 的结果为剩余平稳序列的项记为 xi 。对这些剩余的项选择合 适的阶数 p 进行拟合,要求剩余序列近似平稳则不能要求 N 的值过大,p 选择的阶数则直接 关系到 AR 模型拟合中参数的估算带来的时间上的考虑,所以选择 p 的阶数为 2,则 AR 模 型为:
x2t (1 ≤ t ≤ 6 ) ,上一工作日当前时间窗的数据为 y1t (1 ≤ t ≤ 6 ) ,该时间窗的是一个时间窗
的数据为 y2t (1 ≤ t ≤ 6 ) 。这样我们获得了四个时间窗的共 24 个数据,对这 24 个数据做如 下比较:
-1-
http://www.paper.edu.cn
过分析细节系数检测出来。流量异常检测还有 Paul 和 David[6]对 IP 流量流(IP taffic flow)异 常进行统计分析。
3. 网络流量异常检测算法
内部的 IT 系统网络呈现出一个周期性和突发性很明显的特征[9],例如在工作日的流量 占总流量的绝大部分, 节假日的内部网络流量则可以忽略。 工作日的流量则又呈现出休息时 间和工作时间之间存在流量突变的情况,如:早上上班时间和中午休息时间,下午下班时间 可将工作日的流量分为三个阶段。第一个阶段流量变化趋势从无到有存在一个剧烈的变化; 第二个阶段为中午休息时间, 这个阶段存在流量的两个突变, 一个时中午下班的突然减少和 中午上班时间的突然增大;第三阶段为下班以后,流量在下降后呈现一个平稳的态势。工作 日则周期性的出现这样一种流量情况。 通过这样分析内部网络流量特征, 我们可以看出如果 仅仅是对流量进行单一的动态或者静态检测则可能会出现很大的误报率。 动态检测出的流量 突变异常有可能是网络本身的特征, 如上班的流量高峰。 静态检测的阈值如果定义在一个很 大的范围内,则可能将出现异常的情况漏报。 本文我们还提出了用时间窗的流量累积比较来判断网络是否出现异常。 时间窗的纵向比 较可以得到这个工作日和上一个工作日之间一段时间流量的关系, 由于内部网络存在流量的 自相似性, 比较流量曲线的相似程度可以得到网络流量是否出现异常。 时间窗的横向比较则 是比较一段时间内流量的增幅变化情况。 当前工作日的两个流量窗口之间的比较, 上一工作 日相同时间段两个流量窗口的比较, 这两个比较的结果进行对比我们可以分析发现, 网络流 量是否存在在静态和动态的单点检测都属于正常范围内,但是均处于异常告警的临界状态, 即网络可能已经出现了异常但是系统还没有告警。 这个时候时间窗的横向比较则可以发现这 样一个问题,从而提前发出告警,请求管理人员的处理,使得网络尽早的得到回复,将损失 降到最低。 下面我们将分别介绍四个检测方法和整个系统的检测流程。
3.1
单点静态检测
单点静态检测算法是一种基于阈值的检测算法。 由于网络流量存在相似性和周期性, 所
以可以通过比较不同工作日的同一时间点流量, 和每周相同工作日同一时间点可以观测和分 析当前时刻流量所处状态。 具体方法是系统获取过去四个工作日同一时刻的流量值, 和过去 三周相同工作日同一时刻的流量值, 分别给这两类流量值不同的权值用于计算, 通过取数学 期望的方式得到一个该工作日当前时刻的基本流量, 当前网络流量值应该在这个基本流量的 上下浮动。 系统根据网络实际运维人员的经验来调整阈值, 在以上一个基本流量为标准的基 础上检查网络流量是否出现异常。算法公式为:
y =
∑
Biblioteka Baidu
d
t
nd
w
d
+
∑
wt
nw
w
w
d t 表示过去四个工作日相同时刻的流量, wt 表示过去三周相同工作日相同时刻的流
量。 wd 和 ww 分别表示 d t 和 wt 在计算中所在权重,即流量主要是考虑那种相似程度更高, 实际流量应该 这个值由网络运维人员来设定。 y 表示计算出来的当前时刻流量的一个基值, 在范围[ y - λ1 , y + λ2 ]内波动,如果超出这个范围则视为异常。 单点静态检测这种方法虽然最简单最直接但是在实际的网络运行中有其实际意义, 它可
2. 相关工作
网络流量异常检测的工作一直在不断的往前发展,Roy 和 Frank[1]定义了网络正常和异 常行为的概念, 流量异常检测方法则可以分为两个大类静态检测方法和动态检测方法。 静态 检测方法包括恒定阈值检测方法和自适应阈值检测方法。 A Maxion, Feather 和 Lawrence Ho[2] 都提出根据历史数据建立一个正常的参数基线, 通过系统在网络运行的过程中自适应的学习 能力改变告警阈值。动态检测方法包括基于统计的检测方法,基于小波的检测方法。统计检 测方法在实际中最常见的是 GLR (Generalized Likelihood Ratio) 测试, 这种方法由 M.Thottan 和 C.Ji[3]用来检测校园网络的计算机系子网。GLR 考虑两个相邻的时间窗 R(t)和 S(t)以及这 两个合并组成的窗口 C(t),每个窗口运用自回归模型(AR)拟合,应用似然比检验方法,检测 两个窗口之间发生的异常变化。 当两个窗口的似然度超过某个设定的阈值时则认为两个窗口 边界产生异常。Amy Ward[4]等人提出了另外一种统计检测方法,该方法在网络正常运行下 建立一套网络参数,当参数出现偏差不符合正常运行情况时产生告警。V.Alarcon-Aquino 和 J.A.Barria[5]提出运用小波变换的方法检测网络异常。小波变换可得到低频系数和高频系数, 其中低频系数反映原始信号的轮廓, 而高频系数则是反映信号的细节。 流量的奇异性可以通
http://www.paper.edu.cn
网络异常流量检测模型设计与实现
张瑞
北京邮电大学,北京 (100876)
E-mail:zhangrui1008@gmail.com
摘 要: 企业信息化的建设,离不开 IT 系统及其基础设施的支持。网络的普及和发展给 企业信息化带来更加便利的条件,也给 IT 系统管理带来了很多麻烦。随着网络技术的发展 和规模的日益扩大,网络流量异常检测在 IT 系统管理中扮演越来越重要的角色。本文根据 一般网络异常流量检测算法提出在 IT 管理系统中建立一个流量检测的模型,综合几种检测 方法提升检测准确度。将异常流量监控融入 IT 系统会较大提升 IT 管理的作用,使得 IT 管 理变得更加有效。 关键词:网络异常,异常检测,网络管理
yt (1 ≤ t ≤ 6 ) ,进行计算:
λ =
∑ (x
t
− yt
2
)2
6
如果当前时间窗和上一个时间窗的曲线相似,则 λ 的值则应趋进于 0,如果 λ 的值超出 某个设定的值,则认为两个曲线差异度较大,即不相似。如果 λ 在某个可以接受的范围内则 认为网络属于正常运行状态。
3.4
时间窗横向比较检测
1. 引言
针对一个 IT 系统建立一套有效的网络管理系统,网络流量管理是其中很重要的组成部 分。 对于一个内部组建的网络来说, 流量管理重要性体现在保证和提高网络可靠性和可用性 方面的意义。 有效的流量管理一般分为两个步骤, 第一步是系统对网络性能问题或故障的告 警,第二步是提出性能问题和故障的解决办法。目前,在网络流量管理中对流量异常的告警 多是采用基于阈值的方法, 即由有经验的网络管理员认为的设定某条链路的流量阈值, 当系 统发现当前流量超过阈值时产生告警。 这样的系统有一个缺点: 网络流量存在突发性和随机 性的特点,在实际网络运行中难以设定这个阈值,如果设定的阈值太少,则系统可能出现告 警风暴,其中误报的可能性很大;如果设定的阈值太大,则不易发现网络中存在的细微流量 突变,这个时候可能就是某种攻击或病毒的出现,不能及时进行有效的网络管理。 在本文中我们提出一种结合阈值和流量变化检测, 当前流量和历史流量比较相结合的方 法进行流量异常检测, 尽量将系统的误报率和漏报率降到最低。 通过获取内部网络中重要链 路的 SNMP MIB 流量累积值,通过系统的分析和计算得到一个当前网络运行状态。本文描 述的检测方法对于管理一个内部网络有着重要的现实意义。
样更多的结合历史数据,学习过去网络的行为,有助于我们发现网络中出现的异常。 对比纵向的时间窗数据的意思是, 抽取当前检测点时间过去的半小时数据, 即六个采样 点(系统设计每 5 分钟对流量进行采样一次)作为一个时间窗,同时从历史数据中抽取过去 一天的相同时间段内的六个采样点的数据作为比较依据。 由于网络流量的周期相似性, 这两 个时间窗内的数据点形成的曲线应该相似,通过对这两条曲线进行相似度[10]的比较我们可 以认为网络在这段时间内是否出现异常。 记 当 前 时 间 窗 内 的 流 量 数 据 为 xt (1 ≤ t ≤ 6 ) , 记 上 一 个 时 间 窗 的 流 量 数 据 为
-2-
http://www.paper.edu.cn
以帮助其他检测方法来判断检测时刻点的流量是否异常。 如在单点动态检测中发现流量的突 变, 这时候动态检测会给出异常告警, 如果这个时候正好是系统启动 (刚上班时间) 的时刻, 则这种告警我们可以认为的判断是一种误报。 由于网络的相似性和周期性特点的存在使得我 们可以用静态检测方法来降低这种误报的可能性, 即静态通过历史数据的学习认为该时刻点 流量在阈值的范围内,则接受,否则发出网络流量异常告警。
点检测的可接受的范围内, 但每个检测点的流量值均较过去相同周期的值大或小, 即网络在 这个时间窗内的流量总和可能已经偏离了正常范围。 这个时候仅做单点检测可能已经不能满 足要求,于是我们提出了对网络流量进行时间窗的比较,即比较一段时间内的流量差异。这
-3-
http://www.paper.edu.cn
T −1 T
x t = φ 1 x t −1 + φ 2 x t − 2 + ε
t
得到 AR 模型的参数后我们就可以计算出 ε t 的值,ε t 应该是符合正态分布的随机变量, 于是我们认为当 ε t 落在某个范围内则认为流量正常,超出某个范围认定网络出现异常流量。
3.3
时间窗纵向比较检测
仅仅通过单一时间点的检测我们认为还不能发现网络存在的所有异常, 当流量值均在单