APP下载

基于简单统计特征的LDoS 攻击检测方法

2023-01-08段雪源付钰王坤李彬

通信学报 2022年11期
关键词:数据包重构流量

段雪源,付钰,王坤,4,李彬

(1.海军工程大学信息安全系,湖北 武汉 430033;2.信阳师范学院计算机与信息技术学院,河南 信阳 464000;3.信阳师范学院河南省教育大数据分析与应用重点实验室,河南 信阳 464000;4.信阳职业技术学院数学与信息工程学院,河南 信阳 464000)

0 引言

由于互联网协议和服务的开放性,各种网络入侵攻击行为从未间断,在众多威胁中,低速率拒绝服务(LDoS,low-rate denial of service)攻击由于其巨大的破坏力和良好的隐蔽性,被网络犯罪分子和黑产业链运营商广泛使用。不同于传统的泛洪式拒绝服务攻击,LDoS 攻击主要针对传输层、网络层或应用层的协议漏洞,利用较少的攻击流量使系统或网络服务质量下降[1]。例如,针对传输控制协议(TCP,transmission control protocol)超时重传机制的LDoS 攻击主要通过向瓶颈链路中发送短促高速的攻击脉冲,触发大量数据包丢失,迫使网络启动超时重传机制,造成大量无用数据流耗尽网络带宽。针对应用层的LDoS 攻击则是利用HTTP 的连接保持机制,通过向服务器发送多个连接请求,耗尽服务器的可分配资源,使正常请求无法得到响应。可以看出,LDoS 攻击的本质就是利用系统的自适应机制,通过短促的高速脉冲数据流攻击关键链路或端系统,使其因过载而无法对外提供正常服务。

通常,单独LDoS 攻击流形式上都是合法的网络流量,表现出与正常流量相同的基本特征,且发送的数据包数量少、平均速率低,一般仅为正常数据流的10%~20%[2],经常被淹没在正常流量中,能够穿越普通防火墙,传统的针对DoS 攻击的检测方法并不适用于检测LDoS 攻击。一直以来,研究人员尝试将小波变换分析、频谱分析、统计分析、信息度量分析等技术引入检测攻击工作中,但提出的检测方法大多依赖特征工程,检测效果受制于研究人员的专业素质和工作经验[3-4]。

深度学习利用神经网络从原始数据中自主地学习数据高层次的特征信息并用于进一步的分类,是解决传统检测方法特征依赖的有效手段。其中,长短期记忆(LSTM,long short-term memory)网络是基于“门”设计的改进型循环神经网络,不仅能捕捉数据序列的时间关联性,还可缓解普通循环神经网络的长时依赖问题,在语音识别、自然语言处理、网络流量异常检测等领域应用广泛。生成式对抗网络(GAN,generative adversarial network)是基于零和博弈思想构建的生成式模型,对异构数据具有较强的适应性,由生成器和判别器2 个部分组成,其中,生成器通过学习输入样本的分布来生成同分布的相似样本;判别器通过计算判别误差来区分输入样本是真实样本还是生成样本。在序列数据异常检测领域,可利用判别误差来区分输入样本是正常样本还是异常样本。虽然深度学习有着强大的表征能力,但需要足够的样本进行训练才能完成建模[5-6]。当前的检测方法大多是流级别的,需要跟踪分析流内的多个数据包,会消耗大量的计算资源。另外,实验数据大多来源于公开数据集或仿真平台,存在攻击场景过时、通信量不完整、流量背景单一等缺陷。

针对上述问题,本文提出一种基于简单统计特征的LDoS 攻击检测方法。利用流量采集工具,从真实网络环境中获取流量数据,以流量中数据包大小和到达时间间隔为特征构造检测数据序列,利用神经网络学习正常流量数据的特征分布,能够对正常数据序列进行较好的重构;当待检测数据序列为攻击流时,重构数据与输入数据将会出现较大重构误差,当重构误差超过阈值时则判定为攻击,并输出判定结果,实现从原始流量输入到检测结果输出的端到端检测模式。

1 相关工作

2001 年,ASTA Network 公司在Internet 2 的主干网上首次发现 LDoS 攻击流量;2005 年,Kuzmanovic 等[7]展示了一种恶意利用TCP 超时重传机制的低速率TCP 定向DoS 攻击,人们才对LDoS攻击有了更加清晰的认识。自此,研究人员开始研究检测LDoS 攻击的有效方法,根据攻击流的脉冲周期性特征以及被攻击网络的波动性表现,这些检测方法可归纳为基于流量特征、基于信号分析、基于机器学习和基于深度学习这4 类,如图1 所示。

