基于深度学习的网络流时空特征自动提取方法

2020-06-03 02:31黄璇丽李成明姜青山
集成技术 2020年2期
关键词:网络流量字节数据包

黄璇丽 李成明 姜青山

1(中国科学院深圳先进技术研究院 深圳 518055)

2(中国科学院大学深圳先进技术学院 深圳 518055)

1 引 言

网络入侵检测系统(Network-based Intrusion Detection System,NIDS)相关技术在万物互联的时代是不可或缺的,也是网络信息安全中一个重要的研究领域。入侵检测系统包括主机入侵检测系统和网络入侵检测系统。其中,网络入侵检测系统通过对网络上的流量进行监控,并实时对异常流量发出预警,从而提高网络的安全性[1]。

网络流量分析是网络异常检测的重要方法,传统的检测方法包含基于规则和基于特征工程的方法[2]。其中,基于规则的检测方法需要网络安全专家针对已有入侵行为,生成对应的规则进行匹配检测,不具备检测新的入侵行为的能力。基于传统机器学习的方法需要特征工程等人为地构造特征,然后训练机器学习模型,模型的效果很大程度上取决于特征工程的质量[3]。目前,深度学习已在计算机视觉、自然语言处理、推荐系统、网络流量异常检测等领域广泛应用[4-5]。然而,已有的基于深度学习网络流量异常检测方法,只是针对网络流单一的时序特征或空间特征进行了提取,缺少对网络流量时空特征的综合表示。

原始的网络流量是由按照网络协议规定格式的一串字节组成的。多个流量字节组合成一个数据包,通信双方的多个数据包则组成一个网络流[1]。其中,数据包以一个整体同时在网络上传输,故其内部的流量字节没有太多的时序关系,但字节间被认为存在着空间关系,可提取其相应的空间特征。而网络流中的每个数据包有不同的发送时间,被认为存在时序关系,可提取其相应的时序特征。因此,空间特征和时序特征是网络流量监测领域常用的两类流量特征[1-2]。

针对网络流所具有的时空特征,本文提出一种基于深度学习的网络字节流数据时空特征提取方法。其中,采用卷积神经网络结构提取网络流量的空间特征,采用循环神经网络结构提取网络流量的时序特征。本文研究的基本单元是网络流,对于原始网络轨迹流量,需将其切分为以网络流为单位的数据集。其中,每一条网络流包含一组双方通信的数据包,每个数据包包含一组字节(大小为 0~255)。实验使用的数据集是 MAWILab 网络轨迹数据集,并将原始的网络轨迹流量切分为以网络流为单位的数据集合,结合日志文件生成带标签的网络字节流数据。实验结果表明,本文所提出的网络流时空特征提取方法优于已有的深度表示学习方法。

2 网络流量检测方法研究现状

国内外研究学者对网络流量分析的问题研究了近二十年,已有许多网络入侵检测相关的研究工作[2]。入侵检测系统应用广泛,常应用于工业系统、运输系统、医疗系统和建筑系统[4-5]。根据 Ahmed 等[6]的研究成果,网络流量异常检测方法可以分为四种:基于分类、基于统计、基于聚类和基于信息论。Chalapathy 等[5]研究重点为如何使用深度学习技术进行异常检测,其中包括将深度学习技术应用到主机入侵检测和网络入侵检测中。针对现有检测方法严重依赖人工制定规则、人工收集标签的问题,Nisioti 等[7]对无监督的网络流量异常检测进行了研究。此外,由于对抗机器学习的兴起,也有一些学者将其应用到入侵检测系统攻击相关的研究工作[8-9]。网络流量检测通常划分为基于规则、基于特征工程和基于特征学习 3 种方法,如图 1 所示。

图 1 网络流量检测方法分类Fig. 1 Categories of network traffic detection techniques

基于规则的网络流量检测方法主要包括:基于 DPI(Deep Packet Inspection)和基于端口[10]。对先前的网络流量人工制定规则,通过匹配规则来检测已出现的异常。该方法只能检测已出现过的网络异常,对没有出现过的异常难以检测;同时制定规则需要很多的人力资源,人力成本极高,无法适用于当前网络的急速发展。

