《数据挖掘课程报告.docx》由会员分享,可在线阅读,更多相关《数据挖掘课程报告.docx(12页珍藏版)》请在三一文库上搜索。
1、网络流量分类识别1 .课题内容概述网络安全实验室的课题中包含对网络流量进行分类识别的任务。对网络流量按照应用类型准确地识别和分类是许多网络管理任务的重要组 成部分,如流量优先级控制,流量定形、监管、诊断监视等。比如说,网络管理 员可能需要识别并节流来自 P2P协议的文件共享流量来管理自己的带宽预算, 确保其他应用的网络性能。与网络管理任务类似,许多网络工程问题,如负载特 征提取和建模,容量规划,路由配置也得益于准确地识别网络流量。实时的流量统计有能力帮助网络服务提供商和他们的设备供应商解决困难 的网络管理问题。网络管理员需要随时知道什么流量穿过了他们的网络,才能迅速采取应对措施来保障多样的商业
2、服务目标。 流量分类可能是自动入侵检测系统 的核心组成部分,用来检测拒绝服务攻击,可以触发针对优先客户的自动网络资 源重分配,或者识别哪些违背了服务条款的网络资源使用。如今各种不同的网络应用层出不穷,网络流量的复杂性和多样性给流量分类 问题带来了巨大的挑战。很多研究人员开始寻找接近于数据挖掘的技术来解决流 量分类问题。2 .流量识别任务中数据挖掘技术的应用2.1 流量识别任务流程如图2-1所示,基于机器学习的流量分类主要分为三个阶段,预处理阶段, 学习阶段和预测阶段。预处理阶段包括对原始网络数据的整流, 特征值计算以及 特征值约简,学习阶段是训练模型学习规则的过程, 预测阶段是对实际流量进行
3、分类的过程。机器学习方法重点研究通过特征选择和训练进行分类模型的构造, 即分类器的学习阶段。i标据生生 I4号记录数据加处理高维向量|特征选择J特征集I低纯向墙降维低推向耿二,一 分类口 而续| 分类结某丁一士L图2-1机器学习的流量分类(1)数据预处理原始的网络数据集记录了每个数据包的到达时间和数据包内容,在预处理阶 段首先要根据五元组进行整流,在每个 TCP或UDP流上区分流量方向,然后在 每个流上计算感兴趣的流量特征, 如数据包大小的分布,数据包间隔时间,连接 持续时间等。(2) 降维经过数据预处理后的网络流是一个有各项特征值的向量, 可以作为机器学习 算法的输入,但网络流特征冗余会影响
4、分类结果的准确性,也会增加训练的计算 开销,可以将高维向量投影到低维空间中,再用以训练。(3)特征约简将可获得的特征都用来训练分类器并不一定是最好的选择, 因为不相关的特 征和冗余的特征会对算法的性能产生负作用。 可以通过一些算法进行评估,选择 具有很强代表性的特征子集,来训练模型。(4)训练从训练数据集中构建分类模型的过程, 主要任务是建立一个从网络流特征到 应用类别的映射,有不同的分类模型可以选择。(5)测试依据训练的分类模型,对未知的网络流进行预测,得出网络流所属的应用类 别。该阶段涉及到对分类模型的评估, 有很多流量分类度量指标可以选择。 评估 还可以分为以流计算和以字节计算两个方向,
5、前者侧重于对流识别能力的评估, 后者侧重于识别那些占据主要通信量的大流。2.2 特征值归约方法采用信息增益率评估,特征集合为S,假设根据特征A划分训练集,划分前后信息量差值就是信息增益,见公式 2-3:(2-3)定义为公式2-4:Gain (A)1nfobeforeSplit () Info ()afterSplit内在信息(Intrinsic Information)IntrinsicInfo (S, A)SiS,I Si g2S(2-4)信息增益率定义为公式2-5:Gainratio (A)Gain(A)IntrinsicInfo (A)(2-5)对于特征集合S中的每一项特征,分别计算其信
6、息增益率,从高到低进行排 序,就是信息增益率评估的主要过程。根据信息增益率来评估特征集合中的不同特征,可以知道哪些特征最有区分度, 对训练分类器最有贡献。2.3 流量分类模型度量指标评价一个分类器有多准确,一般是通过假正(False Positives ,假负(False Negatives),真正(True Positives和真负(True Negatives这些度量指标来衡量 的。流量分类任务中使用准确率(Accuracy)作为度量指标。准确率通常定义为 正确分类的样本数量在所有样本中的百分比。2.4 K-Mean裸类在多个簇基分类器集成的系统中,训练阶段,网络流向量首先要经过一个聚 类
7、处理过程,我们选择的聚类算法是K-Mean$机器学习和数据挖掘领域中有许多基于划分的聚类算法,如K-Means算法、K-Medoids算法、CLARANSJ法等。选择K-Means算法是因为它是这些算法中最 快和最简单的。K-Means算法将数据集中的对象划分到事先指定的 K个互斥的子 集中,这些子集称为簇。在每一个簇中,划分算法都通过最小化簇内部的平方误 差来最大化簇的同一性。平方误差见公式3-1:K n2E|dist(Xj,G)|(3-1)i 1 j 1在每一个簇内部,都计算所有对象和簇中心点的距离的平方,然后累加这些平方距离。Ci就代表了第ith个簇的中心。这里的距离度量是欧几里得距离,
8、即公式 3-2:n2 dist(a,b)(ai h)(3-2)i 1两个n维向量a与b的欧几里得距离就是它们对应项ai与R平方差的总和。初始状态,K个簇的中心是在子集空间中随机选取的。数据集中的对象随后 被划分到距离最近的簇中,K-Means迭代地计算每个簇新的中心点,然后根据这 些中心点再次划分所有的对象。K-Means算法重复这个过程直到所有簇中的对象 都稳定不再变化,这样就产生了最终的一个划分。K-Means算法的一个关键问题是如何确定聚类个数K。在集成分类系统中,聚类个数K也是一个重要的参数。2.5集成的分类算法在每个簇上单独训练的簇基分类器,可以选择各种有监督的分类算法。(1)支持向
9、量机SVM将低维的输入向量投影到高维的向量空间中,通过升维的方式将非线 性可分问题转换为线性可分问题。本文实验中选择了顺序最小优化(SMO)白SVM实现方案,这种高效的实 现使用成对分类方法,将多类别分类问题分解成一系列的二分类子问题,从而消 除了数值最优化的需求。(2)朴素贝叶斯朴素贝叶斯分类器建立在贝叶斯理论之上。 这种分类技术解析每个属性和类 别的关系,得到类别在该属性下的条件概率。一个实例x属于类别c的概率可以根据公式3-1计算:(3-1)P(C c)P(Xi xi|C c)P(C c|X x) iP(X x)在测试阶段,一个未知的实例属于哪种类别的概率最大,就会被认为属于哪 种类别。
10、(3)贝叶斯网络贝叶斯网络是有向无环图和一个条件概率表的结合。 有向无环图中的结点表 示特征或类别,而连接两个结点的边表示二者之间的关系。条件概率表决定了这些边的连接强度。 对每一个结点,条件概率表定义了给定父结点时的概率分布。如果一个结点没有父结点,那么概率分布就是无条件的。 如果一个结点有多个父结点,那么概率分布就是给定父结点时的条件概率。贝叶斯网络的学习分为两个步骤,首先网络结构形成(结构化学习),然后概率表被估算出来(概率分布计算)。3.流量分类识别实验3.1 实验环境集成分类器的流量识别系统是在 Java中使用Weka库编写的,Weka限制在 GNU通用公共证书的条件下发布,可以运行
11、在大多数操作系统平台上。 Weka集 成了许多用于数据挖掘任务的机器学习算法。这些算法既可以通过GUI直接用于数据集,用可以在java代码中调用提供给用户的 API使用。Weka提供的工具 包括数据的预处理,分类,回归,聚类,关联规则和可视化。同时, Weka也很 适合用于开发新的机器学习方法。3.2 实验数据实验数据集为 NIMS (Network Information Management and Security Group ) 捕捉。表3-1应用构成应用流数量百分比()TELNET12510.17FTP17280.24HIIP119041.66DNS380165.32lime6462
12、7190.53local25570.35remote24220.33scp24440.34sftp24120.33x1123550.32shell24910.34TOTAL713851100他们采集实验室内部的客户机通过 SSH1接外部的四台SSHK务器产生的流 量。通过 SSH1 行了六种不同的服务:Shell login, X11, Local tunneling, Remote tunneling, Scp和Sftp,也捕捉了几种主要的背景流量,如DNS, HTTP FTP P2P(limewire)和TELNET它们的构成如表3-1所示。3.3 特征选择数据集中选取的网络流特征如表 3
13、-2所示。为了得到训练集和测试集,首先将 NIMS数据集分为两个数据子集,分别为 NIMS1和NIMS2,在这两个数据子集中每类样本的比例与 NIMS基本保持一致, 本文中不同算法的训练样本都取自 NIMS1,而NIMS2作为测试数据集用以评估 不同算法的效果。表3-2网络流特征值编P特征缩写1Minimum forward packet lengthminfpktl2Mean forward packet lengthmeanfpktl3Maximum forward packet lengthmaxfpktl4Standard deviation of forward packet len
14、gthstdfpktl5Minimum backward packet lengthminbpktl6Mean backward packet lengthmeanbpktl7Maximum backward packet lengthmaxbpktl8Standard deviation of backward packet lengthstdbpktl9Minimum forward inter-arrival timeminfiat10Mean forward inter-arrival timemeanfiat11Maximum forward inter-arrival timema
15、xfiat12Standard deviation of forward inter-arrival timesstdfiat13Minimum backward inter-arrival timeminbiat14Mean backward inter-arrival timemeanbiat15Maximum backward inter-arrival timemaxbiat16Standard deviation of backward inter-arrival timesstdbiat17Protocolprotocol18Duration of the flowduration
16、19Number of packets in forward directionfpackets20Number of bytes in forward directionfbytes21Number of packets in backward directionbpackets22Number of bytes in backward directionbbytes分别使用基丁相关性(CFS和信息增益率(Gain Ratio) 数据集,结果如表3-3所示。的方法处理NIMS1表3-3特征值约简处理方法特征子集CFS Greedy Forward123,4,6,7,8,9CFS Greedy
17、 Backward123,4,6,7,8,9Gain Ratio18,3,1,5,7,4,9,2其中CFS方法贪心向前搜索和贪心向后搜索都得出同样的特征子集,GainRatio得到的信息增益率最高的前八项为 18, 3, 1, 5, 7, 4, 9, 2。综合上述结 果,决定选取1,2,3,4,5,6,7,8,9,18为特征子集,如表4-4所示。这10项特征中主 要包括双向的数据包大小分布数据和协议。表4-4约简后的网络流特征编R特征缩写1Minimum forward packet lengthminfpktl2Mean forward packet lengthmeanfpktl3Maxi
18、mum forward packet lengthmaxfpktl4Standard deviation of forward packet lengthstdfpktl5Minimum backward packet lengthminbpktl6Mean backward packet lengthmeanbpktl7Maximum backward packet lengthmaxbpktl8Standard deviation of backward packet lengthstdbpktl9Minimum forward inter-arrival timeminfiat10Pro
19、tocolprotocol在聚类个数K=10,分类算法为支持向量机,决策算法为簇纯净度时,使用全 部22项特征训练集成分类系统,其总体准确率为 94.1%,使用约简后的10项特 征训练,总体准确率为91%。在约简了一半特征后,总体准确率只下降了3%,表明这10项特征具有很好的代表性,以下的实验都将选取这10项特征。4.初步研究结果4.1 聚类个数K分析Accuracy图4-1总体准确率与聚类个数K的关系使用聚类(如K-Means)处理流量分类问题时,簇与应用并非是1:1的映射。 理想情况是形成的簇的数量与待识别的应用的数量相等, 并且每一个应用都在一 个簇中占绝大多数。但实际上,簇的数量都大于
20、应用的数量。分类算法为支持向量机,决策算法为簇纯净度时,如图 4-1所示,集成分类 系统的总体准确率随着聚类个数 K的增加而增加,但准确率提升越来越慢。在聚 类个数达到80时,总体准确率达到98%,基本收敛。集成分类系统的总体准确率可以通过增加聚类个数K来提升,在以下的实验中,我们选取聚类个数K=5d4.2 决策算法比较在聚类个数K=50,分类算法为支持向量机时,分别比较簇纯净度决策算法 和基分类器精度决策算法,实验结果如表 4-1所示。从表4-1中可以看出,依据簇纯净度和基分类器精度的决策算法,在大多数 应用上都有相同的准确率表现(只有在sftp上簇纯净度略优,在x11上基分类器 精度略优)
21、,这说明两者在大多数情况下做出了一致的决策。表4-1决策算法比较应用簇纯净度 准确率准确率TELNET99.899.8FTP100100HIIP97.697.6DNS89.689.6Lime9191Local99.899.8Remote98.698.6Scp93.793.7Sftp99.298.8X1196.997.2Shell100100Total96.9396.92考虑到聚类个数K可能对结果产生不同的影响,在分类算法为 SVM时,随 着聚类个数K的增加,分别测试不同决策算法的效果,对比结果如图4-2所示。 可以看出,只有在K<10时,两种决策算法的准确率略有出入,随着 K的增加, 依
22、据簇纯净度和基分类器精度的决策算法效果没有差别。Accuracy簇纯净度T-基分类器精度图4-2决策算法与聚类个数K的关系基分类器精度的决策算法需要额外评估训练集上每个基分类器的精度,训练 模型开销较大,所以在以下的实验中,我们选取依据簇纯净度的决策算法4.3 集成分类系统与其它分类算法比较4.3.1 与支持向量机比较在聚类个数K=50,分类算法为支持向量机,决策算法为簇纯净度时,集成分 类系统与支持向量机的准确率比较如表 4-2所示。集成分类系统的各应用识别准 确率都高于支持向量机方法(除了 DNS),尤其是lime (准确率从56.6%提升到 91%)和scp准确率从0幽升至I 93.7%
23、)。总体准确率也由83.62幽升至U 96.93%, 效果显著。表4- 2与SVM比较应用集成分类系统 准确率SVM准确率TELNET99.892.8FTP100100HIIP97.683.1DNS89.6100Lime9156.6Local99.896.5Remote98.697.9Scp93.70Sftp99.299.3X1196.993.6Shell100100Total96.9383.62在 SSH通道上传输的六种协议,Shell login, X11, Local tunneling, Remotetunneling, Scp和Sftp的识别准确率都得到了提高。4.3.2 与朴素贝叶
24、斯比较在聚类个数K=50,分类算法为朴素贝叶斯,决策算法为簇纯净度时,训练并 评估集成分类系统,然后在同样的训练集上训练朴素贝叶斯分类器, 二者分类准 确率比较如表4-3所示。朴素贝叶斯分类器在scp的识别上完全失败,而集成分类系统能够达到95.1% 的识别准确率。集成分类系统的总体准确率也由 85.8%提升到95.8%,效果显著。表 4- 3 与 NaiveBayes 比较应用集成分类系统NaiveBayesTELNET95.597FTP100100HIIP99.495.4DNS91.198.5Lime77.961.1Local99.996.5Remote98.797.9Scp95.10.3
25、Sftp98.799.1X1197.698.2Shell99.699.9Total95.885.8准确率准确率4.3.3 与贝叶斯网络比较在聚类个数K=50,分类算法为贝叶斯网络,决策算法为簇纯净度时,训练并 评估集成分类系统,然后在同样的训练集上训练贝叶斯网络分类器, 二者分类准 确率比较如表4-4所示。可以看出,集成分类系统在集成贝叶斯网络后,准确率并没有多少提高,表明集成分类系统并不适合集成贝叶斯网络。表4- 4与BayesNet比较应用集成分类系统 准确率BayesNet准确率TELNET100100FTP100100HTTP99.499.5DNS98.594.3Lime95.794.5Local99.799.9Remote99.198.1Scp99.196.4Sftp98.899.1X119898.7Shell99.6100Total98.998.2