图1 LDoS 攻击的检测方法

基于流量特征的检测方法通常是利用被攻击网络中流量的异常波动性特征进行检测,这些特征包括从网络流中提取的队列长度、连接持续时间、数据包编号、数据包间隔、数据包大小和ACK 序列号等信息[8]。流是指具有相同五元组(源IP、目标IP、源端口、目标端口以及传统层协议)的所有报文[9]。吴志军等[10]将网络中的实际网络带宽占用率、小分组比例、分组丢失率这3 个特征组成联合特征输入反向传播神经网络分类器进行LDoS 攻击检测,在仿真平台和试验网络中验证了方法的有效性。Wu 等[11]提出基于LDoS 攻击流量的多重分形特征[12]的检测算法,利用HÖlder 指数估计LDoS 攻击下流量的奇异性和突发性,取得的实验结果与理论预测相符。Zhang 等[13]根据网络拥塞期间正常TCP流发送的数据包少,而攻击流发送的数据包多的现象,提出基于正常数据包数量与数据包总量比的LDoS 攻击检测与过滤方法,通过分析路由器中的数据,验证了方法的可行性。然而,这些基于流量特征的检测方法普遍存在2 个不足,一是研究所用数据大多是在模拟环境中生成的,缺乏真实网络背景;二是网络流特征的设计需要人工完成,提取时需要非常大的计算开销,且时间消耗较长,适合处理离线数据,很难实现在线的LDoS 攻击检测[14]。

相关实验说明了利用信号分析方法检测网络中LDoS 攻击流的可行性。杜臻等[15]使用小波分析提取流量数据的多样性特征,利用支持向量机(SVM,support vector machine)完成混合流量中的异常分离。Agrawal 等[16]使用功率谱密度方法识别云环境中的低速LDoS 攻击,通过傅里叶变换,将持续收集到的流量数据变换为频谱序列,并计算功率谱密度值,将功率谱密度集中在低频段的部分判定为攻击。Brynielsson 等[17]根据HTTP 中的持续连接特性,实现了利用谱分析方法检测针对应用层HTTP 服务的LDoS 攻击。虽然这些频域分析法对LDoS 攻击的检测是有效的,但信号转换会引起巨大的额外开销,并且可能会产生较高的误警率和漏检率。在时域方面,Wu 等[18]结合Hilbert 谱和Pearson 相关系数,利用小尺度检测窗口实现对LDoS 攻击包的检测。Swami 等[19]提出一种基于高级熵的自适应检测方法,实现了对未知攻击的检测。尽管这些方法简单且检测精度较高,但要求被检测数据在时域上的波动不能过大,否则检测性能严重下降,这显然与真实网络情况不符。

基于机器学习的检测方法通常与其他算法结合使用,Zhang 等[20]将主成分分析(PCA,principal component analysis)与SVM 模型相结合,利用PCA过滤掉噪声干扰并提取TCP 流的主要特征,作为SVM 模型的输入来检测LDoS 攻击。Yan 等[21]提取TCP 流量的平均值、方差和熵等特征来训练改进的逻辑回归模型,以检测LDoS 攻击。Pérez-Díaz 等[22]提出了用于检测软件定义网络(SDN,software defined network)环境中LDoS 攻击的框架,该框架有助于实现各种机器学习模型,如决策树、代表树、随机树、随机森林、多层感知器(MLP,multilayer perceptron)和SVM 等对LDoS 攻击的检测,但是该方法的误报率较高。Tang 等[23]提出了将网络流量特征集构建技术与改进的自适应增强(Adaboost,adaptive boosting)分类算法相结合的多特征自适应增强(MF-Adaboost,multi-feature Adaboost)算法,通过提取网络流量数据中最有用的信息,减小数据规模;采取最优特征选择策略,用28 个特征完成对分类器的训练;改进的Adaboost 算法可缓解样本权值不平衡问题。然而,以上基于机器学习的检测方法在特征提取上需要消耗较多的计算资源,特征设计依赖人工经验,并且对未知特征的攻击缺乏有效的检测能力。

