APP下载

一种基于核PCA的网络流量异常检测算法

2018-04-18

计算机应用与软件 2018年3期
关键词:网络流量特征向量数据流

曾 建 华

(上饶师范学院数学与计算机科学学院 江西 上饶 334001)

0 引 言

当前互联网的快速发展和普及,一方面给人们的工作和生活带来了很大的便利,另一方面也带来了一定的网络安全隐患。因此,网络安全的研究将为确保网络正常安全运行提供有力的保障,具有重要的现实意义。其中网络异常的分析和研究是当前网络安全领域中一个非常热门的研究方向。网络异常就是现有的网络不能正常运行,产生网络异常的因素错综复杂,有内部的网络故障也有外来网络攻击的影响等。主要表现为网络运行的故障、路由器设备故障、黑客入侵、拒绝服务攻击、蠕虫攻击等[1-3]。

主成分分析PCA是一种统计分析方法,在高维数据的处理方面具有较强的优势,是一种降维的主要工具,具有较好的无监督学习能力,该方法在网络流量异常检测方面得到了广泛的研究[4-7]。Kobi Cohen等[8]采用主动假设检验的方法对网络的异常情况进行了统计分析,并采用了一种渐进最优方法对网络多元异常过程进行了研究,取得了较好的分析结果。文献[9]基于主动学习技术对网络异常进行了分析,提出了一种融合支持向量机和主动学习的网络异常检测方法,该方法不需要利用较多的标记数据,能够有效地提升网络检测性能。

随着云计算、大数据的发展,当前基于云网络异常的检测研究得到了高度关注和深入研究。李春林等[10]提出了一种面向云计算环境的网络异常流量分组方法。该方法首先采用聚类分析技术对在云计算环境下产生的大规模网络数据进行预处理,然后提取网络数据聚类后的统计特征,并进行分组研究,最终得到网络流量的分类结果和流量异常分组结果。文献[11]采用支持向量机方法,提出了一种并行网络流量的分类方法,具有较高的准确率。但是该方法的计算复杂,计算开销大,难以实时检测出网络流量的异常情况,在实际应用中的推广力度受限。基于此,文献[12]提出了一种在线的自适应网络流量分析方法,取得了较好的实时异常检测效果。

本文受文献[12]的启发,同时根据文献[13]指出的PCA在网络异常检测中出现的问题,即基于PCA的网络异常检测算法前提是假设网络流量数据满足高斯分布,且提取数据的非线性结构无能为力。因此,为了解决PCA在网络异常检测方面存在的问题,提出了一种基于核主成分分析的实时网络流量异常检测算法,最后通过仿真分析和比较,证实了该算法的有效性。

1 网络数据流模型

一般来说,网络异常的研究通常基于图论或矩阵的数学方法来进行。一般采用矩阵对网络的数据流进行描述,称为网络数据流矩阵。该矩阵可以反映一个网络中所有源节点与目的节点之间的流量情况。网络中的节点主要包括路由器、交换机、链路等。

网络数据流矩阵的表示过程可以总结为:给定某个网络,其已经部署了n个路由器节点。首先基于固定时间间隔对该网络中任意一对节点之间的网络流量数据进行测量,然后将测量后的网络流量数据排列成一个N×T的矩阵X,其中X表示网络中的数据流矩阵。其中T为测量的固定周期数,N表示在每个测量周期内测出的数据流值的数量;网络数据流矩阵X中的第i列表示在第i个测量周期内的测量值向量,一般用Xi表示,第j行表示第j个节点对之间流量测量值的时间序列。

2 基于KPCA的异常检测

在网络数据流异常检测的过程中,其核心步骤是建立用户正常的行为模式,并且假设所有的网络入侵行为都与正常行为不同。因此,建立网络数据流的常态模型是前提条件,然后在此条件下来研究网络数据流的行为模式,并与正常的行为模式进行比较,以确定它们是否正常。网络数据流异常的检测方式主要有两种,即离线方式和在线方式。基于离线方式的网络数据流异常检测通常以批处理的方法建立常态模型,然后去发现在这批网络数据流中是否存在异常。基于在线方式的网络数据流异常检测一般采用增量的方法建立常态模型,每步只对单个网络测量值进行分析,以发现该测量值是否正常,并利用该测量值对常态模型进行迭代更新。

