«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (11): 129-135, 143  DOI: 10.19678/j.issn.1000-3428.0059492
0

引用本文  

梁晓萌, 严明, 吴杰. 基于人工蜂群算法的Tor流量在线识别方法[J]. 计算机工程, 2021, 47(11), 129-135, 143. DOI: 10.19678/j.issn.1000-3428.0059492.
LIANG Xiaomeng, YAN Ming, WU Jie. Tor Traffic Online Identification Method Based on Artificial Bee Colony Algorithm[J]. Computer Engineering, 2021, 47(11), 129-135, 143. DOI: 10.19678/j.issn.1000-3428.0059492.

基金项目

国家重点研发计划(2017YFB0803203)

通信作者

严明(通信作者), 工程师、硕士

作者简介

梁晓萌(1996-), 女, 硕士研究生, 主研方向为信息安全;
吴杰, 研究员、博士

文章历史

收稿日期:2020-09-10
修回日期:2020-11-17
基于人工蜂群算法的Tor流量在线识别方法
梁晓萌1 , 严明1,2 , 吴杰1,2     
1. 复旦大学 计算机科学技术学院, 上海 200433;
2. 教育部网络信息安全审计与监控工程研究中心, 上海 200433
摘要:Tor等匿名流量的分类与识别对运营商监管网络安全具有重要意义,但目前Tor流量的分类检测技术普遍存在识别准确率低、缺乏实时性、无法有效处理高维数据等问题。为此,提出一种Tor流量在线识别方法。通过搭建基于逻辑回归的深度神经网络,提取Tor流量特征匹配度以实现特征增强,并使用人工蜂群机制代替梯度下降等常见迭代算法,得到流量分类及识别结果。在此基础上,构建一套实时流量检测工具应用于实际生产环境中。在公开Tor数据集上的实验结果表明,与逻辑回归、随机森林、KNN算法相比,该算法的精确率和召回率分别提高了10%~50%,相比梯度下降的迭代算法准确率提高了7%~8%。
关键词Tor流量识别    网络流量分类    特征提取    网络流量分析    深度学习    人工蜂群算法    逻辑回归    
Tor Traffic Online Identification Method Based on Artificial Bee Colony Algorithm
LIANG Xiaomeng1 , YAN Ming1,2 , WU Jie1,2     
1. School of Computer Science, Fudan University, Shanghai 200433, China;
2. Engineering Research Center of Cyber Security Auditing and Monitoring, Shanghai 200433, China
Abstract: The classification and identification of Tor and other anonymous traffic is of great significance to network security supervision.However, the existing Tor traffic classification and detection technologies are generally characterized by low identification accuracy, poor real-time performance, and inability to effectively handle high-dimensional data, etc.To solve these problems, a method for online identification of Tor traffic is proposed.A deep neural network based on logistic regression is constructed to extract the matching degree of effective Tor traffic features to implement feature enhancement.Additionally, the artificial bee colony mechanism is used to replace the commonly used iterative algorithms, such as gradient descent, so the traffic classification and recognition results are obtained.The experimental results on public Tor datasets show that compared with the logic regression algorithm, random forest and KNN algorithm, the proposed algorithm improves the accuracy and the recall rate by 10% to 50%.Compared with the regression algorithm based on gradient descent, the proposed algorithm improves the accuracy by 7% to 8%.
Key words: Tor traffic identification    network traffic classification    feature extraction    network traffic analysis    deep learning    artificial bee colony algorithm    logistic regression    

开放科学(资源服务)标志码(OSID):

0 概述

流量识别技术是网络运营商用以对流量进行监控的重要手段。近年来,互联网产业的发展使得用户能够在加密自身信息元素的情形下对网络进行访问,因此,及时、准确的流量特征的反馈,已经成为运营商能够成功进行流量监控、网络监管的重要挑战之一。

国内外学者对Tor匿名加密流量[1]的识别与分类进行了研究。CHAKRAVARTY等[2]提出一种针对Tor网络的攻击,目的是暴露客户端的身份(IP地址),并给出一种主动流量分析攻击方法,在服务器端(串通服务器)故意干扰用户流量。根据统计相关性观察到在客户端也存在类似的干扰,该方法在实验室测试中达到100%的准确率,实际实验超过81%。HE等[3]提出一种基于HMM(Hidden Markov Models)的方法,将加密的Tor流量分为P2P、FTP、IM和Web(其他情况未知)4类。作为分类器(特征),使用从Tor流中提取的burst体积和方向,并运用HMM构建不同应用程序类型(P2P、FTP、IM和Web)的模型。HABIBI等[4]提出一种基于时间分析方法来提取匿名加密流量特征,实验结果表明,仅通过时间特征可以有效地检测出加密流量的类别,且流量的时间越短,识别率越高。该方法在不同的算法分类下的识别率范围为70%~90%,但其提取的特征无法做到实时性。PAN等[5]对深度学习在信息安全领域的优势做出了评判,对于大型数据集,基于深度学习的分类器通常优于其他分类器,并且可以针对相似类型的应用程序进行推广。例如,如果需要训练检测使用Tor的应用程序,那么只需要重新训练输出层,而其他所有层可以保持不变。对于其他机器学习分类器,则需要在整个数据集上重新训练。