基于特征工程的网络流量检测方法分两步:(1)使用特征工程进行特征组合、特征选择等构造特征集;(2)基于特征集使用传统机器学习和深度学习模型进行检测。其中,常用的网络流量特征有数据包个数、网络应用层协议和网络流量长度等统计特征和类别;常用的机器学习方法有线性回归、逻辑回归、决策树、随机森林、支持向量机和多层感知机等[11]。Aygun 和 Yavuz[12]使用自动编解码器进行流量检测。基于异常检测进行入侵检测的工作也有不少,如 An 和 Cho[13]使用变分自动编码器进行异常检测;Intrator 等[14]使用多个判别器的对抗生成网络(GAN)进行异常检测;Zhou 和 Paffenroth[15]使用鲁棒深度自动编码器去噪,再进行异常检测;Zhao 等[16]和 Lin 等[17]分别采用降维和聚类等无监督方法进行入侵检测。基于特征工程的方法常用的基准数据集有 KDD99 和 NSL-KDD 等,这类方法的检测效果依赖特征工程的质量,需要人工经验和特征工程技巧,在网络互联和大数据时代无法适用。

基于深度特征学习的网络流量检测方法,需要使用深度特征学习模型进行自动地提取特征。网络检测的基本单元是网络流,而网络流量底层归根到底是一串字节。依照网络协议规定,将流量字节组合成数据包,数据包再组成网络流,其中,数据包里的字节间存在着空间关系,而网络流中的每个数据包间又存在时序关系。针对原始的网络流量,构建合适的深度特征学习模型,即可学习网络流量的时间特征和空间特征。Wang 等[18-19]使用卷积神经网络学习空间特征分别进行加密流量分类和恶意流量分类相关的流量检测研究;Mirza 等[20]和 Shiravi 等[21]对原始流量数据 ISCX IDS 2012,建立循环神经网络进行特征学习以提高检测性能。

3 基于深度学习的网络字节流时空特征提取方法

基于深度特征学习的网络流量检测方法通过深度特征学习模型进行自动地提取特征,再使用提取的特征进行检测。基于深度学习的特征提取方法主要包括卷积神经网络结构和循环神经网络结构,可有效提取网络流量时空特征。

3.1 网络流

按照网络协议的规定,多个字节组成数据包,通信双方的数据包组成网络流,网络流携带着数据在不同的计算机之间传输,字节就是网络流量的原始形态。网络流(flow)、数据包(packet)和字节(byte)数据的层次关系如图 2 所示。

图 2 网络流的层次关系图Fig. 2 The hierarchy of network traffic flow

原始的网络轨迹是由一串字节组成的,网络流是网络流量检测的基本单位。图 3 所示为某个网络流样例:该条网络流由 30 个数据包组成,一个数据包由多个字节组成。

一个网络流样本由网络流的字节向量和标签组成,其样本集合 D 的表达如公式(1)所示。

3.2 网络流时空特征提取方法

从网络流的层次结构可知,数据包之间存在着显著的时序特征,数据包内的字节被认为存在着空间特征。因此,本文设计了如图 4 所示的特征提取方法,其中输入为网络流字节向量(flow bytes vector),包含卷积层(conv1 和 conv2)、最大池化层(maxpool1 和 maxpool2)、全连接层(Full Connection,FC)、长短期记忆(Long-Short Term Memory,LSTM)和 softmax 层,其主要的流程分为以下 3 步。

(1)网络流量空间特征学习过程:由于卷积神经网络可以学习每个数据包内的空间特征,故本文采用卷积神经网络来学习原始流量的空间特征。该网络结构使用两层卷积层和两层最大池化层,可学习到网络流量数据的局部特征,输出为空间特征表示 h1,之后将其应用于网络的深层结构以学习更多的全局特征。

(2)网络流量时序特征学习过程:对于步骤(1)中得到的空间特征表示 h1,由网络流量的内部层次结构可知存在着时序特征。本文采用一个 LSTM 网络来进一步学习原始流量的时序特征,该网络结构使用两层隐藏层,输出为时空特征表示 h2。

图 3 网络流样例图Fig. 3 Network traffic flow sample

(3)网络流量检测过程:对于经过步骤(1)和(2)得到的网络流时空特征表示 h2,设计一个全连接层和输出层,使用 softmax 分类器进行分类检测,输出网络流所属类别的预测概率。

