网络协议流量识别方法研究

2019-12-19 06:37:52何旭东王德军刘加兵
郑州大学学报(理学版) 2019年4期
关键词:网络协议离线复杂度

孟 博, 何旭东, 王德军, 刘加兵

(中南民族大学 计算机科学学院 湖北 武汉 430074)

0 引言

近几年,网络协议流量识别受到广泛关注并取得了许多重要成果.文献[1]使用8种指标对6种流量分类方法在加密流量识别方面的工作进行了讨论,文献[2]讨论了3种流量分类方法和3种轨迹收集方法,但是这些研究并没有基于大量应用的4种场景(在线加密流量、在线非加密流量、离线加密流量和离线非加密流量).一方面,加密流量的激增对传统流量识别方法提出了新的挑战;另一方面,频繁发生的网络攻击使得在线流量识别方法受到重视.加密流量识别方法和在线流量识别方法研究的侧重点不同,其中在线加密流量识别方法尚不成熟.本文基于4种常见的应用场景,对已有研究成果进行深入的归纳总结,并展望了网络协议流量识别方法的研究方向.

1 研究对象

识别对象作为识别器的输入,分为有效负载、流、分组[3]、主机行为[4]、混合输入等.基于行为的识别方法,输入对象是包头中的交互信息;基于负载随机性的识别方法,输入对象是负载的随机性分布;基于有效负载的识别方法,输入对象是有效负载中的指纹或签名;基于统计学特征的识别方法,输入对象是流量特征或分组特征.表1对比了8种研究对象的网络协议流量识别方法.在线分类常用分组头部特征和分组大小特征,其中分组头部特征实时性高,分组大小特征准确率较高.加密识别常用流统计特征、统计指纹和包头指纹,其中包头指纹复杂度较高且准确率高,流统计特征复杂度较低且准确率较高.

2 研究方法

当前网络协议流量识别方法主要有4种:基于行为的识别方法、基于负载随机性的识别方法、基于有效负载的识别方法、基于统计学特征的识别方法.基于行为的识别方法通过输入包头信息获取行为模式并应用图论建模,进而识别网络协议流量;基于负载随机性的识别方法通过负载的随机性分布识别;基于有效负载的识别方法通过DPI输入负载中的有效指纹,接着采用模式匹配方法识别网络协议和应用;基于统计学特征的识别方法首先获取流或者分组的统计特征,进而用机器学习方法进行识别.图1对比了上述4种方法在在线和离线、加密和非加密场景下的优缺点和分类性能.

表1 不同研究对象的网络协议流量识别方法对比Tab.1 Comparison of network protocol traffic identification methods on different objects

图1 网络协议流量识别方法Fig.1 Network protocol traffic identification methods

3 在线流量识别

网络协议在线流量识别旨在流量没有结束之前识别流量所属的协议类型或者应用类型,研究对象主要是数据分组.主要研究方法有基于主机行为的识别方法、基于有效负载的识别方法和基于统计学特征的识别方法.目前研究集中于低复杂度的统计学特征识别方法.

3.1 加密流量识别

在在线加密流量条件下,基于主机行为的识别方法,通过行为模式识别,复杂度和准确率中等,识别粒度粗,适用于主干网络在线流量识别;基于负载随机性的识别方法,易受负载加密程度和随机负载范围的影响,复杂度最高且准确率较低;基于有效负载的识别方法,复杂度最高且准确率低,但是通过识别统计指纹和包头指纹能提升准确率;基于统计学特征的识别方法,复杂度较低且准确率较高.

基于行为的识别方法:文献[4]首次提出基于主机行为的网络协议在线加密识别方法BLINC,该方法从社会层、功能层和应用层对主机行为进行建模.在社会层,通过IP地址捕获主机交互;在功能层,通过识别源IP、目的IP、源端口号和目的端口号推测主机在网络中的角色;在应用层,通过传输层交互特征(包长度、传输协议等)确定应用源,进而用五元组建模主机行为,最后构建图字典在线识别加密流量,识别结果与路由技术和观察点紧密相关.该方法能够识别负载加密的应用程序,但是既不能识别传输层加密,也不能识别采用同一应用程序的不同网络协议,而且建模时间长、效率低.文献[5]提出基于行为的高准确率的机器学习识别方法,该方法通过网络协议协商阶段的多轮交互产生的应用层信息确定统计学特征,最后用C4.5决策树识别这些特征,总体准确率较高.

基于负载随机性的识别方法:文献[6]提出在线加密流量识别算法EIWCT,EIWCT衡量负载随机性,并根据报文长度对结果进行加权综合,避免对数据重复耗时的处理,有效识别私有协议和加密协议流量.

基于有效负载的识别方法:基于皮尔逊的卡方检验,文献[7]提出一种在线加密流量识别方法,应用比特序列的随机性,从分组帧结构中检测Skype的指纹.文献[8]依据不同客户端SSL/TLS握手产生的ClientHello消息,建立消息与客户端标识符的相关性字典,进而在线识别客户端.文献[9]提出基于二阶马尔可夫链属性的加密流量识别方法,首先获取网络应用程序指纹,接着使用二阶马尔可夫链构建状态转换模型,然后通过证书包长度等改善马尔可夫链的状态多样性,最后识别网络协议流量.

基于统计学特征的识别方法:文献[10]基于Wavelet Leaders Multifractal Formalism的特征抽取算法和主成分分析方法,提出新的特征选择方法PCABFS,通过分析特征与分类器准确率的关系以及不同特征之间的关系消除冗余,得到的特征集鲁棒性更强、准确率更高、复杂度更低,可以用于在线加密流量识别,但是PCABFS方法特征集的鲁棒性易受到样本到达时间间隔和持续时间的影响.

3.2 非加密流量识别

在在线非加密流量条件下,基于行为的识别方法,复杂度和准确率中等,识别粒度粗,适用于主干网络在线流量识别;基于负载随机性的识别方法,由于复杂度最高且准确率较低,较少使用;基于有效负载的识别方法,能够精确识别负载特殊字段,但是复杂度最高,可用于在线条件;基于统计学特征的识别方法,复杂度较低且准确率较高,是主要的研究方法.

基于统计学特征的识别方法:文献[11]基于SubFlow方法,首先创建连续数据包的子流量,接着选取生命周期中有特殊统计特征的子流量,然后通过SSP方法得到子流量镜像,最后结合子流量训练识别器.文献[12]提出一种检测异常的方法,应用最大化皮尔逊线性相关系数提取相关特征,建立特征之间的相互关系,进而综合皮尔逊线性相关系数的绝对值和识别器输出的结果,选择最相关特征.文献[13]提出适用于高吞吐量的在线非加密流量识别方法,基于FPGA平台,使用EOFS训练决策树,提出ODT和DQ方法实现更高的吞吐量.为检测零日攻击,文献[14]提出一种自适应实时检测零日攻击的方法,首先从蜜罐中搜集零日攻击数据,把分类器的输入数据视作合法数据,如果发现异常则报警,未发现异常则更新参数.

4 离线流量识别

网络协议离线流量识别主要关注识别准确率,研究对象主要是流.主要研究方法为基于负载随机性的识别方法、基于有效负载的识别方法和基于统计学特征的识别方法.目前研究集中于后两种高准确率的方法.

4.1 加密流量识别

在离线加密流量条件下,基于负载随机性的识别方法通过负载随机性分布识别离线加密流量,准确率较低;基于有效负载的识别方法很难提取加密负载中的指纹,准确率低,但是可以通过统计指纹和包头指纹识别加密流,其中包头指纹识别准确率较高;基于统计学特征的识别方法采用特征选择,准确率较高.

基于负载随机性的识别方法:文献[15]提出基于熵的加密流量内容本质识别方法Iustitia.Iustitia方法根据文本流量具有较低的熵,加密流量具有较高的熵,二进制流量的熵值介于两者之间,能细粒度地识别图像格式、视频和可执行文件,平均识别准确率为88.27%.

基于有效负载的识别方法:文献[16]融合指纹和机器学习识别加密流量,先用指纹匹配识别SSL/TLS协议,再用NB算法识别SSL/TLS网络应用.文献[17]提出基于一阶齐次马尔可夫链的随机指纹生成方法,识别SSL/TLS网络协议应用程序,但需要定期更新随机指纹.

基于统计学特征的识别方法:文献[18]根据视频流量大、速度快和持续时间长的特点,首先用下行和上行流量速率作为特征定义新的QoS类,进而构建一个bag-QoS-words模型作为用QoS特征表示的特定QoS局部模式集合,最后对视频流量进行有效识别.文献[19]提出首个嗅探ISP或Wi-Fi加密的HTTP自适应视频流量节目识别方法,首先通过客户端Hello消息过滤YouTube流量,然后移除音频包,最后根据视频流量中普遍存在的速度峰值编码为特征,通过机器学习方法识别视频流量.

4.2 非加密流量识别

离线非加密流量识别的难度较低,主要研究方向是识别新的网络协议流量、提高较小训练样本条件下分类器的性能、高带宽识别方法和特征选择算法等.

基于有效负载的识别方法:文献[20]提出基于语义信息,面向文本和二进制网络协议流量识别的Securitas方法.首先收集特定协议和非特定协议的跟踪包,用于建模、训练n-grams生成器,得到n-grams序列,然后通过n-grams序列得到协议关键字联合概率分布模型,接着从协议关键字模型中抽取网络包的特征,采用SVM算法进行网络协议流量识别.

基于统计学特征的识别方法:文献[21]结合监督和无监督的机器学习方法,提出RTC方法,首先用K-means方法发现未知簇,然后对未知簇用BoF建模,进而将未知簇加入已知协议的集合,最后扩展训练数据集并重新训练.文献[22]在少量训练集条件下,通过使用NB算法产生一组后验概率作为每个测试流量的预测值,然后使用BoF建模网络协议流量,最后使用求和规则进行识别.文献[23]提出自学习智能识别器SLIC,SLIC应用少量的训练样本,通过k-NN识别器生成预测BoF流量,并作为下一轮识别器的训练集,SLIC的准确率随着自学习轮数的增加逐步提高.文献[24]提出基于扩展流量向量的识别方法TCEV.TCEV根据五元组,通过IP地址与端口号的组合,按照相关性由强到弱定义了L3、L2和L1三个等级的七种流类型关系,然后根据流相关性建造相关流量集并扩展流向量.TCEV方法对数据包缺失有很强的鲁棒性,能够显著减少处理数据包与被分类流的数量,复杂度较低.

5 流量识别方法讨论与分析

基于统计学的机器学习识别方法是目前主要的研究方向.本文分别从在线与离线识别、加密与非加密识别和识别新应用3个方面讨论基于统计学的机器学习识别方法.

5.1 在线与离线识别

在线识别方法采用低复杂度分类器和特征选择方法降低向量空间维度和提高特征有效性,其准确率和复杂度低于离线识别方法.

在识别对象选择方面,在线识别方法集中在分组大小特征和分组头部特征,离线识别方法集中在流量统计特征.文献[25]指出,基于流量统计特征的识别方法准确率高,基于分组大小特征的识别方法实时性强. 文献[26]指出,初期的流量识别使用数据包大小和流量统计特征进行识别,准确率几乎相同.

在特征选择方面,最优特征集能显著提高识别准确率并降低复杂度,特征选择方法分为包装方法和过滤方法.包装方法通过观察不同特征下识别器准确率变化进行特征选择,代价较高.过滤方法通过识别冗余和无关属性,复杂度低.在线识别一般采用过滤方法.

在分类器选择方面,普遍认为C4.5识别效率最高.文献[27]认为,C4.5离散的输入特征是准确率升高的原因,应用特征离散的其他识别器与C4.5性能相当.

5.2 加密与非加密识别

文献[16]指出,基于包头的特征集和基于流量的特征集足够对任何加密通信进行识别,并且这两类特征集的识别性能相当.文献[28]指出,流量在加密后特征发生明显改变,需要选出代表性强的特征.因此,目前主要应用特征选择方法结合机器学习分类器进行识别.文献[3]指出,基于分组大小和流量统计特征都能有效识别加密流量.文献[10] 进一步提出基于Wavelet Leaders特征选择算法的在线识别方法,显著提高TLS流量识别准确率.

5.3 识别新应用

在识别新应用方面,机器学习方法依赖于训练集,训练后的识别器很难处理新应用.识别新应用一般分离并标记未知流,更新训练集,再训练识别器,但是这种方法只适用于一次仅出现一类未知流量的情况,同时很难搜集到足够大小的未知流量的训练集且不能确定该训练集是否具有代表性,也很难处理同时出现多个未知流量的情况.文献[21]通过BoF识别零日流量样本并标记;文献[29]在半已知网络环境中,应用K-means标记未知流量;文献[30]通过流量标签扩散映射已知流量,最邻近聚类识别未知流量;文献[31]通过递归过滤得到未知流量,并通过自播种方法映射到已知流量.

6 结语

网络协议流量识别是保障网络空间安全的重要环节.基于在线加密流量、在线非加密流量、离线加密流量和离线非加密流量4种应用场景,对现有相关工作进行归类、总结和讨论.

场景①(在线加密流量识别).基于行为的识别方法不能用于传输层加密,但是对负载加密不敏感,识别粒度粗,复杂度和准确率中等,适用于主干网络协议流量在线识别,可用于场景①;基于负载随机性的识别方法由于复杂度最高且准确率较低,同时受加密和负载类型的影响,较少用于场景①;基于有效负载的识别方法通过统计指纹和包头指纹识别,复杂度高,较难用于场景①;基于统计学特征的识别方法复杂度较低且准确率高,适用于场景①.

场景②(在线非加密流量识别).基于行为的识别方法可用于场景②;基于负载随机性的识别方法复杂度最高且准确率较低,较少用于场景②;基于有效负载的识别方法复杂度最高且准确率高,可用于场景②;基于统计学特征的识别方法复杂度较低且准确率较高,适用于场景②.

场景③(离线加密流量识别).基于行为的识别方法不适用于场景③;基于负载随机性的识别方法准确率较低,可用于场景③;基于有效负载的识别方法通过识别加密协议包头指纹和统计指纹,适用于场景③;基于统计学特征的识别方法采用特征选择,适用于场景③.

场景④(离线非加密流量识别).基于行为的识别方法不适用于场景④;基于负载随机性的识别方法准确率较低,较少用于场景④;基于有效负载的识别方法准确率最高,适用于场景④;基于统计学特征的识别方法准确率高,适用于场景④.

综上讨论,从网络协议流量识别的发展趋势来看,未来研究方向将呈现以下特点.

(1) 识别新应用.基于行为的识别方法需要的数据量大,建模时间长,识别粒度粗,适用于主干网络,未来的研究趋向于结合其他识别方法的综合识别方法,以提高准确率并且降低复杂度. 基于负载的识别方法需要结合协议逆向方法和指纹生成方法,从而自动维护指纹库. 监督的机器学习识别方法不能识别新应用;无监督的机器学习识别方法由于增加了新应用,导致k值可能发生变化,识别准确率降低.未来的研究方向是低复杂度、在线的自适应识别方法.

(2) 可扩展性.基于行为的识别方法需要用某个网络节点的大量数据构建交互图,但是不同网络节点观察到的网络流量不同,可能很难识别单个用户的行为,而骨干数据可能会显示出无法识别的复杂边缘行为,导致基于行为的识别方法的识别准确率受观察点的影响而不稳定,可扩展性差.基于统计学特征的识别方法应用于不同网络节点,由于不同网络节点和不同时间的流量类型组成差别较大,且训练样本的代表性和特征的有效性相对于其他训练样本会产生概念漂移,导致可扩展性差.而如何克服概念漂移和提高机器学习识别方法的可扩展性成为未来的一个研究方向.

(3) 物联网设备保护.2016年10月21日,黑客通过劫持摄像头使美国东海岸的互联网遭遇强力DDoS攻击.随着物联网的发展,即将迎来万物互联的时代.传感器网络[32-33]将产生种类和数量极多的流量,而这些流量的识别将成为保护设备安全和隐私安全[34]的新的研究方向.

(4) SSL加密流量.SSL/TLS在Android平台和IOS平台[35]上的占比分别增加到64%和75%,安全协议[36-37]加密流量与伪装流量激增,使用同一个加密协议的不同应用产生的流量成为一个新的关注点.

(5) 鲁棒性.在网络服务质量差的环境中,特别是网络节点拥塞或服务器性能下降时,路由器开始丢包,TCP等协议开启拥塞控制.例如,视频媒体通过限速和降低视频分辨率来保证流畅,会直接影响到分组大小特征和分组头部特征的有效性,这对在线识别方法的鲁棒性提出了更高的要求.因此,鲁棒性是在线网络协议识别的一个研究热点.

(6) 高带宽网络流量.互联网的迅速发展,要求流量识别器吞吐量每秒高达数千Gb.然而,现有的流量识别引擎最多只支持每秒几十Gb吞吐量.因此,在高速路由器中现有流量识别引擎成为性能瓶颈,低复杂度、高带宽、高并行的识别方法将是一个研究热点.

随着研究方法的改善和研究技术的成熟,以上研究展望将会得到更好的发展,必将对网络协议流量识别研究的发展产生深远影响.

猜你喜欢
网络协议离线复杂度
计算机网络理论下的传播研究结构模型:Communication一词的两种翻译
异步电机离线参数辨识方法
防爆电机(2021年4期)2021-07-28 07:42:46
呼吸阀离线检验工艺与评定探讨
浅谈ATC离线基础数据的准备
一种低复杂度的惯性/GNSS矢量深组合方法
一种蓝牙多跳网络协议的设计与研究
电子制作(2018年17期)2018-09-28 01:56:52
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素
中成药(2018年2期)2018-05-09 07:20:09
求图上广探树的时间复杂度
基于DPI技术的语音视频流量监控系统设计与实现
某雷达导51 头中心控制软件圈复杂度分析与改进