Make things as simple as possible, But no simpler

机器学习关于流量探测相关论文的总结

    技术总结

  1. 机器学习关于流量探测相关论文的总结
    1. 基于机器学习的网络流量分类
    2. 挑战

机器学习关于流量探测相关论文的总结

最近由于工作方面的原因, 一直在看机器学习方面相关的论文, 特别是关于流量探测方法的. 记录一下学习过程中的一些知识点.

基于机器学习的网络流量分类

网络流量分类方法概览图

  1. 传统的流量分类主要基于:端口与分组深度解析两种方法。
    基于数据包深度解析的方法,有2个假设作为应用前提:a) 除数据包源与接收者外的第三方能提取每个IP分组载荷明文 b) 需要分类的每种已知应用的语法和特征。(如果者两点成立,将具有准确率高的特点)
  2. 机器学习不依赖匹配协议端口或解析协议内容识别网络应用,而是利用流量在传输过程中表现出来的“网络流”(flow)的各种统计特性区别网络应用。
    网络流的5元组定义:(源IP地址,目的IP地址,源端口,目的端口,协议)

有监督的离线训练模型

有监督的在线训练模型

在线训练框架的基本表述:
训练阶段,该框架首先对实时网络流量进行抽样并通过特征提取与样本标记产生训练数据集,然后使用在线学习算法对分类模型进行训练。 特征提取可使用 Moore 提出的 248 维网络流统计特征,样本标记可使用深度包检测工具nDPI以及开源工具 Tstat。 测试阶段,该框架使用训练完成的模型对实时网络流量进行分类。 将模型分类结果与 nDPI与 Tstat等工具的结果对比,当偏差达到一定阈值时对模型进行重新训练。
在线训练算法,要求训练速度要快,所以选择的算法都是一些能够快速训练完成,并更新的算法。这类算法一般比SVM,朴素贝叶斯等的准确率要低,但是训练速度快,在离线模式下比较少会用到。算法有:1)一阶算法:感知机算法、OGD算法(在线梯度下降算法)、PA算法(Passive-Aggressive)、PA-I、PA-II 2)二阶算法:CW算法(Confidence-Weighted)、SCW算法(Soft Confidence-weighted)算法。

特征选择算法
分为:过滤(filter)和封装(wrapper)两种方法。
过滤特征选择算法较多:基于相关性的子集搜索方法CFS、基于一致性的子集搜索方法CON、FCBF, SFS等。
封装代表算法有基于遗传算法的wrapper方法等。
在样本类别未知的情况下,需要选用无监督的特征选择算法,如一钟基友熵的Filter模型(无监督的特征选择算法还比较少)

评估方法

I 有监督机器学习流量分类

  1. K-最邻近(K-nearest neighbor, KNN),5组特征:分组层次、流层次、连接层次、流域连接内部特征、同一源目主机间的多条并发流的特征。 泛化性太差,计算开销大
  2. 朴素贝叶斯(Naive bayes, NB),各个特征独立并遵循高斯分布。实际应用中的原始流量特征很难满足此条件,准确率只有65%。改进:1)使用特征选择方法对特征集合进行过滤,并使用核密度估计来改进 2)使用贝叶斯神经网络。 贝叶斯增广朴素贝叶斯方法(BAN),通过结合主元分析法与K-均值聚类算法,构建一个朴素贝叶斯网络分类算法。 有后验概率的缺点,准确率高,但是不稳定
  3. 基于C4.5决策树,1)特征选择和boosting增强方法改进 2)利用信息熵来构建分类模型。 3)AdaBoost+C4.5算法构建决策树,利用关联的过滤方法筛选出12个最优特征 4)CVFDF决策树识别P2P流量。分类计算量小,分类准。 局部最优,训练计算量大
  4. 支持向量机(SVM)1)利用非线性变换和结构风险最小化(structural risk minimization, SRM)原则将流量分类问题转化为二次寻优问题,使用了247个流特征 2)V-SVM作为二值支持向量机识别P2P流量。分类特征取网络连接数相关统计特征,将网络流分为P2P流和non-P2P流两类,受环境影响大。 分类稳定、准确率高,小样本训练空间依然保持较好的分类性能。大样本训练慢,满足不了实时需求(改进SVM应用大样本研究有意义)
  5. 神经网络 1)基于BP神经网络识别P2P流,采用3层BP神经网络层次结构,判断P2P和non-P2P,根据经验隐藏层取4. 训练速度慢 2)利用概念神经网络(probabilistic neural network, PNN)解决流量分类问题,训练速度快,分类类型数量有限 3)fuzzy ART-MAP神经网络应用P2P流识别。4)极限学习机(ELM),是一种快速的机器学习算法,基于具有任意隐藏节点的单隐藏层前馈神经网络(SLFN),学习速度快,泛化性好,稳定性高。5)AdaBoost算法。 神经网络目前局限于小规模流量数据与较少流量类型应用
  6. 实时流量分类。1)将网络流量按协议的不同阶段(建立连接、数据传输、结束连接)划分为不同子流,统计分析每条子流的特征向量并构造流量分类模型 2)进一步研究自动提取合适的子流用于训练,采用EM聚类方法对子流进行聚类,提取最能代表应用流特征的子流构造训练集,降低分类模型训练的计算复杂度 3)利用应用协议在早期协商阶段的行为特征对其进行识别。partial decision tree的准确率最高。 比较新的特征尝试,待验证
  7. 集成学习分类方法。集成学习技术是将多个不同/相同分类模型集成使用的方法,有很强的泛化能力,拥有比单个分类器更好的性能,能提高准确率和稳定性。选择准确率高和差异性大的分类器用于集成学习,能够很好地提高集成后分类器的性能。结合SVM,BAN,BP神经网络3种方法的不同优点,通过对3种分类器实行加权平均组合权重的方式,来进行分类。