基于深度学习的检测方法通常以原始流量为输入,经简单预处理后,利用深度学习的强大表征能力,提取样本数据的特征信息,进而完成流量的分类,实现端到端的检测模式。按照所用的神经网络结构类型,可分为单结构模型检测方法和复合结构模型检测方法。单结构模型检测方法是一种以神经网络结构为模型基本架构的检测方法,例如,Ilango 等[24]提出基于前馈卷积神经网络(FF-CNN,feedforward-convolutional neural network)的异常检测方法,用于检测物联网SDN 中的LDoS 攻击,在公开数据集上取得了不错的检测效果。Tang 等[25]提出的多特征融合卷积神经网络(MF-CNN,multi-feature fusion-convolutional neural network)检测模型也是利用卷积神经网络区分网络特征映射之间的差别,以检测出哪些特征映射包含LDoS 攻击。Agarwal 等[26]利用LSTM 网络模型定期学习Web 服务器日志并对网站的访问情况进行预测,实现对欺诈型LDoS 攻击的检测。单结构模型虽然可以检测出LDoS 攻击,但是存在2 个不足,一是需要大量样本进行训练,且模型缺少指导,在训练初期较困难;二是对异构数据适应能力较差,模型的泛化能力弱。因此,研究人员更多地使用复合结构模型,即由2 种以上神经网络构建的检测模型,合理的组合设计可以发挥不同结构神经网络的优势,克服单结构模型自身的不足。Xu 等[27]提出将一维卷积神经网络与双向循环神经网络结合的LDoS 攻击检测模型,先用卷积模块提取归一化预处理后的信号特征,再用双向循环神经网络估计信号中包含LDoS 攻击的概率值,实现对LDoS 攻击的检测。Chen 等[28]设计的DAEMON 在线检测模型是将变分自编码网络与GAN 相结合,利用变分自编码网络对异构数据的适应性,同时作为GAN 的生成器指导训练,克服GAN 在训练初期难以收敛的不足。然而当前基于深度学习的检测方法大多是“流级别”的,即以整个网络流为检测对象,需要对流内的每个数据包进行跟踪与分析,计算开销大、时延较长,并且难以完成实时在线检测。另外,检测时需要分析出完整数据流的相关信息才能得到最终的检测结果,不具备对LDoS 攻击的早期发现能力。

2 网络流量获取

2.1 正常流量的采集

为获得真实流量数据,本文使用支持Wireshark软件的高性能流量数据采集系统平台,抓取流经Web 服务器的所有流量。为获得大量普通用户访问服务器产生的流量,本文选择某校园的Web 站点作为正常流量的来源。图2 是经过简化后的正常流量采集网络拓扑结构,交换机设置校园网络Web 服务器端口的镜像端口,流量采集系统从该镜像端口抓取服务器对外交互的所有上下行流量数据。

图2 正常流量采集网络拓扑结构

本文实验从采集的流量数据中选取连续600 min没有发生网络异常的数据作为正常流量样本,因为该采集时段网络能够正常提供服务,表明网络中没有明显异常,已经排除拒绝服务攻击的可能,或有少量其他攻击,但对LDoS 攻击检测影响基本可以忽略。

2.2 异常流量的采集

为了不影响网络的正常运行,攻击流量不能在实际的Web 服务器网络中传输,只能通过隔离网络生成与采集,因此,本文单独设计了采集攻击流量的局域网。该局域网由一个流量采集系统、5 台计算机主机以及相应的网络连接设备组成,其中4 台主机安装Linux 系统,一台主机安装Windows 系统,其拓扑结构如图3 所示。其中,一台Linux 主机运行OpenSwitch 作为OpenFlow 交换机,运行Pox controller 作为OpenFlow 控制器以创建SDN 环境;南向接口是带宽为1 Gbit/s 的TCP 通道,OpenFlow v1.3 协议用于交换机和控制器之间的通信。一台Linux 主机作为单独的Web 服务器,是校园Web 服务器的镜像网站。一台Linux 主机作为普通客户端,运行良性程序对Web 服务器进行正常访问。一台Linux 主机提供运行低速攻击程序的Linux 环境、一台 Windows 主机提供运行低速攻击程序的Windows 环境,它们按计划运行不同的攻击程序对Web 服务器进行LDoS 攻击。客户端和服务器通过千兆网卡与OpenFlow 交换机连接。

