言洪萍,周强,王世豪,姚旺,何刘坤,王良民
(江苏大学计算机科学与通信工程学院,江苏 镇江 212013)
网站指纹(WF,website fingerprinting)攻击[1-3]作为一类典型的基于流量特征识别的去匿名技术,通过挖掘加密网页流量中存在的流量特征来识别犯罪分子匿名访问的网站,是科学研究和打击网络犯罪实践的热点。但是,现有的WF 攻击工作主要研究如何识别Tor 流量对应的匿名网页,这在实验室环境下往往具有很好的效果。但是在实际应用中,首先还需从原始网络流量中精准地区分出Tor 流量,否则现有的WF 攻击效果将大大降低且不可用。因此,从实际网络流中识别Tor 网页流量是WF 攻击的研究成果走向实用的基础性和关键性课题。
在实际的流量环境中,面向Tor 流量的WF 攻击方法如果需要发挥实际用途,需要建立在区分Tor 流量与其他流量的基础上,该工作的困难主要在于Tor 流量相对于实际应用流量的比重非常小,因而训练数据的收集和特征的分离均非常困难。收集Tor 流量的困难还有网络结构的问题,由于公网IPv4 资源缺乏,目前Internet 广泛使用网络端口地址转换技术解决内部网络地址访问外部网络资源的问题,内部网络的所有主机均共享一个合法外部IP 地址,导致位于外部网络的审查者难以收集Tor流量。为此,本文充分发掘了现有网络体系结构中作为区域中心节点的数据中心的功能,这些作为网络中心节点的数据中心,不仅是Tor 流量汇聚的关键位置,而且在实施中往往采用软件定义网络(SDN,software defined network)[4]作为网络架构。充分利用数据中心在网络体系中的关键作用,并发挥数据中心的SDN 架构将网络设备控制面和数据面分离的特点,能对网络流量进行灵活控制,本文以此作为提高Tor 流量监控范围与收集能力的基础[5],提出了一种基于SDN 架构的数据中心下大范围Tor流量发现的方法,进而提出了有效提升Tor 网页流量识别效果的复合特征表示与流量数据增强方法,其主要贡献包括如下三点。
1)基于SDN 架构获取能体现应用协议交互过程的网络流量信息,提出一种区分Tor 流量和其他流量的双向统计特征(BSF,bi-direction statistic feature)。
2)提出融合BSF和LSF(lifted structure fingerprinting)的复合流量特征(CTTF,composed Tor-webpage-identification traffic feature),其中LSF 是使用LS Loss[6]训练深度神经网络提取的深度特征。
3)提出一种对Tor 流量数据进行增强的方法,通过最小化训练数据与真实工作环境中捕获的Tor 流量数据分布差异获取增强数据,用于改进和提升Tor 网页流量识别模型在训练数据较少情况下的识别效果。
本文对仿真环境下采集的数据进行了实验,并将CTTF 结合当前相关方法进行对比实验,实验表明,其均能提升原方法的识别率;基于增强的Tor流量数据基础上提取的CTTF,在面向实际网络流识别时,即使训练数据较少,也能明显提升识别结果,并且可以有效降低误报率。
本文研究面向实际流量的Tor 网页特征识别,建立在数据中心是Tor 流量汇聚的关键场景以及SDN 架构提供了全局流量分析数据的基础上。为此,相关工作部分主要介绍SDN 架构中的安全假设、SDN 架构中的流量发现、网页流量识别和基于Tor 网页识别的指纹攻击。
本文主要探讨SDN架构下对Tor的流量收集和流量识别,因此审查者需要收集Tor 用户的流量用于进一步分析。本文做出以下两点假设。
1)假设审查者为数据中心级别,即审查者位于数据中心内,且具有修改OpenFlow 流表项的能力[7]。这意味着即使审查者与Tor 用户不在同一网段下,其仍然能通过操纵流规则将同属于一个数据中心下的用户流量重定向到未经授权的接收者或单纯地阻碍流的转发。
2)假设Tor 用户同样存在于数据中心内,通过SDN 转发设备与Tor 网络建立三跳匿名连接访问不同的服务。
基于以上两点假设的具体网络结构如图1 所示,在该结构内,SDN 控制器通过北向应用程序接口(API,application program interface)实现与SDN应用交互[8],通过南向控制-数据平面接口实时监控数据中心各交换机的流量情况以及网络拓扑情况;转发层的设备通过接收控制器的控制信息生成转发表,并对接收到的流量进行按表查找,若存在匹配的流表项,则根据流表项的指示转发数据包。默认情况下,系统内的Tor 用户通过与Tor 网络建立三跳连接从而匿名访问不同的站点。Tor 用户首次通过匿名连接访问网页产生的流量数据包将被SDN 交换机捕获并询问控制器以选择合适的路径传输给目标地址。由于审查者具有修改OpenFlow流表项的能力,因此可以在流表项中添加一条将所有的该用户流量复制转发到自己本地的动作,进一步分析该网络流量,从而判断用户的实际行为。
SDN 架构通过开放的API和协议来动态管理和控制网络,由于控制平面与数据平面是解耦的,这样可使控制平面通过操纵数据平面中流量的路径和走向,从而给应用于各种匿名通信系统中的流量发现方案提供机会。
Oconnor 等[9]通过在每个主机的内核中标记IP报头的服务类型字段,利用SDN 的代理服务器跟踪APT(advanced persistent threat)流量的来源,以此在SDN 交换机上检测出被标记的数据包。但是,这样就需要在每个主机上安装一个定制的内核,以便实现精确的基于标签的跟踪。由于在大型SDN中实现此条件较困难,该方案只局限于小型受控制的网络环境。
Ling 等[10]提出了一种新颖实用的匿名流量发现技术来确定可疑服务器和用户之间的通信关系,利用目标服务器端的SDN 交换机来拦截指向服务器的目标流量,并修改发布的TCP 窗口大小,从而改变服务器端的流量速率。通过精心地改变流量速率,将一个秘密信号调制到流量中,承载该信号的流量通过匿名通信系统到达用户端的SDN 交换机。然后从用户端的流量中检测出调制信号,以确定服务器和用户之间的通信关系。文献[10]通过在3 种流行的匿名通信系统(SSH、Open VPN和Tor)中进行了大量的实验,验证了技术的可行性和有效性。结果表明,SSH和Open VPN 的检测率接近100%,Tor 的检测率接近95%,而假阳性率则非常低,接近0。
由于匿名通信系统Tor 利用单跳或多跳代理服务器建立匿名加密隧道来中转用户流量,目的服务器只能观察到最后一跳代理服务器的IP 地址,使跟踪工作变得复杂。因此,发现用户和入口节点之间的通信是非常重要的。
网页流量识别方法可以概括为基于端口的方法、基于有效负载的方法、基于传统机器学习的方法和基于深度学习的方法。
基于端口的方法。IANA(Internet assigned number authority)将已知的传输层端口分配给不同的协议,基于端口的分类器[11]简单地从包头中提取端口号值,并将其与相应的协议相关联,但端口混淆、NAT、端口转发和协议嵌入会使该方法的准确率显著降低。
基于有效负载的方法。有效负载检测技术[12]主要通过分析报文的应用层有效负载的内容进行流量识别,但在负载加密时会使它们的有效性降低。
基于传统机器学习的方法。在过去的几十年里,将机器学习技术应用于流量统计特征以进行网络流量识别的方法得到了大量关注[13-14]。这种方法假设流量的最大包大小、最小包大小、数据包到达间隔时间、流量持续时间等统计特征对于每个应用来说几乎是唯一的。基于这一假设,大量的机器学习方法被应用于匿名流量分类。虽然将流量统计特征与各种机器学习算法结合起来在协议或业务级别的流量分类中取得了良好的效果,但在表征不同特定应用的流模式时,它们没有鉴别力。
基于深度学习的方法。近年来,深度学习技术由于其强大的特征表示能力,在计算机视觉领域取得了巨大的成功[15-16]。因此,一些研究者开始探索深度学习技术在流量识别领域的应用[17-22],如Shen等[20]仅使用加密数据包长度进行细粒度网站指纹攻击,Cadena 等[21]针对现有的深度指纹攻击提出Tor 流量分离机制,Hardegen 等[22]基于深度学习和真实世界流量来预测网络流量特性。
与基于传统机器学习的方法相比,基于深度学习的方法使用深度神经网络(如堆叠式自动编码器或卷积神经网络)从原始流量数据中自动学习深度特征表示。该方法最大的优点是深度特征表示直接通过深度神经网络从原始数据中提取得到,而不涉及大量的工程技能和领域专家知识。此外,利用多个堆叠的特征提取层提取的深度特征往往比流统计特征更强大。
在正确识别Tor 网页流量的基础上,现有的WF 攻击方法按照使用的技术可以分为两类:一类是基于传统机器学习的WF 攻击方法,如基于流量相似度匹配的攻击方法[13,23]、基于支持向量机(SVM,support vector machine)的攻击方法[2,14,24]、基于K-近邻的攻击方法[3]以及基于随机森林的攻击方法[25];另一类是基于深度学习的WF 攻击方法,如深度指纹攻击方法[17]。传统机器学习的WF 攻击方法基于网页数据包大小、包时间间隔以及数据包方向等特征,受限于技术人员的知识范围,人工提取的特征并不是最具分离性的特征;基于深度学习的WF 攻击方法在提取特征时忽略了人工经验信息,因此,提取具有高分离性的特征对提升Tor 网页流量指纹攻击方案的性能至关重要。
基于传统机器学习的WF 攻击方法的优势是能够使用较少的样本数量达到一个不错的分类效果,而基于深度学习的WF 攻击方法的优势是能够自动提取有效特征达到更好的分类效果,但其训练模型的过程需要消耗大量的训练样本。从本质上说,WF 攻击的根本目的在于使用分类模型识别Tor 网页流量所对应的具体网站,与Tor 流量识别十分类似,WF 攻击同样利用了流量中存在的特征,且特征同样分为人工特征和原始流量特征。在进行WF 攻击时,基于原始流量特征和深度学习模型的方案能够取得很好的效果,证明了原始流量特征包含丰富的信息。
总体来说,虽然基于深度学习的方法在进行网页流量识别和Tor 网页识别的指纹攻击效果更好,但计算量也相对较大,对应实际需求的时效性往往不够,更困难的是,当面对实际网络中原始流量中Tor 流量占比少、训练数据不足的情形时,当前方法基本失效。
本文工作直接面向数据中心收集的原始数据流,首先基于SDN 架构提供的丰富的网络流信息,提出可以区分Tor 流量与其他流量的BSF;然后经过双向统计初步筛选的Tor 嫌疑流量,利用深度网络模型作为特征提取器,并为模型设计更有效的损失函数,来增强对深度特征表示的判别能力,获取更有效的LSF;最后将BSF和LSF 融合,形成用于Tor 网页识别的CTTF。
发现Tor 流量的基础在于找出Tor 网络内提供服务的节点信息,而Tor 的运行机制使本文能够获得Tor 网络内绝大部分节点的信息,Tor 网络内的节点主要由普通节点与网桥节点组成,普通节点的信息是完全公开的,而网桥节点的信息是半公开的。对于普通节点,Tor 网络由多个权威目录服务器共同维护包含所有普通节点信息的共识文件。因此通过解析共识文件,本文能够获取所有的普通节点信息。而对于网桥节点,由于其半公开的性质,本文无法一次性获取所有节点的信息。但目前很多文献[26-27]提出了发掘Tor 网络中所有网桥节点的信息方法。因此本文可以掌握Tor 网络中绝大多数节点的信息,这为本文发现Tor 流量奠定了基础。
传统网络是分布式的网络,没有中心控制点,数据包的控制和转发均由路由设备负责。SDN 将网络元素(如路由器和交换机)的路由和转发决策与数据平面分开,控制平面仅处理与逻辑网络拓扑相关的信息,数据平面则根据控制平面中已建立的配置来协调网络流量。
由于数据平面的转发设备不具备决策能力,当SDN 控制器所辖SDN 域内Tor 用户生成新的网络流量时,数据平面的转发设备会将其转发至控制器并由控制器及上层的应用程序决定网络流量的转发方式。因此本文可以基于SDN 架构的特性对Tor 流量进行全局发现。应用程序层定义Tor流量发现规则,程序依据Tor 流量发现规则维护Tor 节点列表,当控制器接收到数据平面的设备传来的请求时,依据Tor 节点列表中的IP 进行匹配。若匹配失败,则正常转发该网络流量;若匹配成功,则将该网络流量复制转发到专用的服务器。
利用SDN 结构,通过人工分析,掌握Tor 网络中绝大多数节点的信息之后,就可以捕获一部分Tor 流量,这为后续Tor 流量统计特征的分析奠定了基础。
针对SDN结构中捕获人工标定的Tor流量和原始流量的对比分析,本文发现原始流量特征中包含更加完整以及丰富的信息,因为分类器能够从原始流量特征中获取不同的应用协议的交互信息。而当前基于去匿名化技术标定的人工特征相较原始流量特征虽然包含的信息量有一定程度的下降,但是直接用原始特征进行识别,由于匿名流量在原始流量中的占比往往具有较大的波动,这个波动对深度学习模型造成巨大的影响,因为深度学习模型对数据的轻微变动非常敏感,往往会让WF 攻击等网页分析方法效果显著下降。
本文提出了一种新的Tor 流量序列表示方法BSF。该方法同时利用人工特征和原始流量特征,在提供丰富信息的同时,保证了对基于伪数据包填充防御的稳健性,也为后续的深度特征提取提供有力的支撑。
本文通过分析网页加载过程可知,用户与服务器建立TCP 连接需要进行少量交互,在用户请求网页后,服务器会向用户发送HTML 文件,从而引发大量发往用户的数据包,而在浏览器解析HTML 文件后会再次向外界发送少量数据包请求相应的图片、视频等其他资源数据,继而再次引发服务器向用户发送大量数据包。音乐播放、视频播放、文件下载和邮件下载虽然都是服务器向用户发送大量数据包,但是用户短时间内只需要向服务器发出一次请求。此外,语音通话、聊天工具具有明显的交互特征,因此2 个用户之间的数据包传输量类似,而邮件上传、文件上传时用户向外发送的流量更多。
因此本文提出了BSF 来剔除捕获的非Tor 流量,BSF 的基本理念在于展现Tor 流量的前N个数据包或TLS 记录的交互过程蕴含的应用协议握手信息,这将同时进一步突出Tor 网页流量与其他流量的差异性,具体步骤如算法1 所示。
算法1BSF 提取算法
输入流量样本集T={item1,item2,…,itemn},Tor 用户IP 地址集G,相关参数TLS(样本类型标志)、N(流量子集长度)、weight(item 大小权重标志)
输出双向统计特征集M
从应用类型混杂的Tor 流量中识别出网页流量,包含3 个方面的基本步骤。图2 展示了网页流量识别模型的具体架构和工作流程[28]。
如图2 所示,该流程由3 个部分组成。1)使用大量有标签Tor 流量数据集D1训练流量特征提取模型;2)使用训练好的流量特征提取模型来提取少量有标签Tor 流量数据集D2中流量样本的深度特征,并将其用于训练流量分类模型;3)首先使用流量特征提取模型提取无标签Tor 流量数据集D3中流量样本的深度特征,而后输入流量分类模型来确认该样本是否属于Tor网页流量。与其他方案[29-30]不同,本文将Tor 网页流量特征提取任务和分类任务分开处理,基于深度学习算法的Tor 网页流量特征提取模型能够确保提取有效的深度特征,基于机器学习算法的Tor 网页流量分类模型能够保证分类器的灵活更新,从而同时满足了有效性与灵活性。
图2 Tor 网页流量识别模型的具体架构和工作流程
本节LSF 提取方法基于该模型设计,LSF 主要用于从经过BSF 初步筛选的应用类型混杂的Tor 流量中识别出网页流量,首先将深度神经网络作为特征提取器,然后使用光滑化方法对深度度量学习(MDL,deep metric learning)损失函数LS Loss 进行优化,来增强网络对于深度特征表示的判别能力,最后使用该网络提取更有效的深度学习特征LSF。
DML 依靠深度学习模型自动提取特征的能力,将原始数据映射到嵌入空间。在嵌入空间中,可以用常用的度量如欧氏距离或余弦距离评价样本之间的相似性。相较于原始空间中的样本,在嵌入空间中同类样本的相似度更高,异类样本的相似度更低,即样本在嵌入空间中更具可分离性。
模型的网络架构、样本选择策略和损失函数是DML 领域最重要的3 个因素。在5.4 节实验中,本文通过实验选取了DF[17]作为基本网络架构。在损失函数方面,DML 领域已有众多非常成熟的损失函数,如Contrastive Loss[31]、Triplet Loss[32]、Npair Loss[33]等。
根据Tor 网页流量的特点,本文选取LS Loss函数,利用其对类内样本数据结构的破坏性相对较低的特性,学习针对流量识别任务的有效特征,为后续进一步实行网站指纹攻击做准备。
本文基于小批次样本中所有的正负流量样本对来计算LS Loss。具体来说,正流量样本指与每次所选取类型属于同一类型的流量样本,负流量样本指不同于此类型的流量样本。给定用于训练的小批次流量样本,LS Loss 定义为
其中,Li,j为
其中,是正流量样本对的集合,是负流量样本对的集合,Di,j是正流量样本对{i,j}的距离。对于每一个正流量样本对{i,j},LS Loss 指导DNN 模型分别挖掘相对i和j来说距离最近的负流量样本,假设分别为m和n。这些样本在原始空间中直接进行分类是相对困难的,因此选取它们作为困难训练样本来加速和改善模型的收敛,使通过模型将所有流量样本从原始空间映射到嵌入空间后,不同类型的样本可分离性得到提高。之后进一步通过比较Di,m和Dj,n,选择两者中距离较小的负流量样本作为最难负样本,假设为l。最后,计算由流量样本{i,j,l}确定的Loss 来指导DNN 模型执行反向传播。如图3 所示,最难负流量样本针对的是正流量样本对的每一个样本。在这个包含6 个流量样本的小批次样本中,正流量样本对中每一个样本都是独立地与所有其他负流量样本进行比较,并挖掘出最难负流量样本。
图3 最难负流量样本挖掘方案
由于式(1)定义的LS Loss 并不是光滑的函数,嵌套的 max 函数在实际训练过程中容易导致DNN 模型执行反向传播时陷入局部最优的困境。因此,可以将其改进为一个光滑的函数,即
深度神经网络不需要人工经验,可以端到端地学习到数据的高层次特征表示,从而更有效地提升流量数据的分类性能,本节详细介绍基于DML 的LSF 提取方法。
DML 方法将样本映射到特征空间中,通过使相同类别的特征相似性更高,不同类别的特征相似性更低,从而使不同类别的样本在特征空间中有更好的可分离性。在本文流量特征分类中,选取余弦距离来度量特征空间中不同特征的相似性,选取LS Loss 函数来发掘类内样本数据结构的破坏性相对较低的特性,学习针对流量识别任务的有效特征,基于改进的光滑LS Loss 函数来避免深度网络训练时陷入局部最优,具体步骤如算法2 所示。
算法2LSF 深度特征提取算法
输入流量样本集T={item1,item2,…,itemn},正流量样本P=,负流量样本N=,深度特征提取器G
输出LSF 深度特征
SDN 架构下,基于实际流量的Tor 网页流量分类分为2 个层次进行,如图4 所示,第一个层次针对SDN 数据中心采集到的原始流量,提取原始流量的BSF,将原始流量分为Tor 流量和非Tor 流量,为后续进一步细粒度分类奠定基础。
图4 CTTF 特征和网页特征识别流程
第二个层次是将上述Tor 流量中的网页流量识别出来。针对已知的Tor 流量,本文通过对Tor 流量提取相应的BSF,基于LS Loss 训练提取LSF,二者融合获得Tor 流量的CTTF,再基于标记的训练数据训练KNN 分类器,识别Tor 流量数据中的网页流量。
针对训练数据稀缺的问题,本文提出基于平移的流量数据增强方法,对增强后的流量提取BSF和LSF 得到CTTF。基于上述得到的特征,本文提出的流量数据增强方法也能有效解决训练数据稀缺的问题,提升Tor 网页流量分类准确率。
通过对Tor 流量识别任务的观察,本文提出了一种基于平移的流量增强方法,该方法利用移位的数据增强手段来弥补可能遇到的训练样本不足的问题。数据增强[34]是计算机视觉中常用的减少过拟合问题的方法,通过数据增强提高训练数据规模和质量,可以为机器学习算法提供容量更大、更接近真实分布的训练数据,令训练集和实际需要识别的数据之间的分布尽量匹配。
因此本文探索使用小数据集进行实验,最终选取离线增强方式进行数据扩充,具体的Tor 数据增强策略算法的描述如算法3 所示。
算法3左右平移的数据增强算法
输入流量样本集T={item1,item2,…,itemn},每条流开始收集时间集start,每条流结束收集时间集end
输出数据增强后的流量样本集T
本文首先在SDN 仿真环境中验证了第2 节提出的Tor 流量发现机制的有效性,基于收集的流量数据验证了基于CTTF 的Tor 网页流量识别方法的有效性。在此基础上,本文研究了流量增强机制对Tor 网页流量识别效果的影响。
为了验证了本文提出的Tor 流量发现机制的有效性,本文首先基于物理机器搭建了具备4 个节点的私有Tor 网络,在SDN 仿真环境Mininet[35]中进行了实验。本文基于Mininet 搭建了具有2 个交换机和2 个PC 的数据平面,并使用RYU 作为SDN控制器,在RYU中以应用程序的形式实现本文所需的Tor 流量发现功能,实验中使用如图1 所示的网络结构拓扑。
首先,应用程序周期性地向权威目录服务器请求获取Tor 网络内的节点信息。当Tor 用户访问Tor网络时生成新的网络流量数据,则SDN 交换机会向RYU 控制器请求该网络流量数据的处理方法。控制器经过对比发现该网络流量数据为Tor 流量,则在正常转发该流量的前提下将该网络流量数据复制转发到服务器进行保存,以完成对Tor 流量的发现。接下来,令Tor 用户不通过Tor 网络向网站上传文件,20 s 后再通过Tor 网络向网站上传文件,在此过程中审查者记录收集到的Tor 流量。
如图5 所示,在前20 s 虽然Tor 用户并未使用Tor 进行传输数据,但是审查者仍能够捕获少量Tor 流量,这是因为Tor 用户在维护与入口节点之间的链路,而20 s 后Tor 用户使用Tor 进行通信,此时审查者能够捕获大量的Tor 流量。
图5 不同使用状态下的Tor 流量大小
为了验证本文提出的网页流量识别机制的有效性,本文收集了8 种类型的流量用于实验,包括网页流量、在线音乐、网络视频、语音通话、即时聊天、文件传输、电子邮件和P2P。
由于本文的主要任务是识别网页流量,因此本文将网页流量与其他流量的比例调整为1:1。对于网页类型的Tor 流量,本文将Alexa 网页排名榜单中排行前2 000 的网页作为研究对象。同时使用火狐和谷歌2 种浏览器访问网页,每种浏览器获取每个网页的5 个Tor 流量样本,最终获得了20 000 条网页类型的Tor 流量样本。对于其他7 种类型的流量,每个类型抓取3 000 个Tor 流量样本,共21 000 个样本。
本文将所有类型的流量样本均分为2 个部分,即Dataset1 数据集和Dataset2 数据集,每个数据集包含20 500 条流量。Dataset1 被LS Loss 用来指导本文深度特征提取器的训练,Dataset2 流量用于各方案分别提取特征来训练分类器和测试其识别效果。
本文将Wang 等[29]提出的方案命名为J48,Lotfollahi 等[30]中提出的方案命名为DP。J48 方案使用Tranalyzer2 提取Tor 流量中的79 种特征,并结合J48 分类器得到了较好的流量识别效果。本文将J48 提出的特征定义为F1,通过F1 对Dataset2处理后得到特征集Dataset2F1,分别在Dataset2F1上训练J48、DP 分类器,并对它们的识别效果进行评估。本文将3.2 节提出的BSF 定义为F2,通过F2对Dataset2 进行处理后得到特征集Dataset2F2。利用LS Loss 指导DNN 模型在Dataset1 上训练得到LSF 提取器E1,利用E1 对Dataset2 进行提取特征进一步得到深度特征集Dataset2E1,将Dataset2F2和Dataset2E1融合得到Dataset2 的CTTF,用于训练KNN 分类器,并对其识别效果进行评估。通过控制参与训练的流量数据占比,实验分别得出了J48、DP 以及CTTF 方案的准确率、真正确率及假正确率随训练数据占比变化的曲线。
网页流量识别效果对比如图6 所示。首先随着训练数据占比的增加,3 种模型的识别效果都呈从快速提升到缓慢提升的变化趋势,其中,本文提出的CTTF 方案相较其他2 种方案在数据量更少时识别效果提升更加明显,在40%的数据参与训练的情况下,CTTF 方案已经达到了收敛。然而,基于手工特征集和机器学习分类算法的J48 方案并未达到收敛。基于深度学习模型的DP 方案由于训练数据量不足,识别效果最差。图6 实验结果显示了本文方案能够通过提取更加稳健、有效的流量特征使分类器以更少的训练数据达到更好的识别效果。随着参与训练的数据量进一步增大,当80%的数据参与训练时,巨大的训练数据量使基于深度学习模型的DP 方案识别效果进一步提升,DP 方案与本文提出的CTTF 方案的识别率达到同一水平。然而由于本文设计的CTTF 方案为负样本对设计了更高的损失值权重,误报更少,FPR 相较DP 方案更低,在实际应用中其他类型流量被误识别为网页流量的概率更小。
图6 网页流量识别效果对比
为了验证数据增强机制的有效性,本节对本文提出的方案在数据增强机制辅助下的识别效果进行了评估。由于审查者很难掌握Tor 流量的具体位置,但是仍能大致判断Tor 流量的起始位置。因此,本文对流量数据的平移操作被限制到了100 个数据包的范围,通过左右平移流量形成新的流量数据。本文采用随机平移的方式对涉及训练特征提取器和分类器的数据进行在线扩充至原来的5 倍。
如图7 所示,本文将未采用数据增强机制的方法称为CTTF,只在测试数据上执行数据增强的方法称为Non,在训练数据和测试数据同时进行数据增强的方法称为Arg。当参与训练的数据占比超过40%时,经过数据增强后分类的准确率和TPR 都有小幅提升,FPR 有小幅下降,但是均无明显改善。当参与训练的数据占比小于40%时,经过数据增强后分类的准确率和TPR 都有较大幅度的提升,FPR 也有较大幅度的下降。当训练数据较少时,通过平移操作对Tor 流量进行数据增强,能够使训练数据与实际需要识别的数据更加相似,从而提高分类器的识别效果。当训练数据充足时,数据增强虽然会少量增加分类器的识别效果,但与此同时也会增加训练分类器的时间消耗,因此,这种情况下需要谨慎采用数据增强技术。
图7 数据增强机制的效果
通常情况下,模型训练的epoch 越多,预测效果越好。使用不同DNN 子网络模型的性能曲线如图8 所示。DF 作为子网络时,在10 个epoch时就达到82%的精确率和85%的召回率。随着epoch 不断增加,模型性能逐渐变好,最终在40 个epoch 后趋于平稳。本文发现,DF 作为子网络时模型在训练epoch 最少的情况下就能达到收敛,性能仍表现最好,在流量识别的任务中再次展现了强大的特征提取能力。因此,本文最终选择DF 作为LSF 提取模型中的基础网络,且模型的训练epoch 为40。
图8 使用不同DNN 子网络模型的性能曲线
通过对比测试,本文选择余弦距离作为LSF提取模型中的距离度量,依靠其独有的特性来衡量流量样本间的相似度。此外,Adam 优化器[28]结合了SGDM[36]的一阶动量和RMSProp[37]的二阶动量,在梯度下降的过程中加入了惯性,并实现了自适应的学习率调整。因此,本文选择Adam作为LSF 提取模型训练过程中的优化器,以获得更佳的性能。
通过基于DML 训练得到的特征提取器,将流量样本在高维空间中的原始稀疏特征向量映射到低维空间中稠密特征向量后,同类别流量样本间距离减少,异类流量样本间距离增加。由于由DML 指导训练得到的深度学习模型通常配合KNN 一起完成分类任务,因此本文同样采用KNN 作为目标分类器,以BSF和LSF 二者融合获得的CTTF 特征训练KNN。与普通的分类算法不同,KNN 通过在欧氏空间中从参与训练分类器的流量样本中找出与需要预测的样本距离最接近的K个流量样本,然后在它们当中找出某一标签对应样本数量最多的标签作为预测样本的类别,该思想类似于“投票法”。K值的选取在一定程度上会影响KNN 模型的预测结果。如果选择较小的K值,只有与输入流量样本较近或相似的训练样本才会对预测结果起作用,但意味着模型容易发生过拟合;如果选择较大的K值,就相当于利用较多训练时的流量样本进行预测,但此时与输入流量样本不相似的训练样本也会对预测结果起作用,导致预测错误。通过交叉验证,本文对KNN 主要采取以下超参数指导分类器进行训练和预测。
1)采用余弦距离来衡量样本间的相似度。
2)每个参与训练样本的权重设置为与距离成反比。
3)每一次查找10 个与输入流量样本最近的样本,也就是K为10。
针对K的取值问题,本文采用测试多个K值,并从中选取使分类性能达到最佳的值作为最终的K值,如图9 所示,当K取值为9、10、11时,模型取得最高的准确率,本文选取中间值10 作为K的最终取值。
图9 使用不同K 值对识别准确率的影响
本文基于SDN 架构特性,在数据中心环境下发现和收集Tor 流量,据此分析获得了Tor 流量的BSF;进一步基于卷积网络提取深度特征的流量特征表示,使用LS Loss 训练深度特征提取器,获得了基于深度度量学习的Tor 网页LSF;针对训练数据不足的情形,提出了流量数据增强的方法。实验表明,基于BSF+LSF 的复合特征CTTF 能针对实验模拟的数据中心的原始流量进行Tor 网页流量识别,相比现有方法,识别率提升了4%,达到85.9%,TPR 达到88.7%,FPR降至10.9%;其中基于Tor 流量数据进行增强的方法可将分类器的分类效果在训练数据较少的情况下得到有效提升。