研究背景
1.加密流量分类概述
1.1识别方法
- 负载检测: 模式匹配(签名、指纹)
- 负载随机性:统计方法(信息熵、卡方距离)
- 数据包分布:统计方法(简单统计、交叉熵)
- 机器学习:机器学习算法(集成学习、强化学习)
- 主机行为:图论(BLINC、Motifs、社交网络)
- 混合方法
1.2 识别粒度
粗粒度>------------------------------------------------->细粒度
是否加密>协议>应用>服务>网页>异常流量>内容参数
第二节将重点介绍
1.3 识别对象等级
- 流级:关注流的特征和到达过程,还可分为单向流和双向流
- 包级:关注包的特征和到达过程,包的大小分布、到达时间、到达顺序等
- 主机级:关注主机间的连接模式,如主机(或端口)通信的所有流量
- 会话级:关注绘画的特征和到达过程,特征包括字节数和会话持续时间等
2.加密流量识别粒度相关研究
2.1加密与未加密流量分类
这是加密流量识别的首要任务。
Dorfinger等人提出一种加密流量实时识别放大RT-ETD
Lotfollahi提出一种基于神父学习的方法Deep Packet,将特征提取和分类阶段集成到一个系统中,不但能判断是否是加密流量,还能区分VPN和非VPN流量,网络模型为SAE(堆叠自编码器)和CNN。
2.2 加密协议识别
加密协议识别由于各种协议封装格式不同,需要了解协议的交互过程,找出交互过程中的可用于区分不同应用的特征及规律才能总结出网络流量中各应用协议的最佳特征属性,最终为提高总体流识别的粒度和精度奠定基础。
加密协议交互过程大体可分为两个阶段
- 建立安全连接:握手、认证、密钥交换。在该过程中通信双方协商支持的加密算法,互相认证并生成密钥
- 第二阶段采用第一阶段产生的密钥加密传输数据
目前主流的加密协议有以下三种
2.2.1 IPSec
一组确保IP层通信安全的协议栈,保护TCP/IP通信免遭窃听和篡改,其中包含了
- 认证头AH,为IP数据报提供无连接数据完整性、消息认证以及防重放攻击保护;
- 封装安全载荷ESP,提供机密性、数据源认证、无连接完整性、防重放和有限的传输流(traffic-flow)机密性;
- 安全关联SA,提供算法和数据包,提供AH、ESP操作所需的参数。
- 密钥协议IKE,提供对称密码的钥匙的生存和交换。
2.2.2 SSL/TLS
安全套接层协议SSL提供应用层和传输层之间的数据安全性机制,在客户端和服务器之间建立安全通道,对数据进行加密和隐藏,确保数据在传输过程中不被改变。SSL协议在应用层协议通信之前就已经完成加密算法和密钥的协商,在此之后所传送的数据都会被加密,从而保证通信的私密性。
详细链接(百度百科)
2.2.3 SSH
安全外壳协议是一种在不安全网络上提供安全远程登录及其他安全网络服务的协议。主要包括传输层协议、用户认证协议和连接协议。
详细链接(百度百科)
2.3 服务识别
服务识别就是识别加密流量所属的应用类型,如
- 流媒体:YouTube、优酷、土豆
- SNS:Facebook、推特、微博
- P2P:Skype、BitTorrent
随着P2P应用的不断发展,出现了多种混淆技术,如动态端口号、端口跳变、HTTP伪装、分块文件传输和加密有效载荷等,因此需要有效的方法来识别P2P流量。
Maiolini利用K-means进行分类,准确率达到99.8%
2.4 异常流量识别
基于信息熵的异常检测算法比传统的流量分析提供更细粒度的识别。
Adami提出Skype-hunter,基于签名和流统计特征相结合的策略,能识别信令任务和数据业务
2.5 内容参数识别
指对加密应用流量从内容属性上进一步识别,如视频清晰度及图片格式等。
Khakpour提出内容参数识别方法Iustitia
3.加密流量精细化分类方法相关研究(六种)
3.1 基于有效载荷
通过分析数据包的有效载荷来识别流量,准确率高,但识别复杂度也高。由于解析数据包负载触犯隐私逐渐被取代。
3.2 数据报负载随机性检测
网络应用的数据流并不是完全随机加密,由于每个分组会携带一些相同的特征字段,所以分组的这些字节可能并不是随机的,因此可以根据数据流的特定字节的随机性来识别
3.3 机器学习
基于机器学习的识别方法只需处理传输层以下的内容,加密技术一般只对载荷信息进行加密而不对流量特征进行处理,该方法受加密影响小。
3.4 基于行为的识别方法
这种方法首先是从主机的角度来分析不同应用的行为特征,识别结果通常是粗粒度的,如P2P和Web,其次对传输层加密无能为力,最后使用网络地址转换和非对称路由等技术会因为不完整的连接信息而影响其识别精度。
3.5 基于数据报大小分布
实际网络环境中,为了提高用户体验,不同的应用对数据流中的数据包大小要求不同,例如流媒体的数据包不宜过大,否则网络拥塞时影响播放流畅度,文件下载的数据包可以以最大报文长度传输。
3.6 混合方法
很多特定方法只对特定协议有效,因此可以将多种加密流量识别方法集成实现高效的加密流量识别。
3.7 加密流量识别方法综合对比
方法 | 负载随机性 | 有效负载 | 机器学习 | 基于行为 | 数据包大小 | 混合方法 |
---|---|---|---|---|---|---|
检测内容 | 部分负载 | 全部负载 | 流统计特征 | 主机行为 | 数据包大小 | 多种特征 |
成本代价 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
识别速度 | ⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
实时性 | ⭐ | ⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
识别粒度 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
准确性 | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
- ⭐越多表示性能越好
4.分类结果影响因素
4.1 隧道技术
隧道技术常用在不安全的网络上建立安全通道,将不同协议的数据包封装在负载部分后通过隧道发送。识别隧道协议相对容易,关键在于如何识别隧道协议下承载的应用。因此加密流i昂识别需要考虑隧道技术的影响
4.2 代理技术
加密流量识别就还要客服代理技术带来的影响。数据压缩代理技术可以有效减少带宽使用,但对流量识别技术产生较大的影响。
4.3 流量伪装技术
流量伪装技术(如协议混淆、流量变种)将一种流量的特征伪装成零一种流量的特征,组织基于流统计特征的识别方法的准确识别,木马蠕虫等恶意程序越来越多地采用流量伪装技术进行恶意攻击和隐蔽通信。
4.4 HTTP/2.0及QUIC协议
为了降低延迟和提高安全性,Google提出了新的协议,不久的将来,这两种协议将被广泛应用,如何识别协议下承载的应用面临新的挑战。
5.加密流量特征变化相关研究
特征提取方向的研究非常广泛,但很少有人关注类别不均衡和概念漂移的问题。
- Li考虑到时间空间域不同的影响, 使用FCBF和对称不确定度量选择特征子集,但单个FCBF特征分类性能低,不能很好地解决概念漂移问题。
- 张宏莉等提出bagging集成学习来解决,尽管准确度提升了,类不均衡的问题依然存在。
- Zhong在CVFDT的基础上提出了解决P2P流量概念漂移问题的算法iCVFDT,在出现概念漂移时生成一棵新子树,但未考虑多种应用情况下的概念漂移。
- Gama提出根据分类错误率检测概念飘逸算法DDM,如果错误率高于阈值就报告发生概念漂移,对突变式数据表现优异,渐变式则欠佳。
- Nishida提出基于统计的检测方法STEPD,该方法与DDM具有相似的架构,但该方法采用统计检验来检测概念漂移,需要预先给定一个滑动窗口。如果窗口大小不合适,容易产生误报或漏报。
6.SSL/TLS加密应用分类相关研究
分类HTTPS加密流量给网络带来了新的挑战。
- Kim提出从SSL/TLS有效载荷中自动生成服务签名的方法。
- Bernaille提出了一种基于SSL连接的前几个数据包大小的方法,早期识别精度85%。
- Sun提出一种使用签名和流统计分析相结合的方案来识别SSL/TLS加密应用。
7.SSL/TLS加密视频QoE参数识别相关研究
近年来,视频QoE评估被广泛研究。卡顿和初始缓冲时延时QoE评估的关键性能指标。
- Nam对移动网络下Youtube和Netflix视频流量进行了研究,发现网络带宽和CPU能力也是影响QoE的重要因素。
- Seufert研究了自适应码流技术在HTTP视频服务中的应用。