图3 采集攻击流量的局域网拓扑结构

攻击流量由各攻击主机上运行的攻击程序生成,攻击流量种类包括各种TCP 同步序列编号(SYN,synchronize sequence number)低速率攻击、HTTP 慢速读取攻击等。为了实现在短时间间隔内的SYN 低速率攻击,设计了每次攻击50 s,然后休眠100 s,且攻击只发生在每秒的前0.1 s 内的攻击模式。每类攻击程序净运行时间为60 min(不含休眠时间)。图4 为攻击程序运行周期示意。

图4 攻击程序运行周期示意

需要说明的是,Slowhttptest 程序为慢速读取攻击,没有使用脉冲成形攻击。从采集的流量中剔除休眠时间的数据,即可得到6 种不同的以正常流量为背景的攻击流量,时长均为60 min 无背景的纯攻击流量,本文设计的攻击流虽然复杂、检测难度大,但更接近真实网络环境中的流量模式。

3 特征选取与数据设计

3.1 特征选取

使用CICFlowMeter 工具从采集到的流量文件中提取每个TCP 流或用户数据报协议(UDP,user datagram protocol)流中数据包的特征信息,大约可提取80 个流量的统计特征,不同协议解析出的结果略有差异。利用sklearn 中的随机森林回归算法,计算每个特征在该流中的重要性,图5 和图6 分别显示了正常流量和攻击流量中6 个主要特征对其他特征的影响力指数,数值越大,特征越重要。

图5 正常流量主要特征影响力指数

图6 攻击流量主要特征影响力指数

从图5 中可以发现,前向数据包长度标准差和数据包长度标准差是正常流量最显著的特征。不同于LDoS 攻击流,正常流量是由正常的网络用户与服务器交互产生的,由于用户需求的多样性以及访问的随机性,生成的数据包大小是随机的且差异性较大。攻击流的数据包是由程序产生的,通常具有固定大小且小于正常数据包。从图6 中可以看出,相邻数据包时间间隔的信息,包括前向相邻数据包时间间隔标准差和相邻数据包最小时间间隔在攻击流的特征中较重要,原因是LDoS 攻击在向被攻击者发送数据包时表现为突发行为,而正常流量通常不具备这种突发性;另外,这种突发行为会影响数据包的到达率和相邻数据包的时间间隔相关特征。

因此,可以确定前向数据包长度标准差和前向相邻数据包时间间隔标准差是区分正常流量和攻击流量的2 个重要特征。然而,攻击检测除了关注检测的准确率外,检测的及时性也是需要特别注重的。而前向数据包长度标准差和数据包长度标准差这类特征值需要检测完整的TCP 流或UDP 流才能得出,前向相邻数据包时间间隔标准差特征也存在相同情况。因此,要想实现早期检测就不能直接用它们的标准差作为检测的特征。根据文献[8,29]的研究结果可以发现,流内前2 s 内的数据包大小和到达的时间间隔对检测DoS 攻击非常重要。因此,本文尝试利用流中前若干个时间步内到达的数据包大小和时间间隔作为特征,构造出由2 个统计特征组成的检测序列数据集,因此,数据集的单个样本可表示为

其中,为第i个样本中第j个数据包与第j-1 个数据包到达的时间间隔,为第j个数据包的大小。每个数据包到达都是一个时间步。

3.2 数据设计

为减少运算开支,将数据流按每10 s 切分出一个流片段,那么600 min 的正常流量数据可得到3 600 段正常流片段,利用CapAnalysis 网络数据包分析工具提取本文所需要的特征数据,并标注为正常样本。用同样的方法处理各攻击流,每种攻击流量可切分出360 段流片段,标注为异常样本。另外,为了便于汇总最终的检测结果,将正常样本和异常样本中的每个流片段添加唯一标志符。使用正常流量数据进行训练和验证,因此随机抽取30%的正常流片段作为训练集,再抽取30%作为验证集,剩余的40%作为测试集。为构造不同的测试数据集,每次取一种攻击流片段随机插入正常流片段中,得到6 种合成流量测试数据集,每种攻击流量的检测集包含时长为300 min 的1 800 段流片段,其中,正常流片段为1 440 段,攻击流片段为360 段。考虑到现实网络中攻击流量的多样性,需要包含多种攻击流的测试数据检验所提方法对复杂攻击的检测能力。因此,从6 种攻击流量中各随机抽取120 段攻击流片段随机插入正常流量中,即可生成一个包含6 种攻击流量的“All-United”合成流量集,该流量集共包含时长为360 min 的2 160 段流片段,其中正常流片段为1 440 段,攻击流片段为720 段。表1 展示了各合成流量测试数据集信息。