在已有研究中可以发现,很多研究通过从流中提取特征,但是很少有研究能够实时提取,以便及时识别分类Tor等匿名加密流量的特征。本文将流量划分为不同的类型,每种类型的流量来自于不同的应用业务,如从Hangouts、Facebook和Skype中获取的VoIP流量。在当前使用机器学习模型进行匿名加密流量处理的研究中,流量训练往往对设备性能要求过高,训练时间较长,不适合研究者进行实验测试。本文设计一种实时流量检测工具,并提出一种结合人工蜂群机制的基于深度学习的改进逻辑回归方法。该方法运用文献[4]公开的流量数据集,根据Whonix[6]操作系统,配置Tor网络路由获取流量,从而得到对应的数据。

1 算法设计 1.1 特征选择及提取

为方便快捷地计算特征值,本文使用golang语言,并参考使用谷歌的gopacket包[7],gopacket包构建在libpcap[8]上,可以采集网络中的流量信息。本文通过匹配seq、ack号聚合数据包为一条数据流。

对于Tor等类型的匿名加密流量,源IP、源端口等TCP字段是无法区分流量类型的,需要找到这些流量与非加密流量的区别。本文考虑2种选择特征的方法:一是测量基于时间的特征,如2条连续数据包之间的间隔时间[9];二是控制时间测量其他变量,如1 s内数据包数量[10]。本文选择了能够在线实时提取的特征,如表 1所示。

下载CSV 表 1 初步特征选择 Table 1 Selection of preliminary feature

以上特征与最终的流量识别、分类结果相关性各不相同,且实时流量分析需要尽可能少的数据提取,因此需要筛选出相关性最高的几个特征。在特征筛选方面,本文使用过滤的方法提取特征,在此之前需要将数据进行预处理。

1) 在计算各类特征值的过程中,有些数据流由于捕获不全、数据异常等原因,无法作为自变量带入神经网络中进行运算,因此需要对某些无法计算的特征进行数据人工处理。对于计算后得出NaN的字段,将该值处理为-1e20;对于计算后得出infinity的字段,将该值处理为1e20。

2) 需要将数据进行标准化。本文使用Max-Min算法,将所有特征值进行线性变换,映射到区间[0, 1]内,对于每一种特征序列$ {x}_{1}, {x}_{2}, \cdots , {x}_{n} $,标准化处理公式如式(1)所示:

$ {x}_{i}=\frac{{x}_{i}-\underset{0\le j\le n}{\mathrm{m}\mathrm{i}\mathrm{n}}\left\{{x}_{j}\right\}}{\underset{0\le j\le n}{\mathrm{m}\mathrm{a}\mathrm{x}}\left\{{x}_{j}\right\}-\underset{0\le j\le n}{\mathrm{m}\mathrm{i}\mathrm{n}}\left\{{x}_{j}\right\}} $ (1)

3) 本文选择Pearson相关系数对各个特征与分类结果的相关性进行检验,Pearson相关系数计算公式如式(2)所示[11]

$ r=\frac{\sum (x-\stackrel{-}{x})(y-\stackrel{-}{y})}{\sqrt[]{\sum {(x-\stackrel{-}{x})}^{2}\sum {(y-\stackrel{-}{y})}^{2}}} $ (2)

其中:$ x $为某一个样本的特征值。通过计算每一个特征在所有分类结果中的Pearson总值,即若流量总共有n种可能被识别、分类的结果,并分别记录在每一个识别、分类结果中,该特征在所有样本中的$ x $值和平均值$ \stackrel{-}{x} $,并根据式(2)计算出$ {r}_{i}(i=\mathrm{1, 2}, \cdots , n) $$ r=\sum\limits_{i=0}^{n}{r}_{i} $。对于流量识别实验,本文设定Tor流量的标签y为1,非Tor流量的标签y为0;对于流量分类实验,本文设置8个分类结果标签Y={$ {y}_{1}, {y}_{2}, \cdots , {y}_{8}, $},$ {y}_{i} $为1表示它属于第i种流量,$ {y}_{i} $为0表示它不属于第i种流量。Pearson相关系数的绝对值越大,说明这个特征与分类结果的相关性越强。本文最终选取相关系数绝对值最大的5个特征作为本文工具(ABC-LR)用来进行流量识别、分类的特征。

1.2 基于深度学习的逻辑回归模型

给定一组训练集$ \left\{({\boldsymbol{x}}_{1}, {y}_{1}), ({\boldsymbol{x}}_{2}, {y}_{2}),\cdots , ({\boldsymbol{x}}_{n}, {y}_{n})\right\} $,逻辑回归模型按式(3)进行分类:

$ {y}_{i}^{\text{'}}=\left\{\begin{array}{c}0, {p}_{i} < 0.5\\ 1, {p}_{i}\ge 0.5\end{array}\right. $ (3)

其中:$ {p}_{i} $由式(4)计算得到;$ \sigma $是激活函数。

$ {p}_{i}=\sigma \left(\boldsymbol{w}{x}_{i}\right) $ (4)

由于本文实验为多分类,因此当多个类别的概率高于0.5时,选取概率最高的类别作为结论。

在神经网络的逻辑回归模型[12]设计中,本文使用m层全连接网络[13],每层分为线性层[14]和激活层[15],线性层包括线性变换权重和偏置:

$ \mathrm{w}\mathrm{e}\mathrm{i}\mathrm{g}\mathrm{h}\mathrm{t}=\mathrm{P}\mathrm{a}\mathrm{r}\mathrm{a}\mathrm{m}\mathrm{e}\mathrm{t}\mathrm{e}\mathrm{r}(\mathrm{t}\mathrm{o}\mathrm{r}\mathrm{c}\mathrm{h}.\mathrm{T}\mathrm{e}\mathrm{n}\mathrm{s}\mathrm{o}\mathrm{r}(\mathrm{o}\mathrm{u}\mathrm{t}, \mathrm{i}\mathrm{n}\left)\right) $ (5)
$ \mathrm{b}\mathrm{i}\mathrm{a}\mathrm{s}=\mathrm{P}\mathrm{a}\mathrm{r}\mathrm{a}\mathrm{m}\mathrm{e}\mathrm{t}\mathrm{e}\mathrm{r}(\mathrm{t}\mathrm{o}\mathrm{r}\mathrm{c}\mathrm{h}.\mathrm{T}\mathrm{e}\mathrm{n}\mathrm{s}\mathrm{o}\mathrm{r}(\mathrm{o}\mathrm{u}\mathrm{t}\left)\right) $ (6)

其中:weight为权重;bias为偏置;out为该网络神经元个数;in为前一层网络神经元个数。使用ReLu()函数作为激活函数将其线性单元进行修正,这样可以做到一次非线性变换。在输出层,首先使用Linear()函数将从最后一层隐藏层[16]映射到输出,再使用激活函数将输出映射到(0,1)之间,用于对接分类任务。

对于m层全连接网络和分类输出层,公式表示分别如式(7)~式(9)所示:

$ {H}_{0}=\boldsymbol{X} $ (7)
$ {\boldsymbol{H}}_{i}=\mathrm{R}\mathrm{e}\mathrm{L}\mathrm{u}\left({\boldsymbol{W}}_{i}{H}_{i-1}+{\boldsymbol{b}}_{i}\right)\text{,}1\le i\le m $ (8)
$ y=\sigma ({\boldsymbol{W}}_{\mathrm{o}\mathrm{u}\mathrm{t}}{H}_{m}+{b}_{\mathrm{o}\mathrm{u}\mathrm{t}}) $ (9)

其中:X是从数据流中抽取的特征,是一个n维向量;$ {\boldsymbol{H}}_{i} $是隐藏层,为$ {h}_{i} $维向量;$ {\boldsymbol{W}}_{i} $$ {h}_{i}\times {h}_{i-1} $的参数矩阵;$ {\boldsymbol{b}}_{i} $$ {h}_{i} $维的贝叶斯偏置向量;$ {\boldsymbol{W}}_{\mathrm{o}\mathrm{u}\mathrm{t}} $是输出层$ 1\times {h}_{m} $的参数矩阵;$ {b}_{\mathrm{o}\mathrm{u}\mathrm{t}} $是输出层的贝叶斯偏置值;$ \mathrm{R}\mathrm{e}\mathrm{L}\mathrm{u} $$ \sigma $为激活函数。

对于一条数据流,它属于某一类流量和非该类流量的概率分别如式(10)和式(11)所示:

$ P(Y=1)=y $ (10)
$ P(Y=0)=1-y $ (11)

本文使用逻辑回归模型进行分类,即激活函数$ \sigma $选择sigmoid函数。

$ y=\sigma \left(x\right)=\mathrm{s}\mathrm{i}\mathrm{g}\mathrm{m}\mathrm{o}\mathrm{i}\mathrm{d}\left(x\right) $ (12)

输入特征数、层数、每一层的隐元数,网络架构[17]图 1所示。

Download:
图 1 深度学习网络架构 Fig. 1 Network architecture of deep learning

网络输出分类概率后,使用交叉熵损失函数计算损失值,如式(13)所示:

$ J\left(\boldsymbol{w}\right)= - \sum\limits _{i=1}^{n}{y}_{i}\mathrm{l}\mathrm{o}{\mathrm{g}}_{a}{p}_{i}+(1-{y}_{i})\mathrm{l}\mathrm{o}{\mathrm{g}}_{a}(1-{p}_{i})+\frac{\lambda }{2}\sum \limits_{j=1}^{N}{w}_{j}^{2} $ (13)

其中:$ {y}_{i} $表示该流是否属于某一类流量,是正则化参数。

逻辑回归模型的分类计算方法是通过最小化损失函数,即通过一个算法对参数w学习迭代优化,常见的方法是梯度下降方法,如式(14)所示,直至满足终止条件(如收敛)为止。

$ \boldsymbol{w}=\left[\begin{array}{c}{w}_{1}\\ {w}_{2}\\ ⋮\\ {w}_{N}\end{array}\right]+\alpha {\left[\begin{array}{c}{\boldsymbol{x}}_{1}\\ {\boldsymbol{x}}_{2}\\ ⋮\\ {\boldsymbol{x}}_{n}\end{array}\right]}^{\mathrm{T}}\times \left(\left[\begin{array}{c}{y}_{1}\\ {y}_{2}\\ ⋮\\ {y}_{n}\end{array}\right]-\left[\begin{array}{c}{p}_{1}\\ {p}_{2}\\ ⋮\\ n\end{array}\right]\right)-\lambda \left[\begin{array}{c}{w}_{1}\\ {w}_{2}\\ ⋮\\ {w}_{N}\end{array}\right] $ (14)

其中:$ \alpha $为学习率,影响学习模型收敛到局部最小值的速度。

尽管梯度下降算法常用于学习模型的训练,但是梯度下降并不能保证收敛到全局最优解,当损失函数不可导时无法使用。此外,由于每一个样本都要计算微积分,当训练样本较大时,很容易导致服务器性能不够、运算速度比较慢。若是使用随机梯度下降法,则数据样本不够全面,导致分类结果不理想。基于此,本文研究设计一种加入人工蜂群机制的新学习方法。

1.3 损失函数迭代更新设计

人工蜂群算法[18]模拟了蜂群的智能觅食行为,它没有关于函数和参数搜索空间的假设条件限制。在该算法中有3种人工蜜蜂,分别是雇佣蜂、跟随蜂以及侦查蜂。食物源的位置即为对应的解,食物源的花蜜量即为对应的解的适合度,人工蜂群机制具体算法如算法1所示。

算法1 ABC算法

ABC算法步骤如下:

1) 设定参数:食物源即雇用蜂数量(SN)、最大循环数(MCN)、未被更新的极限次数(limit)。

2) 利用下式生成初始食物源,并对这些解进行评估:

$ {x}_{ij}={x}_{j}^{\mathrm{m}\mathrm{i}\mathrm{n}}+\mathrm{r}\mathrm{a}\mathrm{n}\mathrm{d}\left(\mathrm{0, 1}\right)\times \left({x}_{j}^{\mathrm{m}\mathrm{a}\mathrm{x}}-{x}_{j}^{\mathrm{m}\mathrm{i}\mathrm{n}}\right) $

其中:$ {x}_{ij} $是第i个解的第j个参数,i $ \in ${1,2,…,SN},j$ \in ${1,2,…,D},SND是食物源个数和优化参数个数;Rand(0,1)是区间(0,1)内均匀分布的随机数;$ {x}_{j}^{\mathrm{m}\mathrm{a}\mathrm{x}} $$ {x}_{j}^{\mathrm{m}\mathrm{i}\mathrm{n}} $分别是第j个参数的上界和下界。

3) 雇佣蜂阶段:通过下式对每个解进行局部搜索,并进行贪婪选择:

$ {v}_{ij}={x}_{ij}+{\varphi }_{ij}\times \left({x}_{ij}-{x}_{kj}\right) $

其中:$ {\varphi }_{ij} $是一个在区间[-1, 1]之内均匀分布的随机数,j$ \in ${1,2,…,D},k$ \in ${1,2,…,SN},均是随机选取的索引,其中i$ \ne k $

4) 通过下式为每个解计算出一个与其质量成比例的概率值:

$ {p}_{i}=0.9\times \frac{{f}_{i}}{\mathrm{m}\mathrm{a}\mathrm{x}\left(f\right)}+0.1 $

其中:$ {f}_{i} $是第i个解的适应度;max(f)是所有解中的最大适应度。

5) 跟随蜂阶段:根据第4步的概率值选择解。采用贪婪选择法,利用第3步的公式对每个选择的解进行局部搜索。

6) 记录最优解。

7) 侦查蜂阶段:检查是否有要放弃的解,若有,则使用第2步的公式生成一个新解。

8) 重复第3步~第7步,直到达成终止条件。

在本文基于深度学习的逻辑回归模型内,权重W和偏置b(包括式(8)与式(9)中的Wb参数)等参数对应于人工蜂群算法中食物源的位置。因此,首先由算法生成权重和偏置的初始值,随后利用3种蜂群对应的算法阶段,计算出模型的损失函数,即式(13)最小(适应度最高)最佳的参数。

本文算法使用式(15)初始化$ {w}_{ij} $(Wb)中每一个参数:

$ {w}_{ij}={w}_{j}^{\mathrm{m}\mathrm{i}\mathrm{n}}+\mathrm{r}\mathrm{a}\mathrm{n}\mathrm{d}\left(\mathrm{0, 1}\right)\times \left({w}_{j}^{\mathrm{m}\mathrm{a}\mathrm{x}}-{w}_{j}^{\mathrm{m}\mathrm{i}\mathrm{n}}\right) $ (15)

其中:$ {w}_{ij} $表示第i个食物源,即第i个解,i$ \in ${1,2,…,SN},SN为食物源个数,即本文算法可行解数量,需预先设定为固定值;rand(0,1)是区间(0,1)内均匀分布的随机数;$ {w}_{j}^{\mathrm{m}\mathrm{a}\mathrm{x}} $$ {w}_{j}^{\mathrm{m}\mathrm{i}\mathrm{n}} $分别是式(8)Wb向量众多参数中第j个参数的上界和下界,j$ \in ${1,2,…,N},N是要优化的参数总数量,即|W|+|b|。

利用当前产生的参数值计算实际的分类效果与当前参数计算出的分类效果的差值,根据式(13),这个值由式(16)的适应度表示,对于每一条输入流量是否为Tor流量或某一类型流量的分类结果,适应度$ {E}_{i} $由式(17)计算。这个适应度函数及误差计算能够使得本文模型更容易在搜索空间内找到适合的解。

$ {f}_{i}=\frac{1}{1+{E}_{i}} $ (16)
$ {E}_{i}=\sum\limits _{k=1}^{K}\sum \limits_{j=1}^{M}{y}_{j}\mathrm{l}\mathrm{o}{\mathrm{g}}_{a}{p}_{j}+(1-{y}_{j})\mathrm{l}\mathrm{o}{\mathrm{g}}_{a}(1-{p}_{j})+\frac{\lambda }{2}\sum \limits_{j=1}^{N}{w}_{j}^{2} $ (17)

其中:K是总共要分类的种类数量,对于流量识别实验,K为2,表示是否为Tor流量,对于流量分类实验,K为流量类型数;M是输入样本数,$ {y}_{j}\in \left\{\mathrm{0, 1}\right\} $,表示是否为该类型流量。通过3种蜂群算法进行每轮迭代,直至满足终止条件,迭代停止。

本文算法在雇佣蜂阶段对内存中的每个解进行局部搜索,对于每个现存的解Wb,通过式(18)得到一个新的解:

$ {v}_{ij}={w}_{ij}+{\varphi }_{ij}\times ({w}_{ij}-{w}_{kj}) $ (18)

对于每个解,本文只选择第j个参数Wb进行修改,生成新的解,j$ \in ${1,2,…,D}是随机生成的,为提高收敛速度,本文利用式(19)进行贪婪选择,$ {R}_{ij} $、MR为均匀分布的[0, 1]区间之内随机抽取的浮点数,但MR在算法最初预先定义好,不再作更改。

$ {v}_{ij}=\left\{\begin{array}{c}{w}_{ij}+{\varphi }_{ij}\times \left({w}_{ij}-{w}_{kj}\right), {R}_{ij} < \mathrm{M}\mathrm{R}\\ {w}_{ij}, \mathrm{其}\mathrm{他}\end{array}\right. $ (19)

当所有解完成该阶段后,需要用式(20)确定是否有解参数Wb超出了预先设置好的参数边界。

$ {v}_{ij}=\left\{\begin{array}{c}{w}_{j}^{\mathrm{m}\mathrm{a}\mathrm{x}}, {v}_{ij} > {w}_{j}^{\mathrm{m}\mathrm{a}\mathrm{x}}\\ {w}_{j}^{\mathrm{m}\mathrm{i}\mathrm{n}}, {v}_{ij} < {w}_{j}^{\mathrm{m}\mathrm{i}\mathrm{n}}\\ {v}_{ij}\text{,}\mathrm{其}\mathrm{他}\end{array}\right. $ (20)

算法进入跟随蜂阶段后,根据每个解Wb的适应度选择一个最优解,通过式(18)产生一个新解Wb,并在原有解和新解之间进行贪婪选择。最后在侦查蜂算法阶段,本文检查每个解是否已被耗尽,即没有被更新的次数是否超过了预先设置好的limit值,若有解满足被耗尽的条件,则认为这个解陷入了局部最优,因此,需要产生一个新解Wb替代这个原有解。直至算法满足终止迭代条件后,本文选取适合度最高的解作为本文最终的解。

对于同一个解,由于Wb等参数的迭代优化不具有逻辑相关性,因此使用并行方式进行新解的计算,这使得本文算法在时间效率方面有极大的提升。

1.4 工具设计

基于1.2节、1.3节的计算结果,本文设计了一个旁路式的Tor流量实时识别、分类工具,将上述算法、模型应用到现实流量监管场景中。本工具既提供了Netflow[19]、nProb[20]等网络流量分析技术的接口,实现实时的高并发流量的测试统计,也可将具体的数据流通过交换机镜像方式直接输入到工具中,进行实时识别和分类。输入流量只支持TCP形式的数据流。

本工具包含流量输入模块、数据处理模块、分类形式选择模块、在线测试模块和结果输出模块,具体逻辑实现过程如图 2所示。数据处理模块以10 s为单位,自动提取出所需特征,并对每个特征进行数据预处理,即将空值或超过阈值的数据处理为可以放进工具中进行分类的数据;分类形式选择模块为想要选择的分类模型,包括流量识别、流量分类2种模式,工具会根据用户所选择的工作模式,提供对应的ABC-LR算法所计算生成的特征参数;在线测试模块能够每10 s检测出先前10 s读取的数据是否为某一类流量。

Download:
图 2 在线流量识别系统流程 Fig. 2 Procedure of online traffic identification system

对于本文工具,如果需要训练检测使用Tor的应用程序,那么只需要重新训练输出层,更改识别算法即可。

2 实验结果与分析 2.1 实验环境

本文的实验环境采用实验室服务器,操作系统为CentOS Linux release 7.7.1908,内核为3.10.0-693.el7.x86_6,CPU为Intel® Xeon® Gold 6242 CPU 2.8 GHz 16cor,内存为128 GB。

实验数据使用了文献[2]公开的网络数据集。该数据集分为2个部分:一部分是利用校园网抓包获取的已分好类别的Tor和非Tor数据包;另一部分是包含来自18个代表性应用程序(如facebook、skype、spotify、gmail等)的8种类型的Tor流量(浏览、聊天、音频流、视频流、邮件、VOIP、P2P和文件传输),基本能够包含人们日常使用因特网生成的数据类型。本文分别针对以上2个数据集做流量识别、流量分类2类实验。

2.2 特征提取

本文实验采用了直接将流量输入工具的方法,将数据流量进行回放。

首先对1.1节列出的17个特征进行了相关度计算,由于实时识别、分类工具每10 s输出一次结果,因此本文在上述数据集基础上,截取8万余条时长为10 s的Tor/非Tor数据流作为特征相关性判断的样本。在将数据进行如1.1节所述的预处理后,2个实验的特征相关度结果分别如表 2表 3所示。根据特征提取所消耗的时间,本文将特征数量固定在5个,以保证提取时长不超过10 s。最终,本文选取了fpps_c2s、fat_min、at_c2s_min、at_s2c_std、fat_mean等特征作为流量识别实验的特征,fat_min、active、fat_mean、fat_std、at_s2c_std等特征作为流量分类实验的特征,因为它们相关度的绝对值更大,相关性更高。

下载CSV 表 2 流量识别特征相关度 Table 2 Traffic identification feature correlation
下载CSV 表 3 流量分类特征相关度 Table 3 Traffic classification feature correlation
2.3 损失函数变化

在神经网络设计中,取特征数n=5,层数m=3,第1层隐元数量$ {h}_{1}=30 $,第2层隐元数量$ {h}_{2}=30 $,第3层隐元数量$ {h}_{3}=30 $

在本文实验中,随机选取80%的数据作为训练集,剩余的20%数据作为测试集。最大循环数MCN设置为500,在使用本文实验算法(ABC-LR)时,损失函数变化如图 3所示,可见该算法对于基于深度学习的逻辑回归算法损失函数收敛是具有效果的。

Download:
图 3 ABC-LR算法下损失函数变化 Fig. 3 Change of loss function under ABC-LR algorithm
2.4 不同算法下的精确率和召回率

为证明本文实验算法的准确率,将该算法与逻辑回归(LR)、随机森林、KNN做对比,如图 4~图 6所示。逻辑回归算法不包含本文算法中的神经网络结构,使用随机梯度下降法作为参数迭代算法,最终根据参数与特征的计算将流量进行多分类;随机森林算法从原始数据集中抽样选取子数据集,通过构建多个决策树对流量进行识别和分类;KNN算法通过查找每个数据最相似的数据结果来确定这条数据的类别。本文实验以精确率、召回率作为衡量指标,其中,精确率为正确预测为正的占全部预测为正的比例,召回率为正确预测为正的占全部实际为正的比例。

Download:
图 4 不同算法流量的识别精确率与召回率 Fig. 4 Identification accuracy rate and recall rate of different algorithms traffic
Download:
图 5 不同算法流量的分类精确率 Fig. 5 Classification accuracy rate of different algorithms traffic
Download:
图 6 不同算法流量的分类召回率 Fig. 6 Classification recall rate of different algorithms traffic

由实验数据可知,本文算法(ABC-LR)相比起一些其他常见的有监督学习算法,准确性更高。在流量识别实验中,精确率和召回率分别达到了90%、92%左右;而在流量分类实验中,各类应用程序流量的分类精确率、召回率平均达到了90%左右。

2.5 不同迭代算法的计算时间及准确率

为证明本文迭代算法的准确性以及对于计算大量数据的适合性,本实验选取了8万余条时长为10 s的数据流,其中包含8种应用类型的Tor/非Tor流量作为实验数据。在参数的迭代计算中,分别使用梯度下降算法以及本文算法(ABC-LR)。首先计算出8万余条数据流的5种特征值,并对数据进行清洗和预处理,统一初始化参数,只统计从特征输入到分类结束的时长。统计指标准确率的数值为分类正确的数据流数量与总数据流数量的比值,如表 4所示。

下载CSV 表 4 ABC-LR与梯度下降的处理时间及准确率 Table 4 Processing time and accuracy of ABC-LR and gradient descent in traffic identification

通过表 4可以看出,相比梯度下降,本文算法(ABC-LR)对于大量流量的处理更具有适合性,同时准确率也更高。

2.6 工具检测

为了检测本文所设计的基于ABC-LR算法的流量识别、分类工具是否能够实时、准确地输出较高流量的状态,本实验将网络吞吐率设置在10 000 pps,工具每10 s会对进入系统的流量进行一次分类。当系统开启后,如在08:00:00时刻,会输出07:59:50-08:00:00出现的所有数据流的种类。本文对2类数据均做了实时有效性实验。由图 7图 8数据可知,本文工具可以实时对匿名流量进行识别及分类,并达到90%以上的精确率及召回率。

Download:
图 7 基于ABC-LR算法工具长时间流量识别精确率与召回率 Fig. 7 Accuracy rate and recall rate of long time traffic identified based on ABC-LR algorithm tool
Download:
图 8 基于ABC-LR算法工具长时间流量分类精确率与召回率 Fig. 8 Accuracy rate and recall rate of long time traffic classification based on ABC-LR algorithm tool
3 结束语

本文提出一种基于人工蜂群算法的Tor流量在线识别方法,通过计算特征匹配度筛选出适合实时提取的特征,将深度学习与流量分类相结合,构造基于逻辑回归的神经网络模型。对于模型迭代方式,设计加入人工蜂群机制的回归模型,融入人工蜂群机制计算消耗小、对特征数据关联性敏感度低的特性。此外,基于以上算法模型开发一种在线实时进行Tor等匿名流量分类识别的工具,既可独立使用,也可结合已有系统配合使用。实验结果表明,本文算法及工具解决了传统算法存在的各类问题,大幅提高了识别准确率。由于本文所选数据集来自高校学生日常使用流量数据,因此下一步考虑将研究范围扩大至整个社会领域,获取更多职业的人群Tor流量使用数据,从而验证本文工具的准确性。

参考文献
[1]
MICHAEL S. Malicious DNS traffic in Tor: analysis and countermeasures[C]//Proceedings of IEEE ICISSP'19. Washington D.C., USA: IEEE Press, 2019: 536-543.
[2]
CHAKRAVARTY S, BARBERA M V, PORTOKALIDIS G, et al. On the effectiveness of traffic analysis against anonymity networks using flow records[C]//Proceedings of Passive and Active Measurement Conference. Los Angeles, USA: [s.n.], 2014: 1-10.
[3]
HE G, YANG M, LUO J, et al. Inferring application type information from tor encrypted traffic[C]//Proceedings of the 2nd IEEE International Conference on Advanced Cloud and Big Data. Washington D.C., USA: IEEE Press, 2015: 145-456.
[4]
ARASH H L, GERARD D G, MOHAMMAD S, et al. Characterization of Tor traffic using time based features[C]//Proceedings of IEEE ICISSP'19. Washington D.C., USA: IEEE Press, 2017: 253-262.
[5]
PAN Y H, ZHANG A X. Tor traffic identification method based on deep learning[J]. Communications Technology, 2019, 52(12): 2982-2986. (in Chinese)
潘逸涵, 张爱新. 基于深度学习的Tor流量识别方法[J]. 通信技术, 2019, 52(12): 2982-2986. DOI:10.3969/j.issn.1002-0802.2019.12.026
[6]
KARAMLOU T, VELEZ D A, NIGRO J J. Encrypted prediction: a hacker's perspective[J]. The Journal of Thoracic and Cardiovascular Surgery, 2017, 154(6): 2038-2040. DOI:10.1016/j.jtcvs.2017.08.112
[7]
LI R P. Design and Implementation of network abnormal behavior detection platform based on big data[D]. Guangzhou: South China University of Technology, 2018. (in Chinese)
李若鹏. 基于大数据的网络异常行为检测平台的设计与实现[D]. 广州: 华南理工大学, 2018.
[8]
YIN Z J, ZHANG H, LIU Q. Analysis and research of BPF filter based on Libpcap[J]. Advanced Materials Research, 2013(655): 1774-1778.
[9]
LIU W X, JUN C, YU W, et al. Fine-grained flow classification using deep learning for software defined data center networks[J]. Journal of Network and Computer Applications, 2020, 168(3): 1-10.
[10]
SAON C V, CHARLIE G, ADRIANO T F, et al. Intermittent slug flow identification and characterization from pressure signature[J]. Mechanical Systems and Signal Processing, 2021, 148: 107-148.
[11]
BOMMISETTY R M, PRAKASH O, KHARE A. Keyframe extraction using Pearson correlation coefficient and color moments[J]. Multimedia Systems, 2020, 26(3): 267-299. DOI:10.1007/s00530-019-00642-8
[12]
TOSTES A I J, SILVA T H. STRIP: a short-term traffic Jam prediction based on logistic regression[C]//Proceedings of the 84th IEEE Vehicular Technology Conference. Washington D.C., USA: IEEE Press, 2016: 1-5.
[13]
NAKIK D, LOŠKOVSKA S, TRAJKOVIK V. Fully connected emergency intervention for the critical home care system[J]. Studies in Health Technology and Informatics, 2011, 165: 88-93.
[14]
ZHANG C L, WU J X. Improving CNN linear layers with power mean non-linearity[J]. Pattern Recognition, 2019, 89: 12-21. DOI:10.1016/j.patcog.2018.12.029
[15]
OOYANG W B, XU B, HOU J, et al. Fabric defect detection using activation layer embedded convolutional neural network[J]. IEEE Access, 2019, 7: 70130-70140. DOI:10.1109/ACCESS.2019.2913620
[16]
MICHAEL H, MARC D, ATSUNORI O. Feature based domain adaptation for neural network language models with Factorised hidden layers[J]. IEICE Transactions on Information and Systems, 2019, 102(3): 598-608.
[17]
LANG S, BRAVO-MAROUEZ F, BECKHAM C. WekaDeeplearning4j: a deep learning package for Weka based on deeplearning4j[J]. Knowl-Based Systems, 2019, 178: 48-50. DOI:10.1016/j.knosys.2019.04.013
[18]
DEDETURK B K, AKAY B. Spam filtering using a logistic regression model trained by an artificial bee colony algorithm[J]. Applied Soft Computing, 2020, 91: 106-129.
[19]
CHAO T Y, JUNG C L, ENDAH K. NetFlow monitoring and cyberattack detection using deep learning with Ceph[J]. IEEE Access, 2020, 8: 7842-7850. DOI:10.1109/ACCESS.2019.2963716
[20]
WANG J, ZHAO K, CHENG Y. Facial expression recognition based on convolutional neural network with occlusion perception[J/OL]. Computer Engineering: 1-11[2020-08-10]. https://doi:10.19678/j.issn.1000-3428.0059166. (in Chinese)
王军, 赵凯, 程勇. 基于遮挡感知卷积神经网络的面部表情识别方法[J/OL]. 计算机工程: 1-11[2020-08-10]. https://doi:10.19678/j.issn.1000-3428.0059166.