网络流量的内部结构揭示其存在着的时序特征和空间特征。本文中,需先将原始网络流量的字节流向量变形成大小为 n×n×channels 的张量,再作为时空特征提取网络的输入。其中,channels 取 1。图 4 所示为本文方法的详细框架图。

3.2.1 空间特征提取网络结构

由于卷积神经网络具有空间特征学习的能力,常应用于计算机视觉等相关领域。现有的卷积神经网络通常包括输入层、卷积层、池化层、全连接层和输出层,其稀疏连接和参数共享的独特训练方式是该网络的最大优势[22-23]。其中,卷积层和池化层的设计极为关键,通常底层结构学习数据的局部特征,而网络的深层结构则能得学到全局特征。

本文中采用卷积神经网络结构来提取网络流量的局部空间特征。该网络结构含有两层卷积层,第一层卷积层使用 32 个卷积滤波器(大小为 5×5、步长为 1)作用于局部区域,学习局部特征。给定一个大小为 d×d×channels 的张量作为输入,得到的输出张量大小为(d-4)×(d-4)×(channels×32)。第二层卷积层使用 64 个卷积滤波器,大小为 3×3,步长为 1。给定一个大小为 d×d×channels 的张量作为输入,得到的输出张量大小为(d-2)×(d-2)×(channels×64)。

假设输入层是大小为 d×d×channels 的张量,其卷积操作如公式(2)所示。

图 4 网络字节流数据时空特征提取方法Fig.4 Spatio-temporal features extraction method for network traffic flow

3.2.2 时序特征提取网络结构

循环神经网络常用于时间序列相关的任务中,常用的变种有 LSTM 和 GRU(门控循环单元)。传统的神经网络结构是前馈的,即每一层节点之间没有联系,而循环神经网络每一层的参数是共享的,即当前层的输出不仅要考虑上一层的输出,而且还要考虑上一时刻隐藏层的输出[19,24]。因此,隐藏层更新公式如下所示:

其中,W 为 t-1 时刻到 t 时刻的参数矩阵;U 为输入层到当前层的参数矩阵,是共享的;f 为激活函数。但这种简单的循环神经网络存在梯度消失、梯度爆炸和难以训练的问题[20]。LSTM 是循环神经网络中成功的扩展之一,能有效解决以上的问题,其引入了输入门、遗忘门和输出门,还有记忆单元。LSTM 隐藏层更新公式如下所示:

4 结果分析与评估

4.1 数据集与评价指标

实验验证采用的数据集来源于 MAWILab 开放数据[25]。MAWILab 数据集每天收集日本和美国两个服务商节点之间在 14∶00—14∶15 期间 15 min 的网络流量,并提供日志文件。流量的标签有 anomalous、suspicious、notice 和 benign 四种,分别代表异常流量、可疑流量、通知过的流量和正常流量。

有许多研究者使用 MAWILab 进行网络流量检测研究,如 Kwon 等[26]通过提取 MAWILab 中网络协议等相关字段,人工构造特征后使用卷积神经网络进行检测;Siffer 等[27]使用极值理论进行检测异常流量。本文提出的是网络字节流数据时空特征提取方法,对 MAWILab 原始网络流量数据处理的流程如图 5 所示。

图 5 关于 MAWILab 网络轨迹数据的原始流量处理流程图Fig. 5 Data processing of MAWILab network traces

本文选取了 2019 年 6 月 15 天的网络流量,每天采样约 1 万条网络流,其中各类别的网络流数量如表 1 所示。对于每一天的网络流量,MAWILab 提供了 .pcap 轨迹文件、_notice.csv 和 _anomalous_suspicious.csv 日志文件[24]。由于网络检测的基本单位是网络流,需先将 .pcap 文件中的原始网络轨迹切为网络流,其中每个网络流对应一个 .pcap 文件;然后,根据源 IP、端 IP、源端口、端端口四元组(srcIP, dstIP, srcPort, dstPort),在日志文件中检索对应的标签。

表 1 MAWILab 数据集(2019 年 6 月)网络流数据描述Table 1 Description of MAWILab network traffic flows (June, 2019)

4.2 实验结果

本文使用表 1 的数据进行检测分析,实验数据的网络流长度(即特征维度)有 2 种:784 维和 1 600 维。评价指标为准确率、带权重的 F1 值、带权重的召回率和带权重的精准率。训练网络字节流时空特征提取方法时,将数据集以 8∶2 的比例划分训练集和测试集,实验展示的结果为测试集上的检测结果。

图 6 和图 7 分别是训练 10 次的损失图和效果图。从图 6 可以看出,模型是在收敛的,且在1 600 维数据上的收敛效果更好。从图 7 可以看出,随着迭代次数的增加,检测效果变好,且模型在 1 600 维数据上的表现更好,这应该是得益于 1 600 维保留的字节数比 784 维的多。

对比实验选择单一网络结构的特征提取方法,包括两层全连接的全连接网络(MLP)、卷积神经网络(CNN)和 LSTM,采用 softmax 层对得到的特征进行分类,分类结果如表 2 所示。

特征提取工作的质量无法直接进行衡量,需将提取到的特征用于相应的任务,通过任务的质量间接体现特征提取的质量。表 2 将不同特征提取的结果使用 softmax 分类器进行分类,以观察所提出方法在 784 维和 1 600 维数据上的准确率、带权重的 F1 值、带权重的召回率、带权重的精准率。可以看出,不管是在 784 维的数据上还是 1 600 维的数据上,提取网络流量空间特征的卷积网络(CNN)方法的分类结果较差,提取网络流量时间特征的 LSTM 方法的分类结果有所提升,本文方法(CNN-LSTM)的分类结果最好。该实验结果表明不同特征对网络流量检测影响不同,其中时空特征比较好,时间特征次之,空间特征比较差。

图 6 网络流检测实验损失图(10 次训练)Fig. 6 Loss graph of network detection experiments (10 trainings)

图 7 网络流检测实验效果图(10 次训练)Fig. 7 Performance of network detection experiments (10 trainings)

表 2 对比实验结果Table 2 Experimental results

4.3 讨论与分析

网络流量检测方法可划分为基于规则、基于特征工程和基于特征学习三种。常见的网络流量检测研究先是人工提取相关的特征,再进行模型训练,因此检测效果依赖特征工程等技术的特征提取质量。Kwon 等[26]提取了 MAWILab 数据集中的 29 个特征,使用深度卷积神经网络进行检测,准确率能达 67.86%;Siffer 等[27]使用极值理论进行异常检测,对 MAWILab 数据集进行流量的异常检测时,取得了 86% 的真阳率和低于 4% 的假阳率。网络流量的内部结构揭示了其具有时间和空间的特性,这两类特征也常用于网络流量检测。针对特征依赖和人工经验依赖的问题,本文提出一种基于深度学习的网络字节流时空特征提取方法。与前面方法相比,本文方法节省了人为构造和提取特征的成本,其中在 1 600 维的数据上进行实验时, 准确率达到 89.85%,比 Kwon 等[26]方法的准确率有很大的提升。

5 结 论

针对网络流量特征的自动提取需求,现有的基于规则和特征工程的方法均需人工经验和特征工程技巧,比较繁杂且人工成本高。因此,本文提出一种更自动化的特征提取方法,通过使用深度学习提取网络字节流时空特征,及在网络原始流量数据集上进行特征提取,分类实验结果显示检测结果有较大的提升。这表明本文方法能有效地缓解网络流量检测任务中对人工提取特征的依赖并提高检测准确率。此外,在 MAWILab 数据集上进行的对比实验分类结果表明,本文所提出方法优于其他基于深度学习的网络流量检测方法(如全连接网络、卷积神经网络和长短记忆网络),本文方法在 784 维和 1 600 维的数据上的准确率分别为 86.18% 和 89.85%。神经网络仍存在可解释性差的问题,未来工作可以提高神经网络在特征提取工作中的可解释性,挖掘更多有助于提高网络流量检测的特征类型。

猜你喜欢
网络流量字节数据包
基于多元高斯分布的网络流量异常识别方法
大数据驱动和分析的舰船通信网络流量智能估计
二维隐蔽时间信道构建的研究*
No.8 字节跳动将推出独立出口电商APP
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
No.10 “字节跳动手机”要来了?
C#串口高效可靠的接收方案设计
基于MSP430的四旋翼飞行器的S-BUS通信协议的设计与实现
AVB网络流量整形帧模型端到端延迟计算
3月CERNET网络流量同比略高