互联网应用保持快速发展,各类应用用户规模均呈上升趋势,其中网上外卖用户增长显著,年增长率达到 64.6%。应用使用率分布发生了较大的变化,流量识别模型需要不断更新。表 1-1 描述了 2016-2017 年中国网民各类互联网应用的使用率。
不可否认的是,随着大众网络安全意识的稳步提升,对于数据保护的意识也愈加强烈。根据最新统计报告[3],截止 2017 年 2 月,半数的在线流量均被加密。对于特定类型的流量,加密甚至已成为法律的强制性要求,Gartner 预测到2021 年,83%的流量将被加密。
虽然加密技术对于重视隐私的用户来说是一个福音,但 IT 团队将会面临大量不解密就无法检测的流量的挑战。面对大量涌入的流量,如果没有解密技术,IT 团队将无法查看流量内包含的信息。这意味着加密是一把双刃剑,保护隐私的同时也让不法分子有了可乘之机。加密能够像隐藏其他信息一样隐藏恶意流量,从而带来一系列蠕虫、木马和病毒。
加密流量识别的首要任务是根据应用需求确定识别对象及识别粒度,根据识别对象及粒度才能选取合适的识别方法。加密流量识别研究内容如图 2-1 所示,加密流量识别方法主要包括六类:基于负载随机性检测的方法、基于有效负载的分类方法、基于数据包分布的分类方法、基于机器学习的分类方法、基于主机行为的分类方法,以及多种策略相结合的混合方法。
识别对象是指识别过程中的输入形式,包括流级、包级、主机级和会话级,识别对象中流级和包级识别对象使用最广泛,具体描述如下:
流级:主要关注流的特征及到达过程,IP 流根据传输方向可以分为单向流和双向流。单向流的分组来自同一方向;双向流包含来自两个方向的分组,该连接不一定正常结束,如流超时。有时双向流要求两主机之间从发出 SYN 包开始到第一个 FIN 包发起结束的完整连接。流级特征包括流持续时间,流字节数等。
包级:主要关注数据包的特征及到达过程,包级特征包括包大小分布,包到达时间间隔分布等。
主机级:主要关注主机间的连接模式,如与主机通信的所有流量,或与主机的某个IP 和端口通信的所有流量。主机级特征包括连接度,端口数等。
会话级:主要关注会话的特征及到达过程,如响应视频请求的数据量较大,针对一个请求会分多个会话传输,特征包括会话字节数,会话持续时间等。
Lotfollahi提出一种基于深度学习的方法 Deep Packet,将特征提取和分类阶段集成到一个系统中,该方法可以分类网络流量的主要类别(如FTP 和 P2P)以及识别最终用户的应用(如 BitTorrent 和 Skype),Deep Packet 不仅可以识别加密流量,还可以区分 VPN 和非 VPN 流量,应用识别的 F1-score 为 0.95,业务识别的 F1-score 为 0.97.
https://hal.inria.fr/hal-01097556/document
先通过未加密头部识别SSL,再通过前几个报文载荷部分进行训练,识别出哪些应用。
If bit2[0] = 1 and bit2[1] = 0 and bit2[2 : 15] = Size2 and Byte2[3] = 4
Connection is an SSLv2 connection
Else If Byte2[1] = 22 and Byte2[2] = 3
If Byte2[3] = 0
Connection is an SSLv3.0 connection
Else If Byte2[3] = 1
Connection is a TLS connection
Else Connection is not using SSL
Else Connection is not using SSL
“在针对单独、加密流量的识别中,我们在恶意程序家族归类的问题上,能够达到90.3%的准确率。在5分钟窗口全部加密流量分析中,我们的准确率为93.2%(make use of all encrypted flows within a 5-minute window)。”
思科的研究人员扩展现有的异常流量检测方法提出一种新的方法,该方法不需要对加密的恶意流量进行解密,就能检测到采用 TLS 连接的恶意程序。首先,分析百万级的正常流量和恶意流量中 TLS 流、DNS 流和 HTTP 流之间的差异,具体包括未加密的 TLS 握手信息、与目的 IP 地址相关的 DNS 响应信息、相同源 IP地址 5min 窗口内 HTTP 流的头部信息;然后,选取具有明显区分度的特征集来识别加密恶意流量。
http://library.usc.edu.ph/ACM/SIGSAC%202017/aisec/p35.pdf
识别TLS加密恶意流量 - bonelee - 博客园 (cnblogs.com)
Iustitia 的基本思路是统计特定数量的连续字节的熵,再采用机器学习方法进行识别,可以实时识别文本流,二进制流和加密流。该方法主要针对文本流熵值最低,加密流熵值最高,以及二进制流熵值处于中间的特性
https://mkorczynski.com/Classifying%20Service%20Flows%20in%20the%20Encrypted%20Skype.pdf
Qin提出一种基于数据包大小分布签名的新方法,在减少数据包处理量的同时实现 P2P 和 VoIP 应用的准确识别。首先,采用双向流模型将流量包聚集成双向流,从而可以捕捉到不同终端之间的交互行为特征。然后,使用报文大小分布的签名捕获流动态性,即双向流中包的有效载荷大小分布概率。其次,针对不同应用的报文大小分布不同的特点,收集 P2P 和 VoIP 应用的报文大小分布
https://www.sciencedirect.com/science/article/pii/S0950705115000842
Korczynski提出一种采用基于马尔可夫链的随机指纹方法识别 SSL/TLS 应用。该方法采用嵌入在 SSL/TLS 头部的消息类型创建会话的统计指纹分类 SSL/TLS 应用。指纹对应于反映 SSL/TLS 会话序列的一阶马尔可夫链。采用该方法对 12 种代表性 SSL/TLS 应用进行分类,如 Twitter,Skype 和 Dropbox,取得了较好的分类精度,同时发现许多 SSL/TLS 协议实现未严格遵循 RFC 规范,而是根据效率和安全性需求设计交互过程。
https://ieeexplore.ieee.org/document/6848005
IPSec协议抓包详解和IPSec NAT穿越报文解析 - 阿鹏2019 - 博客园 (cnblogs.com)
(16条消息) SSL协议原理详解_曹世宏的博客-CSDN博客_ssl协议
SSH协议详解 - zmlctt - 博客园 (cnblogs.com)
MCMC(二)马尔科夫链 - 刘建平Pinard - 博客园 (cnblogs.com)
[1]潘吴斌. 加密流量精细化分类技术研究[D].东南大学,2018.
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。