表1 各合成流量测试数据集信息

4 LDoS 攻击检测模型

网络流量作为时间序列数据记录了网络状态的变化情况,循环神经网络适用于处理序列数据,LSTM 网络弥补了普通循环神经网络梯度消失、长期记忆不足等问题,能够挖掘序列数据的时间相关性。GAN 是生成式模型,可以生成与输入数据同分布的更多样本,这一特性能缓解样本数量不足的问题,同时GAN 对异构数据有较强适应性,能提升模型的泛化能力,但普通GAN 的生成器经常会遇到因缺少编码指导在初期难以训练的问题。因此,本文设计出以LSTM 为GAN 的生成器的流量数据重构器(LSTM-GAN),由LSTM 作为生成器学习输入样本的空间分布并生成重构样本输入判别器,判别器将重构样本与输入样本之间的差异反馈给生成器,指导生成器更新参数完成训练。

利用正常流量训练出LSTM-GAN 学习到正常流量的数据特征,能够重构出与输入正常流量类似的流量模式。当输入的待检测数据为攻击流时,LSTM-GAN 则不能对其进行有效的重构,生成的重构样本与输入样本间存在较大的误差,该误差可作为攻击判定的依据。图7 展示了基于LSTM-GAN重构器的LDoS 攻击检测的整体功能架构,包括数据准备、数据重构、攻击判定3 个功能模块。当从现实网络中采集网络流量后,经过预处理提取流量的简单统计特征构造为检测数据;待检测数据样本输入训练好的LSTM-GAN 中,LSTM 自编码器(生成器)对其进行编码和解码后生成重构样本,判别器计算重构样本与检测样本之间的重构误差;攻击判定模块将此重构误差与判定阈值进行比较,如果重构误差超过判定阈值,则判定检测样本对应的网络流量为LDoS 攻击流。

图7 基于LSTM-GAN 重构器的LDoS 攻击检测的整体功能架构

4.1 数据准备模块

数据准备模块由流量获取和数据预处理2 模块组成,主要完成从网络接口处抓取流量数据,并按3.1 节中特征选取的方法进行相应格式转换和特征提取等操作,生成下一步检测所需的数据序列。通过实验发现,16 个时间步足以跨越数据流的前2 s,因此只需研究网络流片段中前16 个数据包的信息,即模型的输入数据是一个包含16 个时间步的包大小和到达时间间隔信息的2 维数组。

4.2 数据重构模块

数据重构模块主要是以LSTM自编码器为生成器的GAN 构成的LSTM-GAN 流量数据重构器。LSTM 自编码器(生成器)将输入流量样本映射到潜在特征空间并在该空间中完成样本的重构,为充分学习流数据的特征信息,在编码器与解码器中间设置了信道增强层。判别器用来指导生成器进行训练,计算出重构器在稳态下的重构误差并将其作为检测攻击的门限。

LSTM 自编码器各层的功能如下。

1) 编码器

第1 层,LSTM(32),读取输入数据并输出32 个特征,每个特征有16 个时间步。

第2 层,LSTM(8),从第1 层获取16×32 的输入,并将特征大小减少到8,输出一个大小为1×8的特征矩阵。

第3 层,信道增强层(16),将1×8 的特征矩阵复制15 次,形成16×8 的2 维矩阵作为解码器层的输入,可为解码器提供更加丰富的特征表示,是编码器和解码器之间的桥梁。

2) 解码器

解码器按与编码器相反的顺序搭建第4 层LSTM(8)和第5 层LSTM(32),它们分别是第2 层和第1 层的镜像。

第6 层是全连接层,对第5 层的输出与其内部向量进行矩阵乘,最终生成16×2 的输出向量。

其中,xi为输入LSTM-GAN 的预处理后数据,G(xi)为经LSTM自编码器编码、解码后输出的重构数据。LSTM-GAN 模型利用随机梯度下降法训练,选用RMSProp 优化算法,其训练算法如算法1 所示。

算法1LSTM-GAN 重构器训练算法

