胡洁 蔡琼
摘 要:快速准确地诊断流量异常是大型计算机网络有效运行的关键,然而其通常存在两方面不足,一方面网络流量数据无法进行实时详细的分析,另一方面,一些通用的检测指标诊断异常的能力较低。为了解决相关问题,提出基于度分布的流量异常在线检测方法。在该方案中,首先利用度分布配置流量特征,然后用熵来确定和反馈度分布的变化,通过改变熵的值,从而准确区分一个网络事件通过阈值时是否正常。该方案的测试结果表明,它对在线异常检测是可行和有效的。
关键词:异常检测;在线检测;度分布;熵;流量特征
DOIDOI:10.11907/rjdk.162346
中图分类号:TP309
文献标识码:A 文章编号文章编号:16727800(2016)011018402
0 引言
异常流量相对于平稳的网络流量有着显著变化,它来自于网络中的拥塞和路由器上的资源过载。网络运营商必须及时准确地检测异常流量,否则网络无法有效、可靠地运行[1]。研究人员采用了各种分析技术,从基于体积分布的分析到基于网络流量分布的分析来研究流量异常检测。而最近研究表明,基于熵的异常检测具有更好的效果。该方法是在流量分布中捕捉细粒度的模式,使用熵来跟踪流量分布的变化具有两方面优势:①利用熵可以提高检测灵敏度,异常事件的发生可能未表现出存储量异常;②使用流量特征可以诊断信息异常事件的性质(如区分蠕虫、DDoS攻击或扫描)[2]。
一般而言,大多数研究者认为Flow头的功能(如IP地址、端口和流量大小)可作为基于熵的异常检测的备用选择[3]。然而,端口和地址分布的两两相关性大于0.95,异常检测到的端口和地址分布明显重叠,这是产生深层流量模式的本质原因。此外,异常扫描、DoS和P2P事件都不能通过端口和地址分布进行精确检测,或只有在显著的网络流量异常事件发生时才能检测出异常。考虑到端口和地址分布的有限作用,应选择流量分布作为基于熵的异常检测指标。
本文提出一种利用度分布提高端口和地址分布检测能力的异常检测机制。使用入度和出度分布来估算每个主机通信的目的/源IP地址,对于每个入度值(出度值),通过计算熵来诊断异常。其中,选择目的/源IP地址作为唯一备用指标,而不是两个地址和端口,不需要使用具有相同底层属性的不同分布来增加计算开销。同时,为了捕捉动态网络流量的本质,引入了一个固定时间宽度的滑动窗口机制。
1 相关研究
网络流量的异常检测是保证网络正常有效运行的重要手段。网络流量异常检测技术自提出以来,经过多年发展,诞生了多种检测方法,但这些方法通常都存在一定缺陷。因此,如何进一步提高检测准确性、减少误报率仍然是国内外学者的研究热点。其中,许多方法都集中在使用流量分布来诊断异常,如Thottan[4]使用单独的MIB变量的统计分布来检测网络流量的突然变化。在各种异常统计检测技术中,基于熵的方法已被证明在检测异常的流量矩阵时间序列中的准确性和效率。张航等[5]利用最大值和相对熵建立了一种基于行为的异常检测方法。以最大熵为基础的基线分布由预先标记的训练数据构成,但该基线适应网络流量动态变化的机制仍然不清楚。本文提出一个机制,根据动态网络流量在测量期间的变化来构建自适应基线,并调整基线在一个特定的时间跨度内。
在线检测异常受大流量数据的实时统计影响。吴静等[6]采用五元组流分布(即源地址、目的地址、源端口、目的端口、协议)进行流量分析,导致内存和处理能力的高开销。一些网络入侵检测系统,如FlowMatrix与Snort匹配数据包到一个预定义的规则集,使它们无法检测未知异常[7]。本文认为地址和端口具有高相关性,并使用地址作为独特的度量来代替元组,用于检测异常度分布的熵,不仅可减轻计算过程中在线分析阶段的开销,而且在发现新的异常类型方面比常规方法效果更好。
2 基础理论
大多数流量异常都有一个共同特点,它们诱导流量头特征分布的异常变化,如源地址、目的地址与端口,一般显示出分散或集中分布的现象[8]。
例如,图1显示了3种类型攻击的流量特征分布。图1(a)显示了一个典型的分布式拒绝服务(DDoS)攻击。在这种情况下,大量主机发送信息到一个特定主机。同样,许多网络蠕虫通过发送随机探测,即到随机区域产生大量目的地IP地址,从而使受感染的计算机继续感染其它脆弱的计算机,如图1(b)所示。在一些扫描事件中,一个源IP地址随机扫描多个IP地址,如图1(c)所示。
从以上分析得知,网络流量发生异常时,会使源/目的地址、源/目的端口分布出现变化(见表1)。接下来需要研究:①采用什么指标可以准确配置这些异常流量特征,并明确表明上述攻击的发生;②如何有效地量化异常大小,并揭示非正常的流量行为。
3 诊断方法
3.1 系统模型
总体架构包括3个主要功能部分:处理引擎(后端)、数据库和WebGUI(前端)。处理引擎执行显式算法WebGUI和数据库之间的通信。引擎主要实现以下几方面任务:①接收NetFlow记录的数据,如路由器、交换机、防火墙等,并以一个特定方式将数据通过缓冲存储到数据库;②获得相关参数后,可通过使用SQL查询来计算熵值度分布的原始流量数据;③根据测量期间的网络状态自动调整检测阈值。流量统计数据库提供了结构化存储,简化了熵值的分布程度计算。WebGUI前端可通过图形方式显示检测结果。
3.2 算法设计
进行在线流量分析时,要提高异常检测精度,减少计算时的开销,异常检测的流程与算法必须是轻量级的。首先,设计一个数据源和数据库之间的缓冲区进行存储和检索。其次,考虑到许多攻击一般只有几分钟时间,如DDoS攻击一般只持续两分钟,因此要设置一个有限的时间段作为一个基本测量时间窗口的度量单位。
从概念上讲,该算法可以分为3个阶段:在第一阶段,配置Netflow在特定时间段内的页面流量统计,根据训练数据和预定义的阈值熵排除异常值,以便在测量期间准确校准基线。自适应阈值在检测过程中生效;第二阶段为处理阶段,滑动时间窗口时,计算该窗口中流量特征的熵值;第三阶段为后处理阶段,设置阈值为下一个检测过程的计算均值熵和方差。该算法的伪代码如下:
4 结语
本文介绍了基于度分布的流量异常在线检测方法,该方法具有以下优点:①可以准确、高效地使用流量头特征捕捉细粒度的流量模式分布,不仅减少了在线处理时间,也提高了检测能力;②利用熵可以提高检测灵敏度的特点来发现已知或未知的流量异常,并将其量化;③具备一种可降低误警率的自适应阈值。下一步工作是进一步分析流量异常特征,寻找诊断网络异常的方法。此外,降低报警延迟也是需要考虑的问题之一。
参考文献:
[1] 王秀英,邵志清,陈丽琼.异常流量检测中的特征选择[J].计算机工程与应用,2010(28):129131.
[2] 崔锡鑫,苏伟,刘颖.基于熵的流量分析和异常检测技术研究与实现[J].计算机技术与发展,2013(5):126129.
[3] 郑黎明,邹鹏,韩伟红.基于多维熵值分类的骨干网流量异常检测研究[J].计算机研究与发展,2012(9):154163.
[4] THOTTAN M,JI C.Anomaly detection in IP networks[J].IEEE Transation on Signal Processing,2003,51(8):21912204.
[5] 赵飞翔,张航,何小海.基于多层分块的异常行为检测算法[J].科学技术与工程,2015(10):112116.
[6] 孟凡雪,刘衍珩,吴静.基于分布式统计时间序列的网络流量分析[J].计算机科学,2010(7):116120.
[7] 唐谦,张大方.基于Snort的入侵检测引擎比较分析[J].计算机工程与设计,2005(11):2628.
[8] 刘仁山,孟祥宏.基于时间特征的网络流量异常检测[J].辽宁工程技术大学学报:自然科学版,2013(4):114118.
(责任编辑:黄 健)