II 无监督机器学习的流量分类
无监督机器学习方法根据流量统计特征的相似性进行聚合分簇,然后建立各个簇与类的映射关系。无监督机器学习具有能够自动发现新应用的特点,但其检测精度与分类速度明显低于有监督的分类方法。

  1. EM算法。期望最大化(expectation maximaization, EM)算法,可将具有相同特性(大文件传送、多交互等)的流聚到同一簇。尝试HTTP、FTP、SMTP、IMAP、NTP与DNS六种流量。 需要解决如何建立聚类簇与流应用类型之间的映射关系。通常需要手工标记
  2. K-Means算法。1)使用TCP连接的前5个数据分组的大小来代表不同的网络流。严重依赖网络流的分组到达顺序,无法保证分类的稳定性与实用性。2)使用X-Means算法,将每个聚类簇应用类型标注为簇内占大多数的刘的应用类型,利用刘的前32字节的统计特征作为训练输入 3)使用一种两阶段的网络流量分类方法,提取网络流初始建立阶段与平稳阶段的特征来描述网络流,并采用无监督K-Means聚类分两个阶段训练分类器。 由于特征的选取的关系,都不太稳定
    3.DBSCAN算法。优点:1)只需要少量领域知识即能确定输入参数 2)能形成任意形状的聚类簇 3)适用于大规模数据集。 通用性比较差
  3. AutoClass算法。EM 算法的无监督贝叶斯分类器。 分类效果好,但是计算量大
  4. FCM算法( 模糊C均值聚类)。FCM算法需要两个参数:聚类数目参数C和柔性参数m。C控制聚类的数目,m控制聚类的效果。算法的输出是C个聚类中心点向量和C*N的一个模糊划分矩阵,这个矩阵表示的是每个样本点属于每个类的隶属度。根据这个划分矩阵按照模糊集合中的最大隶属原则就能够确定每个样本点归为哪个类。聚类中心表示的是每个类的平均特征,可以认为是这个类的代表点。 分类效果好,但是不稳定

分类效果:AutoClass > FCM > K-Means > DBSCAN
分类数量:AutoClass > FCM > K-Means > DBSCAN

III 半监督机器学习的流量分类
半监督机器学习主要关注当训练数据的部分信息缺失(如数据的类别标签缺失、部分特征维缺失等)的情况下,如何获得具有良好性能和泛化能力的分类器。首先,通过聚类算法将训练集分成不同的簇,然后通过被标记的流实现簇与类别之间的映射,那些不包含任何标记流的簇就被视为未知的新应用类型。再通过这些被标记的簇来训练有监督的学习模型。
半监督根据训练数据是否完全标记,分为:归纳式半监督学习和直推式半监督学习
半监督学习方法只需利用少量标注样本和大量未标注样本即可实现分类,可以有效减少标注代价,提高机器学习的性能,但它对于有噪声干扰样本数据的分类效果并不理想,而且由于它提出的时间比较短,其应用价值还需要更多的深入研究。

  1. 利用少量的标记数据辅助K-Means聚类过程,确定簇与流量类型的映射关系。提出一种基于熵函数的组合式特征选择方法,首先计算所有特征的熵,前d个最优特征构成候选的特征子集,其次采用顺序后台搜索方法,以分类器本身的分类准确率为评估标准,借此去除冗余特征。然后在结合监督学习,例如SVM方法进行流量分类。
  2. 基于GMM(高斯混合模型)的半监督学习来进行网络流的分类(Semi-supervised internet network traffic classification using a Gaussian mixture model)。
  3. 基于FCM(模糊聚类模型)的半监督入侵检测,通过使用异构距离来计算隶属度改进FCM的聚类算法。先将有标签的数据通过改进的FCM算法计算类中心,再将无标签的数据通过改进的FCM算法加入到对应的类,重新计算类中心。
  4. 基于粒子群的KNN半监督学习算法。通过粒子群PSO来改进KNN的聚类算法

一般准确率高于无监督,低于有监督。属于比较新的研究领域。

挑战

  1. 样本标注瓶颈,因此利用少量的以标注样本和大量的未标注样本训练一个好分类器是为了研究方向(半监督机器学习)
  2. 样本分布不均衡,无法保证分类器的稳定性。研究发现,SVM对样本分布的健壮性好于NB方法
  3. 实时与连续分类,现在大多数研究工作都是利用完整流的统计特征,因此分类器只有在接收到完整的IP流后才能进行预测分类,无法满足实时要求。
  4. 分类算法可扩展性。面对互联网海量的各类网络应用刘,需要对现有机器学习方法进行改进以适应大规模网络流量分类。SVM不适用于大规模数据集训练,时间O(m3)和空间O(m2)复杂度太高。

Gartner研究副总裁Tracy Tsai认为,到2020年,将有40 %的安全厂商会声称具备人工智能相关能力。她认为目前人工智能主要应用在如下领域,包括应用程序安全测试,以减少误报;恶意软件检测,用于终端保护;漏洞测试目标选择;SIEM管理;用户和实体行为分析(UEBA); 网络流量分析等方面。


本文地址https://leaf0s.fun/2017/08/12/417249395/

页阅读量:  ・  站访问量:  ・  站访客数: