基于在线学习的分布式流量实时分析系统设计
2022-03-24陈纪龙张鸿宇张聪益宋子康
陈纪龙,张鸿宇,张聪益,宋子康,涂 然
(西南石油大学计算机科学学院,四川 成都 610500)
0 引言
已知的主要流量类型为正常业务流量、网络攻击流量与病毒流量。这些流量分为加密流量与未加密流量。已有的研究重点关注流量的某些局部特征,然而忽视了特征之间的交叉和时序关系,并且对加密流量是不适用的。鲁刚等利用手工特征工程对流量进行特征提取,描述特征之间的关系[1]。张伟等设计了一个恶意流量实时识别引擎,然而其识别范围仅限于传输层,具有较大的限制,且依赖于部分种类流量的专有特征,不利于推广使用[2]。 骆子铭等对加密流量和非加密流量进行了识别,但忽视了流量特征域之间的交叉和时序关系,且不利于处理高维稀疏特征[3]。
针对以上研究现状和启发,提出在系统中使用 CNN+LSTM 时空神经网络,结合在线学习技术和虚拟化,保证模型的实时推断性能和隔离容错性。这样的模型能够在准确地对流量进行分类和识别的同时,根据线上流量特性自行进行动态调整,确保模型的及时更新。
1 系统分析
1.1 数据采集与特征选取
数据集通过CyberFlood工具生成 TLS 加密与非加密的正常业务流量与网络攻击行为流量,再使用 Python 对指定的网络端口抓取流量。对于非加密流量为了使用模型精度达到最大化,直接匹配其 URL 字段用于模型训练。对于 TLS 加密流量,本系统考虑在不解密加密流量的情况下,通过获取数据流中的元数据特征,并将其导入至机器学习模型中进行识别。
1.2 数据预处理
对于加密流量,利用Python的Pandas库进一步进行处理,如对离散型特征进行one-hot编码来对每一个特征的多个可能值进行处理转变为多个二元特征,并对特征进行归一化、数值化等。
对于非加密流量,由于流量特征为URL文本格式,读取后得到的是一个文本数据,设使用正则表达式解析预处理和分词之后的流量数据为单词-文本矩阵,m条流量的URL数据对应m条文本,每条文本的向量空间为单词向量空间(word vector space),即对每一条流量 URL 文本,用一个向量表示该文本的“语义”,向量的每一维对一个单词,其数值为该单词在该文本中出现的权值[4]。数据预处理流程如图1所示。
图1 数据预处理流程
1.3 模型训练
将流量信息建模为行向量作为特征取值,列向量为不同流量的矩阵。使用CNN+LSTM时空神经网络模型[5]。CNN神经网络学习流量的空间信息,LSTM神经网络学习流量在时间方向的信息。
在将文本用TF-IDF表示后可以获得m×n矩阵,(m为流量条数,n为当前单词表示所在的向量空间维度)。对每一个n维流量向量,都定义一个从Rn到Rp的线性映射:x→Tx,完成了词嵌入。
完成词嵌入后,定义k为卷积核的大小,向量M∈Rk×p是卷积操作的卷积核,然后使M卷积核对窗口张量W(k-grams)的每一个位置j进行卷积,产生多张特征图cj∈Rm-k+1。对每一个Wj,可以将其重新以不同特征表示,即Wj=[c1c2…cq],q为卷积核个数。接着每一个Wj会被输入LSTM模型,如图2所示。
图2 CNN特征取示意图
这里采用标准LSTM架构。在每一步中,模块的输出由一系列做为旧的隐藏层的ht-1和当前时间输入xt的共同控制。模型还包括遗忘门ft,输入门it,输出门ot。这些门共同决定如何更新当前的记忆单元ct以及当前的隐藏状态ht。本文选择在CNN之上增加LSTM学习更高特征序列中的时序依赖。
将LSTM最后一步的最后一个隐藏状态输出视为流量的新的表示,添加一个softmax层,最终获得不同分类标签的预测概率值。以最小化交叉熵损失的形式训练整个模型,并使用随机梯度下降法(SGD)来学习模型参数。
采用2种手段dropout和L2权重正则化来防止模型过拟合。在模型中,将流量序列输入卷积层之前以及在将LSTM的输出传入softmax层之前,对流量向量使用dropout。L2正则化作用于softmax层的权值。
2 实验结果
2.1 评价指标
因为在实际线上环境中正常流量要远远多于恶意流量,故这是一个类别不平衡问题,评价分类器的标准包括AUC、查准率(P)、查全率(R)和综合评价(F1)。其中,查准率、查全率和综合评价代表分类器对每种类别的识别能力,AUC能反应模型对样本的排序的能力。
2.2 评测结果
从表1可以看出,模型在线下同时包括加密和非加密的流量验证集上的AUC为93.4%,查准率为91.55%,查全率为92.25%,综合评价得分为91.70%。
表1 模型在不同数据集上的效果 单位:%
3 结语
本文运用数据并行处理技术,采用Hive分布式数据库对原始流量数据进行存储。同时使用Spark批处理机制与Flink流式处理机制对流量数据进行并行处理。在模型上,使用CNN+LSTM时空神经网,其中采用CNN对流量空间特征进行提取,LSTM对流量时序特征进行提取,能完成不同种类流量的准确分类。最后在工程上结合在线学习与虚拟化技术,既能满足高实时性,同时具有高隔离性与容错性,在工业界有较高的应用价值。