李晓歌
摘 要:网络流量异常检测对网络管理和保证网络正常运行具有重要意义。本文从检测所需的网络流量数据及其特征、检测性能指标、具体的检测技术分类几个方面全面综述了网络流量异常检测的相关技术,深入研究了各种网络流量异常检测技术,并分析了各种方法的优缺点,指出目前检测方法存在的不足,以期对未来异常检测研究提供一定的借鉴和指导。
关键词:网络流量;异常检测;分布式拒绝服务;流量特征
中图分类号:TP393 文献标识码:A 文章编号:1003-5168(2018)31-0010-03
Survey and Research of Network Traffic Anomaly Detection
LI Xiaoge1,2
(1.College of Intelligent Manufacturing and Automation, Henan University of Animal Husbandry and Economy,Zhengzhou Henan 450000;2.Henan Engineering Research Center on Animal Healthy Environment and Intelligent Equipment,Zhengzhou Henan 450000)
Abstract: Network traffic anomaly detection is very important to network management and operation. This paper comprehensively summarized the related technologies of network traffic anomaly detection from the aspects of network traffic data and its characteristics, detection performance indicators, and specific detection technology classification. It deeply studied various network traffic anomaly detection technologies, and analysed the advantages and disadvantages of various methods, and pointed out the existing detection methods, in order to provide some reference and guidance for future anomaly detection research.
Keywords: network traffic;anomaly detection;distribute deny of service;traffic feature
對网络流量异常检测进行梳理、分类和分析可以全面细致地了解各种流量异常检测技术,对及时发现网络异常和保证网络正常运行具有重要意义[1]。基于此,本文首先介绍网络流量异常检测技术,然后介绍异常检测的性能指标,并对流量异常检测方法进行分类,最后对全文进行总结并探讨分析目前异常检测方法存在的不足。
1 网络流量异常检测技术概述
网络入侵检测系统(Network Intrusion Detection System,NIDS)是指对收集漏洞信息、造成拒绝访问及获取超出合法范围的系统控制权等危害计算机系统安全的行为进行检测的软件与硬件的组合。按照异常检测方式,NIDS可分为两类:一类是基于匹配异常特征字符串的误用检测;另一类是基于流量特征正常行为建模的异常检测。
误用检测的优点是检测准确率高、误报率低,通过规则的添加增大检测范围。误用检测最大的缺陷是其只能检测出写入特征库中的那些已知特征的异常,不能检测出不在特征库中的未知特征的新异常。此外,误用检测需要专业人员不断提取异常的特征,并将其写成规则要求的正则表达式形式,耗费了大量人力。再者,误用检测时要执行对所有规则的匹配,吞吐率低,扩展性差,难以满足高速网络的要求。这些缺陷都限制了误用检测的发展。
由于基于模式匹配的检测方法要将每种特征人工写入模式库,因此这种方法的发展要远落后于恶意代码增长,这使得新的检测方法的研究,即对基于流量行为模式的异常检测进行研究显得尤为重要。异常检测通过建模网络流量特征的正常流量行为,把偏出部分识别为异常。不同于误用检测,其可以发现一些未知的攻击模式,不需要人工维护特征模式库就可以检测到新的异常情况。
2 流量异常检测性能指标
性能指标的一个方面是检测能力,另一个方面是时间性能。时间性能通常用于分析检测系统能否实现在线检测,能对多大带宽的链路做到在线检测[2]。检测能力通常用误报率(False Alarm Rate)和检测率(Detection Rate)衡量。检测率也叫真阳率(True Positive Rate,TPR),是指正确检测到的异常和总的异常数的比率;误报率也叫假阳率(False Positive Rate,FPR),是指正常样本被误判为异常的数目占所有正常数目的比率。
对于已知流量异常情况的数据集,可以人工打好标签标明流量数据中的正常点和异常点,可以得出TPR和FPR的值。同时,由于这两个值是相对的,在一定条件下,FPR会随TPR增大而变大,因此这种情况下也常用ROC(Receiver Operating Characteristics)曲线来比较不同检测方法的性能,如图1所示。ROC曲线代表了TPR与FPR之间的折中。曲线越靠近左上角(对应0%的FPR和100%的TPR),代表异常检测系统的性能越高。
3 流量异常检测方法分类
异常检测包括针对某种具体的异常类型的检测技术和泛泛的应对所有异常的检测技术。目前的研究主要是针对所有可能的網络异常的检测方法。而对这部分异常检测方案的划分,按检测范围可分为单链路的检测模型和全网分布式多点检测模型。另外,近年来的学术论文中按检测方式将异常检测分为基于流量大小和流量特征两大类。由于目前全网分布式多点检测方法主流基本上是PCA状态子空间方法,所以,这部分调研笔者按异常流量的检测方式来划分(PCA方法会在相应的类别中介绍)。其中,基于流量特征的方案是近年来发展的主流方案,因此,接下来会侧重调研基于流量特征的异常检测方案。
3.1 基于特定异常的检测技术
特定类型异常的检测主要是基于目前一些特定异常类型的特有特征进行检测的技术。由于每类异常的检测方法较多,这里不一一介绍,只针对每种特定常见异常简要列举一种常见的检测方法。
Jung等基于远程和本地主机是否成功连接的频率特征,设计TRW(Threshold Random Walk)算法来快速检测端口扫描;Schechter等集成假设检验和连接速率限制两种方法,用一种混合方法来更好地识别蠕虫;Zheng等提出了利用数据平面信息来检测前缀绑架的一种轻量级、分布式的实时检测技术。
3.2 基于流量大小的检测技术
基于流量大小的方案认为,异常会导致流量大小产生明显的变化,因此,把流量的尖峰和突变作为可疑事件。但一些正常的应用也可能导致流量变化,因此这种方案误报率高。此外,这种方法无法检测出一些不易产生流量明显变化的攻击。
Krishnamurthy等提出用Sketch建立流量数据的压缩摘要来代替记录每流的信息,其设计了一个可变的Sketch数据结构K-ary Sketch,只需要固定的很小的内存,并且更新和重组的代价也是固定的。这种线性特征可以使定义的数据结构在不同层次概要流量数据,Krishnamurthy等基于这样的概要信息,通过一个多样的时间序列的预测模型来检测预测得到流量和实际流量的偏差程度,根据偏差的大小判断是否发生异常。
Brutlag结合流量实时监控和可视化开源软件RRDtool及Cricket,提出用Holt-Winters预测模型集成到RRDtool/Cricket来进行实时的异常行为检测,主要过程为:首先根据流量历史数据用Holt-Winters预测当前时间序列的流量大小,然后计算当前实际的流量大小与预测得到流量大小的偏差,最后根据设置的阈值来判断所得的偏差是否是异常行为。当偏差大于设定的阈值时,认为当前时间序列的流量存在异常。
Zhang等提出一个用于网络Anomography的框架,可以从链路的流量数据应用各类异常检测算法来推断整个网络的异常情况,这种方法能成功识别引起整个网络流量大小发生偏离的异常,但对引起整个网络流量大小不太明显的Stealthy攻击并不是很有效。
3.3 基于流量特征的检测技术
基于流量特征方案的主要思想是把包头一些域或流量的行为模式作为流量特征,而正常情况下的流量特征模式会被异常行为改变。这种方案是目前发展的主流方案。接下来对基于流量特征的检测方法进行相对详细的调研和分类。为了保证分类和调研的全面性,分类方法中包含一些相对较老或部分用于主机检测异常的方法,笔者在文中会着重说明类别中那些近几年研究的比较主流的针对网络异常的检测方法。
基于流量特征的异常检测技术大致分为四类:基于分类的、基于聚类的、基于统计的和基于信息理论的。
3.3.1 基于分类的异常检测技术。分类用于从有标注的数据集中学习一个基线模型,这个过程通常称为训练。学得的基线模型通常称为分类器,然后,用学得的基线模型来划分待测试的实例,这个过程通常称为测试。因此,基于分类的异常检测技术具有类似的两个阶段的操作,训练过程用标注的历史数据学习一个分类器,测试过程用分类器对待测样本进行分类,划分正常和异常样本。基于分类的异常检测技术通常基于机器学习的方法,如神经网络方法、贝叶斯网络方法、支持向量机方法和基于规则方法等。
3.3.2 基于聚类的异常检测技术。聚类用于将相似的数据实例归入不同的簇中。聚类是一种非监管的技术,基于聚类的检测技术通常分为三类。
第一类基于这样的假设:正常数据属于一个簇,异常数据不属于任何簇。这类聚类算法不强制每个数据实例都属于一个簇,如DBScan。这类方法的缺点是不能进行最优化。
第二类聚类算法基于这样假设:正常数据实例的位置接近于最近的簇的中心,而异常实例的位置则远离最近的簇的中心。这类技术通常分两个步骤:第一步,使用聚类算法对数据进行聚类;第二步,对每个数据实例,根据其到最近的聚类中心的距离来计算其异常分数。
如果一些异常实例自身组成一个簇,第二类聚类算法就不能检测出这些异常。为了解决该问题,引出了第三类聚类算法,其基于这样的假设:正常数据属于大的和密集的簇,异常数据属于小的和稀疏的簇。因此,当簇的大小和密集程度低于一个阈值时,认为是异常簇。
3.3.3 基于统计的异常检测技术。统计技术通常是分析给定数据的特征,选取符合正常的数据特征的统计模型,然后对待测数据进行统计推断来判断是否属于选定的模型。如果推断结果显示被测数据实例属于模型的概率较低,则认为是异常情况。基于统计的异常检测技术基于这样的假设:正常数据具有较高的概率符合统计模型,而异常数据只有很低的概率符合统计模型。
有参数的异常检测技术常用的有基于高斯模型、基于回归模型。无参数的异常检测技术的模型结构并不是事先定义好的,而是由数据本身决定的,相对于有参数的技术,无参数的技术对数据假定较少。无参数的技术通常用基于直方图的方法。
3.3.4 基于信息理论的异常检测技术。信息理论技术用不同的信息理论来分析流量数据特征的内容,主要基于这样的假设:异常会引起数据的信息内容发生不规则变化。思路如下:若O(D)代表一个给定数据集D的复杂度,信息理论技术的目标是找到D最小的子集I,使O(D)?O(D?I)最大,I中所有的数据实例就为异常。数据集的复杂度可以用不同的信息理论测度,如Kolomogorov Complexity、熵、条件熵等。
Arning等使用正则表达式的大小测量数据的Kolomogorov Complexity来进行异常检测;Lee等提出几种信息理论来进行异常检测,其用熵测量未排序数据集的规则性,用条件熵测量已排序数据集中记录次序依赖关系的规则性,用相对条件熵测量两个数据集规则性的相似程度;Nychis等利用标准化的熵来检验不同流量特征对异常检测效果的影响及其相互关系。
上述所有的基于流量特征的异常检测方法都基于单链路的流量,即对单条链路可能出现的异常的检测的方法。对于全网的流量数据,如基于OD流的流量矩阵,Lakhina等扩充了流量矩阵的概念,把流量矩阵中的元素值从流量大小扩展到流量的特征熵值,用PCA的方法作用到流量矩阵上。Lakhina等发现,高维的流量矩阵的特征通过PCA降维后,主要的带有趋势性的流量特征数据可以用很少的一些主元表示,称为正常子空间,剩余的部分称为异常子空间,即通过PCA把流量数据分为两个子空间,把异常子空间的流量数据设定一个阈值,当超出阈值时认为发生了异常,因此该方法称为主元素状态子空间法。
4 总结与展望
PCA状态子空间方法是目前全网检测的主流方法。总体来说,目前的异常检测技术仍然存在以下问题:①假阳性,高的误检率仍是影响其应用的关键问题;②目前的方法大多难以达到高速骨干网络的实时在线的检测需求;③检测出异常后,具体的异常类型需要手工分析,缺乏能自动识别异常类型的模型;④现有大部分模型需要训练历史数据得到用于检测的基线模型,影响检测效率且无法避免数据污染的影响;⑤全网分布式多点异常检测方法有限,目前主要是PCA状态子空间方法,但这种方法存在很多问题。
这些问题限制了异常检测方法的应用。目前,工业界还没有可以投入使用的商用系统。异常检测目前尚处于实验室的探索研究和模拟实验阶段。因此,针对目前异常检测模型的缺点,提出新的更有效的异常检测方法,不仅对提高网络安全管理具有重要的现实意义,而且能为下一代NIDS的设计提供指导。
参考文献:
[1]张宾.互联网异常流量特征分析及其应用研究[D].北京:清华大学,2012.
[2]张宾,杨家海,吴建平.Internet流量模型分析与评述[J].软件学报,2011(1):115-131.