基于人工智能的DDoS攻击检测方法研究进展
2022-01-21赵恭震
康 重 赵恭震
国际关系学院 北京 100091
引言
随着互联网的飞速发展,网络内容变得越来越丰富,网络应用已经进入各个领域,网络系统也变得越来越复杂,这带来了许多潜在的网络安全隐患。常见的网络安全隐患包括暴力破解攻击、蠕虫病毒、恶意软件攻击、网络攻击和扫描攻击等[1]。拒绝服务攻击(Denial of Service,DoS)攻击是最严重和典型的网络攻击之一[2]。这种拒绝服务攻击,将耗尽目标主机上的资源,并阻止合法用户成功访问网络系统资源。分布式拒绝服务攻击(Distributed Denial of Service,DDoS)基于DoS攻击,攻击者控制大量僵尸主机,并将大量虚假网络流量发送到目标主机。DDoS目标是消耗目标主机上的系统资源和网络带宽,使目标宿主瘫痪[3]。DDoS是网络黑客使用的最受欢迎的网络攻击方法之一,具有分布式和大规模协作操作的特点。
随着互联网技术的飞速发展,DDoS攻击在互联网上的发生率已经很普遍,DDoS攻击已经成为影响网络设备安全的重要因素。2018年,遭受到DDoS攻击并产生影响的企业数量比2017年成倍增加[4]。在我国超过8成的企业在近一年都遭受过DDoS攻击,57%的企业遭受攻击的频次低于10次,但是存在2%的企业遭受DDoS攻击次数超过100次。DDoS攻击最高流量峰值在100~300G之间的企业占我国企业的30%,高流量的攻击对我国企业造成很严重的影响。DDoS攻击正在危害各个行业,所导致的经济损失达到数亿,同时DDoS的攻击方式趋于多样化,严重的话还会影响国家的信息安全。因此,如何有效准确地检测DDoS攻击是研究人员和网络安全专业人员今后应该重点研究的内容。
随着人工智能的快速发展,人们的生活方式迎来了巨大的变化。人工智能主要用于研究使计算机来模拟人的某些思维过程和智能行为,通过相关的人工智能算法去检测DDoS攻击已经成为研究者和相关网络安全人员的研究方向。
1 DDoS攻击
DDoS攻击通常使用客户端/服务器技术,攻击者控制多个僵尸主机,并将它们组合到一个攻击平台中,以对一个或多个目标发起DDoS攻击。攻击者通常使用网络攻击技术在控制计算机上安装主DDoS控制程序,代理程序已安装在互联网上的许多计算机上。主控制程序与许多代理进行通信以控制和实施DDoS攻击,在攻击期间,代理程序收到指令后便立即发起攻击,客户端/服务器技术使主控制程序能够在几秒钟内激活成千上万的代理操作,以便快速实施DDoS攻击。
高速互联网的普及不仅为所有人提供了便利,而且也为DDoS攻击提供了非常有利的条件。在低速网络时代,兼顾所经过路由器的跳数,黑客选择实施攻击的傀儡机时,通常会优先考虑离目标网络距离近的机器来达到更好的攻击效果。现在攻击者可以在其他城市或者更远的地方发动攻击,大量的傀儡机可以在更大的范围内实施布局,提供更为灵活的攻击方式。如今,DDoS攻击次数和复杂程度不断提高,使得它们越来越难以防御。
1.1 攻击原理
DDoS攻击是攻击者控制大量的傀儡机向目标主机发送大量伪造的网络流量,目的是耗尽目标主机的系统资源和网络带宽,从而使目标主机拒绝为正常接入用户提供响应服务,进而产生网络瘫痪[5]。DDoS攻击原理如图1所示。
图1 DDoS攻击原理图
攻击者通过主控端运行控制程序来执行DDoS攻击,而每台主控机操控大量的傀儡机。当大量的傀儡主机同时对目的主机进行访问或者发送大量的数据包时,目的主机无法同时响应这些访问或者数据包,导致目的主机资源的耗尽或者大量的无用资源占据网络。当正常用户访问目的主机时,无法正常访问获取相应的资源。
1.2 常见的DDoS攻击类型
DDoS攻击可分为三种主要类型:网络流量攻击,连接攻击和特殊协议漏洞攻击[6]。网络流量型攻击主要是消耗目标主机的带宽资源,例如IPFlood、ICMPFlood、SYNFlood、UDPFlood攻击等。连接型攻击主要是攻击者通过建立TCP连接,依据TCP协议向目的主机发送大量虚假数据包,进而实现对目标主机系统资源的消耗,例如TCP SYN Flood、Smurf和Ping of Death攻击等。特殊协议攻击主要在应用层利用HTTP协议的某些内容,例如使用HTTP协议标头要以连续字符串“ ”结尾的性质。如果攻击者发送了HTTP Get请求,需要发送一个缓慢且无用的头字段,并且不发送结束标志,相应的服务器资源会被占用;在HTTP Post请求中,允许在HTTP的头部中声明Content-Length,攻击者发送头部后,不发送body部分同样可以达到资源消耗的目的。
2 基于人工智能的检测方法
当前DDoS攻击的检测方法有很多种,随着人工智能的飞速发展,它已逐渐成为检测DDoS攻击的常用方法。基于人工智能的DDoS检测方法主要是在此领域使用相关算法,人工智能算法主要分为机器学习和深度学习。基于机器学习的检测方法主要通过网络数据分类来实现DDoS入侵检测,该算法的分类器将网络流量分成正常流量和攻击流量。机器学习的方法可以通过数据挖掘的方式剖析网络数据,同时具有自适应性,可以根据网络环境的变化来调整算法自身参数,所以基于机器学习的方法越来越受到研究者的青睐。基于深度学习的检测方法主要是通过建立相应的深度神经网络来进行的,常见的神经网络包括卷积神经网络和循环神经网络。在网络数据量过多、输入特征和选择特征不明显的情况下,深度学习算法较机器学习算法更加稳定。但是,由于深度学习算法自身复杂度过高而对资源占有率较大,所以两者各有优缺点,我们要根据实际情况进行选择。
本文对相关基于人工智能的方法进行了相应的总结,将其分为基于分类、基于聚类、基于深度学习的检测方法,阐明不同检测方法的特征和应用场景,以便研究人员可以专注于相关研究。
2.1 基于分类的检测算法
分类算法是一种输出为离散型随机变量的监督学习算法,分为单一分类算法和集成分类算法,常适用于类别或其可能性的预测,不能进行数值的预测[7]。常用的算法主要包括随机森林、神经网络、决策树、朴素贝叶斯和支持向量机。朴素贝叶斯(Naive Bayes)是一种基于条件概率和计数的简单算法,可通过训练大量数据来更新概率。支持向量机是一种基于内核函数的技术,可以将特征向量映射到整个内核函数的高维空间。接下来,进行线性判别函数的建立。决策树是二叉树,叶节点的各种分类可以表示为分类树和回归树。回归树的叶节点是恒定的。随机森林在决策树中收集了大量子节点。按类别投票,然后选择投票最多的类别作为决策结果。神经网络是用于对非线性可分离数据进行分类的基本配置方法,基本组成包括输入层、隐含层和输出层。
陈静[8]等人分析了云计算服务中LDDoS的攻击特征和风险,并提出了一种基于分类算法的检测方法。该方法将主成分分析方法提取LDDoS攻击流量的特征作为神经网络上的输入,通过SVM支持向量机模型进行识别分类,实现对网络流量的判断。文献[9]对传统的随机森林算法进行了改进,通过对不同的决策树赋予不同的权值以及对每个决策树赋予不同的权重,实现了对特征属性进行降噪声和消除相关性处理,使得检测更准确。陈超[10]等人介绍了双向流的概念,并使用GHSOM算法对SDN提取的四个特征向量进行快速分析和分类,并为目标IP提供完整的信息,提出了基于IP地址四元组特征的DDoS检测方法。陈莉[11]等人基于二分类思想,从DDoS攻击特点出发,将流表项速率、源IP地址熵等特征向量作为输入,建立了基于BP神经网络为核心的DDoS攻击检测模型,利用BP分类算法对流量特性向量进行处理,通过模型的输出特征值判断是否存在攻击。
2.2 基于聚类的检测算法
一般而言,聚类指将没有分类标签的数据集,分为若干个簇的过程,是一种无监督的分类方法[12]。在大数据时代背景下,随着数据量的不断增加及其数据形态的日益多样化,聚类算法的应用更加广泛;同时对算法本身也提出了更高的要求[13]。常用的聚类算法主要包括K-means、AP聚类和GMM模型。K-Means是一种基于最小化误差函数将数据划分为预定数量的K个类别的算法。该算法将数据分为K部分,无需监视信号,适合处理大数据。AP群集算法将所有样本视为网络上的节点,并根据在网络每个边缘上传输的消息来计算每个样本的群集中心[14]。聚类过程中,在各节点间传递吸引度和归属度两种信息。高斯混合模型(GMM)是对单一高斯概率密度函数的延伸,GMM能够平滑地近似模拟任意形状的密度分布,常适用于多类别的划分,应用于复杂对象的建模。基于聚类的DDoS检测方法通常将聚类算法与其他算法结合使用,以更准确地检测DDoS攻击。
刘自豪[15]等提出了一种基于改进的AP聚类算法的应用层DDoS检测技术,在预分类的基础上,使用相同类簇合并机制并删除相异类簇以实现有效聚类,并引入了轮廓指示器,实时监控集群。同时设计高质量的自学习集群更新机制,以进一步减少误报并提高检测率。卢正鹏[16]在对k-Means和主成分分析的基础上,提出了一种检测DDoS攻击异常的优化算法,其使用最小距离分割方法解决了起点的随机选择引起的不可预测的误差的问题。通过对用户访问行为的特征进行合理分析,计算出可以区分攻击行为的新属性,并使用标准化的欧几里得距离作为提高算法执行效率的度量,最后PCA重构误差进行攻击行为的判断。李丽娟[17]等人通过动态索引和初始聚类中心自动选择改进了传统的K均值算法。传统的K-Means算法对初始聚类中心非常敏感,必须预先知道聚类数,与传统的K均值相比,识别精度更高。
2.3 基于深度学习的检测算法
随着深度学习研究的不断深入,其被广泛应用于图像识别、语音识别、文本分析和大数据分析中[18]。它是一种主要使用深度神经网络为工具的机器学习算法,神经网络在学习过程中实现了对应特征参数的选择。较高的可实现算力、深度神经网络的完备性以及深度学习特征选取的完备性种种优势都促进了深度学习的长足稳定的发展[19]。主流的深度学习算法主要包括深度神经网络(DNN)、递归神经网络(RNN)、卷积神经网络(CNN)[20]。CNN是一种前馈神经网络,本质上是一个多层感知机。CNN采用局部连接和共享权值的方式优化了网络、降低了过拟合的风险[21]。CNN通过采用不同的神经元和学习规则的组合方式,提供了良好的容错能力和自学习能力,常适用于大型图像处理。RNN是一种特殊的神经网络结构,通过连接隐藏层的节点并将隐藏层的先前输出作为当前隐藏层的输入来实现递归神经网络结构。RNN的特殊结构提供“记忆功能”,通常用于自然语言处理、机器翻译和语音识别等场景。在传统意义上,DNN与神经网络没有显着差异,DNN增加了网络层的数量并解决了模型训练的问题。DNN引入了非线性激活函数,在层与层之间添加的非线性项以及偏置项能够很好地增加DNN拟合性能。在基于深度学习的检测方法中常常将深度学习算法同其他算法模型结合起来,或者改进深度学习的相关算法,来实现更加精确的检测。
Lounnapha[22]构建了一个基于深度学习技术CNN和SVDD算法的DDoS检测模型。SVDD算法可用于离群值检测并从数据集中检测出不典型的对象,提高模型的准确性,将其和CNN相结合,可以在减少损失、提高收敛速度的同时增加准确率。王文涛[23]等人将概率图模型与DNN结合,在检测模型的数据预处理阶段,使用概率图模型的HMM算法对统计特征进行聚类,通过轻量级的DNN模型对聚类数据进行攻击检测,减少了检测时间,提高了准确率。文献[24]提出了一种改进的卷积神经网络(CNN)的DDoS攻击检测方法,通过用卷积层及全局平均池化层代替全连接层,求出每个相应类别的特征映射的平均值,最后再将平均特征向量送入Sigmoid层进行分类,避免了过拟合问题,提高了模型的准确率。李传煌[25]等人基于深度学习混合模型,提出了一种将SDN与深度学习相结合并使用深度卷积神经网络(DCNN)和深度堆栈自动编码(DSAE)进行检测的DDoS攻击检测方法,该方法由于使用了传统的深度神经网络,准确率高,可实现对特定DDoS的防御。
3 结束语
本文对现有的DDoS攻击按照攻击方法进行划分,详细介绍了DDoS攻击的原理,并总结了基于人工智能的DDoS检测方式,将其分为三大类,并对每一类检测方法的研究分析现状进行了相应的总结。三种检测方法分别适用于不同的检测场景,分类和聚类算法相较于深度学习算法开销较小,检测时间较快,当涉及到流量较大的时候,深度学习算法往往更具优势,准确率更高。本文中描述的检测方法并不涵盖所有当前基于人工智能的已知检测方法,本文介绍的方法是为了使后续的相关研究人员能够做出适当的决策,希望后续的研究人员可以将这些算法进行实际合理的运用,并对这些检测方法进行改进,提高对DDoS攻击检测的准确度,降低DDoS攻击带来的损失。