输入检测数据X,完整训练次数epochs,批大小batch size,学习率α

输出模型参数θ

重构误差会随着训练次数的增多而减小,LSTMGAN 重构器最终达到一种稳定状态,额外的训练不会减少重构误差。利用验证集计算LSTM-GAN 重构器在稳定状态下的重构误差,计算区分正常流量或攻击流量的门限标准,即异常判定的阈值。参照“3σ”准则,将阈值设置为所有验证集样本重构误差均值加3 个标准差,则异常检测阈值可表示为

其中,μ为训练好的LSTM-GAN 计算出的验证集中所有样本重构误差的平均值,σ为标准差。

4.3 攻击判定模块

由于使用正常流量数据建模,LSTM-GAN 重构器可学习到正常流的特征分布,能够很好地完成对正常流的重构。当输入攻击流时,因为攻击流偏离了正常TCP 流的特征,重构器不能对其有效重构,生成的重构序列与原始输入存在较大的偏差,判别器计算出的重构误差将会偏大。攻击判定模块将每个输入样本的重构误差与阈值比较,如果重构误差大于阈值则判定为攻击,反之则判定为正常流。

5 实验结果及分析

5.1 实验设置

本文实验环境配置的使用的硬件为 Core i9-12900F、128 GB RAM(DDR5)、NVIDIA RTX3090,使用的软件为 Ubuntu 18.04LTS、CUDA11.2、Pytorch1.8。

5.2 LSTM-GAN 模型训练

在进行检测之前,需要利用训练集中的样本数据对LSTM-GAN 模型进行充分训练,直到达到最大训练次数或设置的停止训练阈值。图8 展示了LSTM-GAN 迭代训练损失函数值。从图8 可以看出,在前30 次迭代训练时,损失函数值振荡减小;当迭代70 次后,损失函数值趋于稳定。为保险起见,在实验中将最大迭代次数设置为80。

图8 LSTM-GAN 迭代训练损失函数值

模型的其他超参数根据经验与实验调试设定,表2 为LSTM-GAN 模型超参数的取值。

表2 LSTM-GAN 模型超参数的取值

5.3 评价指标

基于LSTM-GAN 重构器的LDoS 攻击检测方法的目的是从待检测流量中发现攻击流量,并不关注攻击发起的阶段和类型,因此,检测的最终目标可转换为二分类问题。将正常流量定义为负样例,攻击流量定义为正样例,使用准确率(Accuracy)、精确率(Precision)、召回率(Recall)、误警率(FPR,false positive rate)以及F1 值这5 项指标作为评价模型检测性能的主要依据。

5.4 实验结果与分析

5.4.1 本文数据集的实验结果

本文数据集上的检测实验分为2 个阶段,第一阶段是单独对各攻击流量进行检测,得到LSTM-GAN模型对每种LDoS 攻击的检测能力;第二阶段是对由多种攻击流量组成的All-United 数据集进行测试,测试模型对复杂攻击的检测性能。另外,为评估模型检测能力,本文将其与经典LDoS 攻击检测方法的检测结果进行比较。

1) 单一攻击检测实验

第一阶段中,利用验证集数据求出训练好的模型在稳态下所有样本重构误差的均值,并加上3 个标准差作为误差判定的阈值。由于随机划分的验证集可能出现类别失衡,从而导致计算出的阈值出现偏差,因此采用5 折交叉计算的方式,将验证集划分为5 份,每次取其中4 份进行计算,将5 次计算得到的阈值的平均值作为攻击检测的最终阈值。另外,为排除运算时可能出现的偶然性因素,模型对每种LDoS 攻击的测试集进行5 次检测,以评价指标的平均值作为最终检测结果。表 3 展示了LSTM-GAN 模型对单一攻击的检测性能。从表3可以看出,LSTM-GAN 对各攻击流量检测的召回率均达到93%以上。对Pwnloris 攻击的检测指标最好,可能是由于Pwnloris 是Slowloris 的升级版,低速率攻击的特征更加明显。其次对Hping 攻击的检测性能也很好,原因是Hping 程序本来是用于泛洪式的DDoS 攻击,在本文实验中,为了低速攻击的效果,Hping 被设置为仅在每秒的前0.1 s 的时间间隔内生成攻击,且数据包大小为定值,这使Hping 攻击流具有显著的周期性和突发性特征,因此更加容易被检测出。Slowhttptest 攻击的检测效果相对略差的原因是Slowhttptest 程序生成的是慢速读取攻击流量,时间跨度比较大,而本文选择的数据为每10 s 流片段中前16 个时间步的特征,可能出现了选取的某些数据刚好处理Slowhttptest 攻击流量的“静默期”,从而没有形成明显的数据特征,对检测造成不利影响。虽然最高误警率达到4.86%,但平均误警率为2.93%,这在以安全告警为目标的检测设计中是可以接受的。

