一种面向应用软件的网络流量细粒度分类系统及方法技术方案

技术编号:21552167 阅读:48 留言:0更新日期:2019-07-07 00:12
本发明专利技术涉及一种面向应用软件的网络流量细粒度分类系统及方法,包括:数据收集与预处理模块、特征提取与模型训练模块、流关联分析模块;数据收集与预处理模块:收集操作系统背景流量,收集目标应用软件的网络流量,然后进行预处理,从中过滤掉背景流量数据包和错误数据包,并按照流量五元组提取出流;特征提取与模型训练模块:针对提取出的每条流,利用一阶马尔科夫模型对流中的包大小序列进行建模,计算包大小序列的转移概率矩阵,并将其作为特征向量训练分类模型;流关联分析模块:对分类器的分类结果进行置信度检验,将小于类别概率阈值的流标记为模糊流,将模糊流与非模糊流通过K近邻端口进行关联分析,修正模糊流的类别标签,得到最终的分类结果。

A Fine-grained Classification System and Method for Network Traffic Oriented to Application Software

【技术实现步骤摘要】
一种面向应用软件的网络流量细粒度分类系统及方法
本专利技术涉及一种面向应用软件的网络流量细粒度分类系统及方法,属于计算机网络

技术介绍
网络流量分类在网络管理和网络安全中发挥着重要的作用。例如,为了更好的进行网络设计和配置,网络管理人员需要充分了解流量的组成和应用的使用趋势;为了更好的进行服务质量控制(QoS),需要首先将网络中的所有流量按不同应用类型进行划分,然后针对不同类型的应用提供不同的服务质量等级,从而确保关键业务服务质量,维持网络高效通畅运行。在网络安全方面,流量分类是入侵检测系统(IDS)的核心部分,其可发现网络中的突发流量(如分布式拒绝服务攻击)和未知流量,以便于及时采取有效的防御措施。为了有效的进行网络流量分类,多种流量分类方法被相继提出,这些流量分类方法可以被归纳为三个类别:基于端口的方法、基于包负载内容的方法、基于流(flow)统计的方法。基于端口的方法通过检查网络数据包的传输层端口号,然后根据IANA[9]定制的知名端口号与应用协议的对应关系来将数据包与不同的应用协议关联起来。然而,随着网络应用的不断发展,基于端口的方法逐渐变得不再可靠。已有研究表明[KaragiannisT,BroidoA,BrownleeN,etal.IsP2Pdyingorjusthiding?[P2Ptrafficmeasurement][C]//IEEEGlobalTelecommunicationsConference.2004.]、[MadhukarA,WilliamsonC.ALongitudinalStudyofP2PTrafficClassification[C]//IEEEInternationalSymposiumonModeling.2006.],新型的P2P类应用普遍使用随机端口进行数据传输。与此同时,有些应用将自己的网络流量隐藏在知名的端口之后以规避防火墙的检测,进而导致基于端口的流量分类方法不再适用。考虑到基于端口的流量分类方法的缺点,基于包负载内容的方法[7,8]被提出。基于包负载内容的方法通过分析数据包的载荷数据来对已知的应用签名进行匹配。基于包负载内容的方法具有准确率高的优点,然而,其同时面临以下不足:(1)非标应用和私有协议缺乏公开可用的协议规范,导致特征串难找易变;(2)无法应对加密网络流量;(3)对数据包内容的检查存在隐私保护问题;(4)系统时间和空间开销巨大。为了克服以上两种方法的不足,近年来研究人员广泛使用基于网络行为或流统计特征的方法来解决流量分类问题。机器学习技术在基于流统计特征的流量分类中的应用受到了极大的关注。Roughan等人[RoughanM,SenS,SpatscheckO,etal.Class-of-servicemappingforQoS:astatisticalsignature-basedapproachtoIPtrafficclassification[C]//AcmSigcommConferenceonInternetMeasurement.2004.]提出使用K近邻算法进行网络流量分类,该方法共使用了5类特征:分组层次、流层次、连接层次、流与连接内部特征、同一源目主机之间的多条并发流的特征。然而,实验结果表明该方法随着流量类型数量的增加,分类错误率明显上升。Moore等人[MooreAW,ZuevD.Internettrafficclassificationusingbayesiananalysistechniques[J].AcmSigmetricsPerformanceEvaluationReview,2005,33(1):50-60.]引入朴素贝叶斯方法进行流量分类与应用识别。但是该方法要求样本各个特征之间满足条件独立的假设,这在实际的网络流量特征中难以满足,因此其分类准确率较低。Raahemi等人[RaahemiB,ZhongW,JingL.Peer-to-PeerTrafficIdentificationbyMiningIPLayerDataStreamsUsingConcept-AdaptingVeryFastDecisionTree[C]//IEEEInternationalConferenceonToolswithArtificialIntelligence.2008.]提出基于CVFDF决策树算法的P2P流量识别方法,该算法能够得知每个决策节点测试所需要的最少样例数,并能使决策树动态增长,从而满足识别模型动态更新的需要,但决策树方法根据训练数据集的局部信息对样本特征进行过滤,会导致特征选择的局部最优性,进而导致分类结果的不稳定。Sun等人[SunR,YangB,PengL,etal.Trafficclassificationusingprobabilisticneuralnetworks[C]//NaturalComputation(ICNC),2010SixthInternationalConferenceon.IEEE,2010.]提出利用概率神经网络解决流量分类问题,与传统的BP神经网络相比,PNN训练速度更快,收敛性更好,但此方法仅仅限于web与P2P两类流量分类。TaylorVF等人[TaylorVF,SpolaorR,ContiM,etal.AppScanner:AutomaticFingerprintingofSmartphoneAppsfromEncryptedNetworkTraffic[C]//IEEEEuropeanSymposiumonSecurity&Privacy.IEEE,2016.]、[TaylorVF,SpolaorR,ContiM,etal.RobustSmartphoneAppIdentificationviaEncryptedNetworkTrafficAnalysis[J].IEEETransactionsonInformationForensics&Security,2017,13(1):63-78.]使用SVM和随机森林算法来从网络流量中对手机APP进行识别,并取得了99.8%的准确率。然而,相比于流量分类,对手机APP进行识别的任务更加简单。从理论上来说,其仅需正确分类目标APP的一条流就可以正确识别该APP,而流量分类则需要对所有网络流量分类正确。已有的网络流量分类方法的不足:(1)已有研究工作往往是面向协议(例如HTTP,FTP,SMTP等)或协议族(例如P2P,WEB,Streaming等)的。但是对于一个特定的应用协议来说,其可能同时被多种不同的应用所使用,因此面向具体应用软件的流量分类更加细粒度;对于一个特定的应用软件来说,其可能使用多种不同的协议来完成不同的业务功能,因此应用软件的网络行为更加多样化。传统的简单流统计特征忽略了每条流中数据包之间的时序变化特点,不能有效的表征不同应用软件的流特征,面向应用软件进行流量分类时准确率低。(2)已有研究工作对于网络流量的分类结果仅仅依赖于分类器本身的判定。但是具有相似业务功能的不同应用软件可能会产生相似的流,使得分类器在特征空间下难以有效区分,进而导致分类准确率低。
技术实现思路
本专利技术技本文档来自技高网
...

【技术保护点】
1.一种面向应用软件的网络流量细粒度分类系统,其特征在于,包括:数据收集与预处理模块、特征提取与模型训练模块、流关联分析模块;其中:数据收集与预处理模块:收集操作系统自身产生的网络流量,该流量为背景流量;收集目标应用软件的网络流量,然后进行预处理,从中过滤掉背景流量数据包和错误数据包,并按照流量五元组(源IP,目的IP,源端口,目的端口,传输层协议)提取出流(flow),其中,一条流是指具有相同五元组的一组连续的数据包;特征提取与模型训练模块:针对提取出的每条流,获取其包大小序列,按照均匀分布的映射规则将包大小序列映射为状态序列,使用一阶马尔科夫模型对得到的状态序列进行建模,计算该序列的转移概率矩阵,并将转移概率矩阵作为特征向量,使用支持向量机(SVM)算法来训练分类器;流关联分析模块:对分类器的分类结果进行置信度检验,通过将分类器输出的后验概率与类别概率阈值进行比较,将流样本分为模糊流和非模糊流两类,小于类别阈值的流标记为模糊流,其他标记为非模糊流;将模糊流与非模糊流通过K近邻端口进行关联分析,通过非模糊流的类别标签来修正模糊流的类别标签,得到最终的分类结果。

【技术特征摘要】
1.一种面向应用软件的网络流量细粒度分类系统,其特征在于,包括:数据收集与预处理模块、特征提取与模型训练模块、流关联分析模块;其中:数据收集与预处理模块:收集操作系统自身产生的网络流量,该流量为背景流量;收集目标应用软件的网络流量,然后进行预处理,从中过滤掉背景流量数据包和错误数据包,并按照流量五元组(源IP,目的IP,源端口,目的端口,传输层协议)提取出流(flow),其中,一条流是指具有相同五元组的一组连续的数据包;特征提取与模型训练模块:针对提取出的每条流,获取其包大小序列,按照均匀分布的映射规则将包大小序列映射为状态序列,使用一阶马尔科夫模型对得到的状态序列进行建模,计算该序列的转移概率矩阵,并将转移概率矩阵作为特征向量,使用支持向量机(SVM)算法来训练分类器;流关联分析模块:对分类器的分类结果进行置信度检验,通过将分类器输出的后验概率与类别概率阈值进行比较,将流样本分为模糊流和非模糊流两类,小于类别阈值的流标记为模糊流,其他标记为非模糊流;将模糊流与非模糊流通过K近邻端口进行关联分析,通过非模糊流的类别标签来修正模糊流的类别标签,得到最终的分类结果。2.根据权利要求1所述的面向应用软件的网络流量细粒度分类系统,其特征在于:所述数据收集与预处理模块中,数据预处理的具体步骤如下:(1)提取背景流量中出现的IP地址,本机IP地址除外;(2)解析捕获的网络流量,过滤掉包含(1)中IP地址的数据包以及乱序到达、重传、校验和错误非正常数据包;(3)对每个应用的网络流量,按照五元组,即源IP,源端口,目的IP,目的端口,传输层协议进行流提取,将网络流量表示为流集合。3.根据权利要求1所述的面向应用软件的网络流量细粒度分类系统,其特征在于:所述特征提取与模型训练模块具体步骤如下:(1)对于每条流,从数据包头中提取包负载大小信息,将流表示为包大小序列,考虑客户端→服务器和服务器→客户端双向流数据,其中客户端→服务器的包大小表示为正值,服务器→客户端的包大小表示为负值;(2)将原始包大小序列转化为状态转移序列;(3)计算每条流对应的状态转移序列的转移概率矩阵;(4)将每个转移概率矩阵按行展开,形成特征向量集。4.根据权利要求3所述的面向应用软件的网络流量细粒度分类系统,其特征在于:将原始包大小序列转化为状态转移序列,具体步骤如下:(1)将全部的数据包大小的绝对值按照从小到大的顺序进行排列;(2)按照等分法对数据包进行分桶,使得每个分桶中的数据包个数满足均匀分布,落在同一个分桶中的数据包映射为同一个状态;(3)将大小为0、1460和大于1460的数据包作为单独的状态进行映射;(4)将每个包大小转换为对应的状态。5.根据权...

【专利技术属性】
技术研发人员:于爱民徐震赵力欣蔡利君孟丹
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1