根据文献[14],网络数据流可以看成是来自p个源的多变量时间序列S={Si(t)},i∈[1,p]。p表示网络数据流的维度,每个源表示网络中的节点(如路由器、链路等)。如果将网络中的所有节点间的数据流测量值作为一个输入向量Xi,那么Xi可以认为是存在于高维空间p中的一个多元变量,亦即数据流矩阵X就可以看成是高纬空间p中多元变量的时间序列其中T表示网络测量的周期数。由于KPCA是基于核的特征提取方法中最有效的非线性特征提取技术之一,也是一种处理类似网络数据流矩阵高维数据的有效技术手段,它通过引入核函数,将核矩阵代替测量值协方差矩阵。通过核矩阵求解特征值和特征向量,无需在整个特征空间中求解特征向量,相比主成分分析方法减小了计算量,又能进行非线性映射处理。因此,KPCA具有较好的降维性能。

2.1 Kernel PCA

(1)

一般来说Φ(xi)Φ(xi)T求解困难,因此引入核函数来代替协方差,定义N×N维矩阵K:

K=[Ki,j]N×N=K(xi,xj)

(2)

(3)

(4)

通过计算KC·V=λ·V,求解核矩阵KC的特征值λi和特征值所对应的特征向量V:

V=[vi]i=1,2,…,p

(5)

那么网络数据流矩阵的主成分(即投影向量矩阵)可以表示为:

A=VTKC=〈KCV〉

(6)

将每个输入向量Xi向正常子空间S投影,可以得到投影向量ai:

(7)

式中:Vk表示k个最大的特征值对应的特征向量组成的矩阵。显然,输入向量Xi能够被投影向量ai在最小均方误差意义下得到重构:

Xi=Vkai

(8)

(9)

其中:

(10)

首先使用式(7)将该输入向量向当前的正常子空间S进行投影,得到投影向量at+1,然后计算重构Xt+1对应的残余向量范数:

(11)

式(11)表示为残余向量范数,该范数衡量原始输入向量和重构输入向量之间的误差程度,预设一误差阈值T,当误差超过该阈值时,则认为输入向量出现异常。

由于Q与当前特征空间相互垂直,因此将Q进行归一化后,并添加到特征向量V中:

(12)

然后对A(t)作如下处理:

(13)

新的特征向量添加到已有的特征空间中,需要对已有的特征向量作旋转变换处理,因此,对投影向量矩阵A′执行KPCA算法,获得特征向量矩阵R,其中R表示已旋转后的特征向量。

最后,特征向量矩阵V和投影向量矩阵A分别更新如下:

(14)

A(t+1)=RT(A′-η1)

(15)

2.2 异常检测算法步骤

综合以上分析,网络数据流异常检测算法的具体步骤描述如表1所示。

表1 基于KPCA的网络异常检测算法步骤

续表1

3 仿真结果与分析

本文采用Abilene数据集[4,6],并使用Intel Core 4,4 GHz,8 GB内存,Windows 7的PC机在MATLAB 2010a上进行仿真实验。其中Abilene数据集的具体描述见表2。表2中的数据集为因特网实际测量的网络流量数据,包括网络的异常流量数据和突发流量数据。常见的网络流量异常包括:阿尔法(alpha)异常、(分布式)拒绝服务攻击(DoS/DDoS)、端口扫描Port Scan异常、突发流(flash crowd)、Worms异常等。

表2 Abilene流量矩阵

为评价网络异常检测算法的性能,采用由误报率和检测率组成的接收机工作特性曲线(ROC)作为评价指标。其中误报率指的是将网络正常流量误判为异常流量的比例,将其作为ROC曲线的横坐标;检测率指的是正常检测出异常流量的比例,将其作为ROC曲线的纵坐标。接收机工作特性曲线体现的是对网络检测率和误报率之间保持平衡的一种折衷,如果接收机工作特性曲线中的检测率随着误报率的逐渐增加而快速靠近ROC曲线图中的左上角。同时ROC曲线下方覆盖的区域面积也越大,那么表明算法具有较好的检测性能。因此,本节基于表2的4种数据集,采用这一评价指标与PCA网络异常检测算法[5]和文献[9]进行了比较,其结果如图1-图4所示。

图1 网络异常检测算法对实测数据DataSet1的检测性能

图2 网络异常检测算法对实测数据DataSet2的检测性能

图3 网络异常检测算法对实测数据DataSet3的检测性能