表3 LSTM-GAN 模型对单一攻击的检测性能

2) 复杂攻击检测实验

第一阶段的实验表明LSTM-GAN 模型对单一攻击流量的检测性能表现良好,为了测试模型应对复杂攻击的能力,第二阶段将在包含多种复杂攻击流量的All-United 数据集中进行实验。因为整体数据量不大,采用“留一法”进行检测,将测试集数据随机分成10 份,每次选取9 份参与运算,最终结果取10 次运算结果的平均值,如图9 所示,平均准确率为0.949 9、平均召回率为0.942 8、平均精确率为0.910 3、平均误警率为0.046 6、平均F1值为0.926 2。对比单独攻击流检测的整体性能,准确率和召回率略有下降,精确率提升明显,F1 值有所提升,误警率也有所上升。原因可能是All-United数据集中异常样本比单一攻击数据集中异常样本的占比高,数据集中正负样本数量更加趋于均衡,使检测结果也更加合理平稳,这从F1 值的提升可以看出。

图9 LSTM-GAN 对复杂攻击的检测指标

在攻击检测任务中,研究人员更加关注攻击的召回率,LSTM-GAN 对单一攻击的召回率均超过了93%,对复杂攻击的召回率也达到了94.28%,因此LSTM-GAN 模型无论是对单一种类的攻击还是复杂攻击的检测都能取得较好的检测效果。

由于检测中只需用到流片段中的前16 个数据包的2 项统计特征,即每个检测样本只需经过16 个时间步就能得到,而本文的设备每分钟可以从原始的.pcap 文件中解析出数千条网络流信息,即检测所需的特征数据能够实时生成。另外,特征提取和攻击检测分属2 个模块,可以并行处理,因此相对于传统需要分析流内大量数据包信息的检测方法,本文所提的检测方法具有早期检测的能力。

表4 为LSTM-GAN 完成每种攻击检测的时间消耗。从表4 可以看出,对每个数据集检测一次的时间消耗约为1 s,对单样本的检测时间达到毫秒级,这样的检测速率可以满足在线检测的时间需求。

表4 LSTM-GAN 完成每种攻击检测的时间消耗

3) 与其他检测方法的比较

本节将本文方法与几种不同类型的典型检测方法进行了比较,包括基于联合特征的检测方法[10],PCA 与SVM 相结合的方法PCA-SVM[20],SDN框架下的多层感知器方法SDN-MLP[22],基于多特征自适应增强方法MF-Adaboost[23],以及前馈卷积神经网络方法FF-CNN[24]共5 种检测方法。表5展示了各检测方法的实验数据、数据来源及检测性能指标等信息。

表5 各检测方法的实验数据、数据来源及检测性能指标

由表5 可知,虽然LSTM-GAN 方法的召回率最低,但是本文设计的攻击模式为每次攻击持续50 s、休眠100 s,然后按此周期进行攻击和休眠,即每次攻击流的持续时间为50 s。实验中以每10 s 划分1 个流片段,每个攻击流可划分为5 个流片段,这5 个流片段中只要有1 个流片段被检测出来,就可认为这次的攻击被检测出,因此LSTM-GAN 对攻击流的召回率是大于0.999 9 的。另外,LSTM-GAN 取得0.046 6 的误报率。在攻击检测任务中,人们更加关注对攻击的召回率,对误报率会有一定的容忍度,因此,LSTM-GAN 的检测性能总体上优于其他几种方法。

5.4.2 其他数据集的实验结果

为了验证本文所提方法对异构网络流量数据的泛化能力,分别在ISCX2016、CICIDS2018、CICDDoS2019、DARPA2000、UTSA2021 这5 个公开数据集上进行检验。

