https://www.sciencedirect.com/science/article/pii/S0167739X22000474
highlights
•我们设计了一种特征选择方法来选择独立和相关的特征。
•我们设计了一种方法来识别物联网和复杂的 DDoS 攻击流。
•该体系结构在有效性和效率方面优于比较方法。
摘要
分布式拒绝服务 (DDoS) 攻击仍然是对在线服务器可用性的巨大威胁。为了抵御攻击,挑战不仅在于检测发生的 DDoS 攻击,还在于识别并阻止攻击流。然而,现有的分类方法无法准确有效地区分攻击流和良性流。在本文中,我们提出了一种名为 SAFE 的 DDoS 攻击流分类系统,以准确快速地识别网络层的攻击流。首先,SAFE 通过删除冗余特征并选择信息量最大的特征来选择最佳特征。其次,提出了一种阈值调整方法来确定每个特征的最佳阈值。最后,一个聚合的基于特征的线性分类器建议对所选特征进行加权以进行分类。由于所提出的方法监控网络层的流量,因此它可以检测传统的 DDoS 攻击流量以及物联网 (IoT) 设备发起的攻击流量。对一个物联网和两个复杂的 DDoS 攻击进行了综合实验,以评估所提出方法的分类性能。比较结果表明,SAFE 在分类精度和效率方面可以取得比现有技术更好的分类性能。
引言
分布式拒绝服务 (DDoS) 攻击已对在线服务的可用性构成巨大威胁。成功的 DDoS 攻击旨在使用来自多个来源的恶意流量耗尽在线服务的资源,从而使普通用户无法访问。根据一份年度报告,近年来 DDoS 攻击的规模持续以惊人的速度增长,其中 400 Gbps 攻击现已成为家常便饭,据报道,2018 年针对北美服务提供商的最大攻击已达到 1.7 Tbps [ 1]。此外,攻击类型的复杂性,如容量、TCP 状态耗尽和应用层,探索受害者的不同漏洞使得防御变得更加困难[2]。
为了抵御 DDoS 攻击,人们提出了各种防御措施[3]、[4]、[5]、[6]、[7]、[8]、[9]。这些方法中的大多数侧重于检测攻击(例如,DDoS 攻击是否正在进行)。检测系统为DDoS攻击防御提供了基础。但受害人的保护是有限的,因为他们无法阻止攻击。要从本质上阻止 DDoS 攻击,关键挑战是区分攻击流和良性流,从而阻止攻击者的流。
已经提出了一些方法来识别攻击流[10],[11],这些方法可以分为两类:基于有效载荷检查的分类和基于机器学习的分类。有效负载检查依赖于检查数据包有效负载(例如,HTTP 消息内容[10])以获得攻击特征。然而,对于针对协议漏洞的攻击(例如 SYN 泛洪和 ICMP 泛洪),分类性能较低,因为数据包有效负载包含的信息有限。此外,该方法涉及隐私问题,因为它需要检查数据包内容,即用户的应用数据。现有的基于机器学习的方法(例如,长短期记忆(LSTM)网络[11])需要大量的特征来训练大量的参数,这非常耗时。即使模型已经离线训练,在识别阶段为每个流样本拟合大量参数仍然很昂贵,特别是当受害者遭受攻击并且计算资源有限时。
在本文中,我们不仅仅检测 DDoS 攻击是否正在进行;当攻击者执行攻击时,我们试图识别网络层的攻击流。因此,我们提出了一种DDoS攻击 流识别( SAFE )系统,可以有效且高效地识别 DDoS 攻击流。与以前的工作相比,所提出的方法提供了更精确的分类结果,并显着减少了攻击流分类的时间消耗。此外,该方法不依赖有效负载检查来获取特征,从而保护了用户的隐私。
为实现这一目标,我们需要应对以下挑战。第一个挑战是选择能够区分攻击流和良性流的信息特征。针对该问题,SAFE首先从应用、流量、TCP状态三类中提取了21个攻击流出现异常的特征。然后,采用基于相关性的方法来衡量特征之间的线性相关性,从而去除冗余特征。最后,SAFE 根据重要性对特征进行排序,并选择信息量最大的特征进行分类。
第二个挑战是为所选特征找到最佳阈值。为了应对这一挑战,我们设计了一种阈值调整方法来为每个特征搜索最佳阈值。选择的阈值可以根据输入特征最大化分类性能。
第三个挑战是流分类方法应该是轻量级的,以减少分类阶段的时间消耗。为此,我们提出了一个聚合的基于特征的线性分类器。这是通过组合所选特征的输出和特征权重来实现的。因此,不需要像 LSTM 方法[11]那样训练庞大的参数。
总而言之,我们的贡献如下:
•我们提出了一种特征选择方法来选择 DDoS 攻击流分类的特征。该方法可以通过选择独立且最相关的特征进行分类来减少特征的数量。
•我们设计 SAFE 架构来识别物联网(IoT) 和复杂的 DDoS 攻击流。首先,SAFE 部署了一种阈值调整方法来为所选特征找到最佳阈值。其次,SAFE 通过组合所选特征的输出和特征权重,采用基于聚合特征的分类方法。
•我们针对一次物联网和两次复杂的 DDoS 攻击对 SAFE 进行了全面评估。实证研究表明,SAFE 可以有效地识别少数特征内的攻击流,并且在有效性和效率方面优于比较方法。
本文的其余部分组织如下:第 2节回顾了 DDoS 攻击检测和攻击流分类方面的相关工作。第3节提出了一种基于特征选择的分类方法 。第 4节介绍了性能分析和比较实验。最后,本文在第 5节中总结。
2 . 相关工作
2.1 DDoS攻击检测
DDoS 攻击检测,如异常检测和基于机器学习的分类,已被广泛研究。异常检测旨在衡量某个特征的异常偏差,如果偏差超过阈值,则可以检测到DDoS攻击[12]。在[13]中,作者提出了一种基于广义熵的方法来检测低速率 DDoS 攻击。该方法基于正常流量和低速攻击流量的概率分布差异,当广义熵下降时将流量归类为低速攻击。作者在[7]提出了 RADAR,一种基于自适应相关分析的方法,用于检测和抑制 SYN 泛洪攻击。该方法基于异常的SYN/ACK包比分析,当SYN/ACK包比超过阈值时检测到SYN泛洪攻击。
已经提出机器学习方法来检测 DDoS 攻击。[9]中的作者提出了一种学习驱动的检测方法来检测和缓解物联网中的 DDoS。他们使用半监督机器学习算法来检测和缓解 DDoS 攻击流量。在[14]中,作者提出了一种检测 DDoS 攻击的深度学习方法。他们设计了一个双向递归深度神经网络来学习模式和识别 DDoS 攻击。[15]中的作者还提出了一种基于深度学习的模型,一种堆叠式自动编码器(SAE)模型,有效检测DDoS攻击。他们利用自适应轮询采样来处理流量样本,并使用 SAE 模型对良性和攻击流量进行分类。[16]中的方法评估了几种分类算法的有效性,例如门控递归单元 (GRU)、递归神经网络(RNN)、朴素贝叶斯 (NB) 对于 DDoS 攻击检测,并得出结论认为 GRU 实现了最佳检测性能。[17]中的作者提出了一种基于认知启发计算的 DDoS 攻击检测机制。该机制选择了一些特征并利用SVM对正常流量和攻击流量进行分类。在[18],作者提出了一种基于 K-means 和快速 K-最近邻的方法来检测软件定义网络 (SDN) 中的 DDoS 攻击。然而,这些方法旨在检测DDoS 攻击是否正在进行,因此它们无法识别攻击者,即它们无法区分攻击流与正常流。
2.2 DDoS攻击流程分类
最近的一篇综述[19]研究了一些攻击流识别方法。在[20]中,提出了一种基于决策树的架构来区分攻击流和良性流,然后选择具有低方差的特征并将其输入决策树 C4.5 算法。在[21]中,提出了一个集成框架来选择 DDoS 攻击流分类的特征,其中使用七种特征选择方法来单独选择特征,并应用多数表决技术来选择最后的 11 个特征。[22]中的方法选择了 5 种方法来选择特征,并得出结论,使用朴素贝叶斯选择的 10 个特征可以达到最佳性能。在[23],作者提出了一个检测框架,并选择了 16 个特征来检测 DDoS 攻击。然而, [20]、[21]、[22]、[23]中的方法所采用的特征选择算法 并不是针对真实DDoS攻击中固有的数据分布不平衡而设计的。因此, [20]、[21]、[22]、[23]中的方法提取的特征并不是为真正的 DDoS 攻击检测量身定制的。
在[10]中,基于属于僵尸网络的用户预计会比普通用户表现出更小程度的消息创新的理论,作者提出了一种基于消息创新率的方法来识别DDoS僵尸网络。分类中采用了两个指标,即传输速率和每单位时间不同消息的数量。然而,该方法严重依赖于检查数据包的有效负载(例如 HTTP 消息内容)来计算不同消息的数量,这是一个隐私问题。此外,分类准确度有限,因为它只关注利用 HTTP 数据包的攻击。[11]中的作者提出了一种基于深度学习的模型,即LSTM 网络, 识别攻击流。他们使用 40 个流特征作为输入并将它们输入到 LSTM 模型中。检测精度很高,但很难理解和解释为什么它表现良好。此外,该方法非常耗时,因为即使在训练模型后也需要数千个参数来适应每个流。有效且高效地识别DDoS攻击流的问题仍有待解决。
在所提出的方法中,我们使用专为不平衡数据分布设计的接收器操作特性曲线 (AUC) 下基于特征重要性的区域来选择我们的特征。因此,我们提取的特征在检测真正的 DDoS 攻击时更有效。此外,我们提出了一种新的基于聚合特征的线性算法来对所选特征和阈值进行加权,进一步提高了有限特征的检测精度。因此,与[11]和 [20]相比,[21]、[22]、[23],所提出的方法可以显着减少检测中使用的特征数量,从而大大提高检测效率。在隐私保护方面,与[10]不同,所提出的方法不检查数据包的有效载荷,因此可以保护用户的隐私。此外,所提出的方法不是只检测 HTTP 数据包[10] ,而是监视所有类型的数据包以提高检测准确性。
3. 提出的方法
![](https://i-blog.csdnimg.cn/blog_migrate/a4f064104b743763618870525970395e.jpeg)
阶段 1 将输入数据包分类为流。
阶段 2 为每个流计算和提取特征。
阶段 3 选择特征并对其进行排序。
阶段 4 为所选特征选择最佳阈值。
阶段 5 对特征输出进行加权并标记攻击流。