图4 网络异常检测算法对实测数据DataSet4的检测性能

从图1-图4中可以看出,本文提出的基于KPCA的网络异常检测算法性能优于传统的PCA检测算法,当误报率大于0.4时,与文献[9]基于主动学习的网络异常检测算法性能相当。基于KPCA的网络异常检测算法主要引入了核函数,相比传统PCA来说,对网络流量数据的非线性特征具有较好的刻画能力,而且同时具有较强的降维能力,在处理网络数据流矩阵方面的性能优于传统PCA。文献[9]主要基于单分类支持向量机和主动学习对网络异常进行检测,该方法采用了无监督学习技术来建立支持向量机模型,并利用主动学习对该模型进行了参数优化,取得了较好的检测结果。本文提出的算法在网络数据的表示上比文献[9]更为清晰。

4 结 语

在攻击行为日趋多样化的当今网络环境下,如何有效地检测出网络中的异常行为是对网管人员的一大挑战。针对网络中流量的异常检测,提出了一种基于核主成分分析的异常检测算法。该算法以Abilene实测的网络流量数据为研究对象,通过引入核函数机制,采用基于核的特征空间表示网络流量数据,较好地提升了对网络流量数据的非线性表示能力。仿真实验结果表明提出的KPCA算法取得了较好的检测性能。

[1] Bhuyan M H, Bhattacharyya D K, Kalita J K. Network Anomaly Detection: Methods, Systems and Tools[J]. IEEE Communications Surveys & Tutorials, 2014, 16(1):303-336.

[2] Chandola V, Banerjee A, Kumar V. Anomaly detection: A survey[J]. ACM Computing Surveys, 2009,41(3):1-58.

[3] Nguyen T, Armitage G. A Survey of Techniques for Internet Traffic Classification using Machine Learning[J]. IEEE Commun. Surveys Tutorials, 2008, 10(4): 56-76.

[4] Lakhina A, Crovella M, Diot C. Diagnosing network-wide traffic anomalies[J]. Acm Sigcomm Computer Communication Review, 2004, 34(4):219-230.

[5] Huang L, Nguyen X L, Garofalakis M, et al. In-network PCA and anomaly detection[C]//International Conference on Neural Information Processing Systems. MIT Press, 2006:617-624.

[6] Lakhina A, Crovella M, Diot C. Mining anomalies using traffic feature distributions[C]//Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications. ACM, 2005:217-228.

[7] 钱叶魁,陈鸣,叶立新,等. 基于多尺度主成分分析的全网络异常检测方法[J]. 软件学报,2012,23(2):361-377.

[8] Cohen K, Zhao Q. Active Hypothesis Testing for Anomaly Detection[J]. IEEE Transactions on Information Theory, 2015, 61(3):1432-1450.

[9] 刘敬,谷利泽,钮心忻,等. 基于单分类支持向量机和主动学习的网络异常检测研究[J].通信学报,2015,36(11):136-146.

[10] 李春林,黄月江,牛长喜. 一种面向云计算的网络异常流量分组方法[J].计算机应用研究,2014,31(12):3704-3706.

[11] 裴杨,王勇,陶晓玲,等.基于SVM 的并行网络流量分类方法[J].计算机工程与设计,2013,34(8) : 2646-2649.

[12] Khan F, Hosein N, Chuah C N, et al. Streaming Solutions for Fine-Grained Network Traffic Measurements and Analysis[J]. IEEE/ACM Transactions on Networking, 2011, 22(2):377-390.

[13] Ringberg H, Soule A, Rexford J, et al. Sensitivity of PCA for traffic anomaly detection[J]. Acm Sigmetrics Performance Evaluation Review, 2007, 35(1):109-120.

[14] Teixeira P H S, Milidiú R L. Data stream anomaly detection through principal subspace tracking[C]//ACM Symposium on Applied Computing. ACM, 2010:1609-1616.

猜你喜欢

网络流量特征向量数据流
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
优先级驱动的泛化航电网络实时性能分析
大数据驱动和分析的舰船通信网络流量智能估计
克罗内克积的特征向量
基于双向长短期记忆循环神经网络的网络流量预测
汽车维修数据流基础(上)
基于大数据分析的非线性网络流量组合预测模型*
汽车维修数据流基础(下)
基于XML的数据流转换在民航离港系统中应用
大数据环境下的网络流量非线性预测建模