由于本文方法用于检测传输层和应用层的LDoS 攻击,因此在进行实验前,需要对各数据集进行处理,提取DoS 攻击流数据,再用分析工具提取检测所需的数据信息。需要说明的是,对于已经被 CICFlowMeter 处理过的数据集,如CICDDoS2019 数据集的80 维特征属性值是不能直接使用的,需要进行一定的等价变换。用流的统计信息代替数据包的统计信息,即用流中前向数据包的平均值代替数据包大小,用前向数据包时间间隔的平均值代替数据包时间间隔,这样将连续16 个流的特征数据构造为一个数据样本,正常流量集和攻击流量集均按此方法构造。例如,利用CICDDoS2019 数据集构造的攻击流量样本和正常流量样本形式分别为

由于各数据集网络配置环境具有较大的差异性,因此在进行检测前,先使用各数据集中的部分正常样本对模型LSTM-GAN 进行训练。并计算出异常判定的阈值,再使用测试数据进行实验。LSTM-GAN 模型在各数据集中的检测性能如图10所示。

图10 LSTM-GAN 模型在各数据集中的检测性能

从图10 可以看出,LSTM-GAN 方法在几个数据集上的检测召回率都大于90%,其中,在CICIDS2018、CICDDoS2019、DARPA2000 数据集上的召回率超过 95%,其原因可能是CICDDoS2019,DARPA2000 这2 个数据集中的攻击流量为DoS 或者DDoS 攻击,比LDoS 的包间隔和包大小具有更加明显的统计特征,构造出的检测数据可以被轻松识别。而CICIDS2018 构造出的攻击样本中包大小和时间间隔都几乎完全相同,所以攻击样本更容易被检测出。在UTSA2021 数据集中,本文选用的是攻击峰值为50 rad/s 的子数据集Syn50,相比从更高攻击速率的数据集中检测攻击特征更加具有挑战性,然而93.27%的召回率也是个不错的成绩。在ISCX2016数据集的召回率相对较低(90.73%),这是由于攻击样本与正常样本的生成网络环境不同,因此在利用正常样本训练出的LSTM-GAN 模型更加粗犷,难以发现统计特征中微小的变化。LSTM-GAN模型在ISCX2016、CICDDoS2019、DARPA2000数据集上的精确率没有取得召回率那样优异的成绩,原因是本文选用的特征向量相对较少,需要训练的参数相对于大型深度网络模型要少得多,在训练样本相对充足的情况下,模型出现了过拟合的问题。这使模型在判定正常流量时标准更加“苛刻”,以至于部分正常样本被误认为攻击样本。但总体来说,LSTM-GAN 能够在6 个数据集上表现出较强的泛化能力,即便是在ISCX2016 数据集上召回率也超过了 90%,说明本文设计的LSTM-GAN 方法可以很好地发现异构网络环境中的攻击行为。

6 结束语

针对传统的LDoS 攻击流量检测方法需要跟踪提取网络中大量数据包特征,消耗资源大,难以满足实时在线检测需求,以及实验环境与现实网络环境差异过大的问题,本文提出以真实网络流量为背景,基于网络流量简单统计特征的LDoS 攻击检测方法(LSTM-GAN),只选用网络流量片段中前16 个数据包的大小及到达时间间隔作为特征数据,利用正常流量特征数据对LSTM-GAN 模型建模,使LSTM-GAN 学习到正常流量特征的空间分布,根据重构序列与输入数据的重构误差进行攻击判定。

实验结果表明,所提方法能够对真实网络环境中获取的流量数据进行简单统计特征提取,并准确地检测出流片段中包含的多种LDoS 攻击行为产生的异常流;以流片段为检测对象,比以整个数据流为目标的检测方法更加具备早期发现攻击的优势。另外,实验环境虽然是以校园网的Web 服务器为背景,由于特征数据只需网络流量中部分数据包的大小和到达时间间隔的统计信息,不需要人工刻意设计复杂特征,更不用分析流量具体内容,因此,本文方法原则上也可以用于其他针对HTTP 服务器或HTTPS 服务器的LDoS 攻击的检测。

猜你喜欢

数据包重构流量
冰墩墩背后的流量密码
视频压缩感知采样率自适应的帧间片匹配重构
二维隐蔽时间信道构建的研究*
长城叙事的重构
张晓明:流量决定胜负!三大流量高地裂变无限可能!
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
高盐肥胖心肌重构防治有新策略
寻找书业新流量
C#串口高效可靠的接收方案设计
北京的重构与再造