一种基于机器学习和特征选择的DRDoS攻击检测方法与流程

专利2022-05-09  123


本发明涉及网络安全检测
技术领域
,尤其涉及一种基于机器学习和特征选择的drdos攻击检测方法。
背景技术
:随着互联网的发展和互联网环境的复杂化,互联网面临的安全形势也日趋严峻。分布式拒绝服务(distributeddenialofservice,ddos)攻击一直是近年来最常见且危害最大的攻击方式之一。在ddos攻击中,分布式反射拒绝服务攻击(distributedreflectiondenialofservice,drdos)也称反射攻击、放大攻击,是一种特殊的具有巨大攻击力和潜力的攻击。这种攻击利用ip欺骗和互联网上的开放服务器进行反射,向受害者发送大量数据包,这些服务器也被称为反射器。drdos攻击的巨大危害就在于攻击者向某种协议服务器发送的小量请求最终会引发服务器的大量响应。在drdos攻击中,攻击者的主要意图是耗尽受害者的带宽,攻击者利用了一些udp协议服务器接受请求而不验证发送者身份的漏洞,进行ip欺骗来形成危害更大的攻击。目前,针对drdos攻击的研究相对ddos攻击来说非常少,并且许多研究是针对特定协议的,很难扩展到其它协议进行。有许多方法从drdos攻击的首要因素ip欺骗出发,但是这些方法往往需要服务器和客户端支持某种协议,这很难做到。在反射器端检测可以最小化攻击影响,但是反射器端检测方法存在两个缺点:(1)存在大量潜在的反射器,很难实现部署;(2)攻击者发出的非法请求可能与反射器中的合法请求看起来相同,导致误报率高。随着机器学习技术的发展,能够通过提取网络流中的特征来分析、检测和防御ddos攻击,从而在大数据环境下以低成本建立模型。目前,许多针对互联网安全问题的入侵检测系统已经开始使用机器学习的方法进行。在异常检测领域有成百上千个流量模型被提出来,如何确定这些模型的参数是一个难以解决的问题。尤其对于包含大量参数的模型,依赖于管理人员手动试探出最优的参数值是极其困难的。而机器学习提供了一种通过黑匣子的方式自动确定模型最佳参数的方法,在异常检测中得到了广泛的应用。特征选择(featureselection)和特征提取(featureextraction)是特征工程(featureengineering)的两个重要子内容。其中特征提取是指从数据中找到可以表征目的的属性,而特征选择是从候选特征中选出有价值的特征。通过特征选择可以达到降维、提升模型效果和提升模型性能等效果,对于机器学习,特征选择是其应用中很重要的一步。特征选择是一个很重要的数据预处理过程,选择出重要的特征可以缓解维数灾难问题,去除不相关特征可以降低学习任务的难度。ntp(networktimeprotocol,网络时钟协议)放大攻击利用了ntp协议,ntp是用来使计算机时间同步化的一种协议,可以提供精确到毫秒级的时间同步服。ntp协议使用udp的123端口对外提供时钟同步服务。ntp协议包含一个monlist功能,用于监控ntp服务器。攻击者发送伪造的monlist指令数据包,ntp服务器响应monlist指令后就会返回与其进行过时间同步的最近600个客户端的ip地址。响应包按照每6个ip进行分割,一个ntp的monlist请求最多会形成100个响应包,实现较高的流量放大效果。chargen放大攻击利用了chargen协议,chargen(charactergeneratorprotocol,字符发生器协议)是一种简单网络协议,该协议可基于tcp与udp两种方式,在19端口提供服务。chargen协议的设计中规定每当服务器收到一个udp数据包,该udp数据包可以是零负载或者任意负载,然后服务器需向客户端返回响应,响应数据包中包含了大量随机字符,以此进行放大。ssdp放大攻击利用了ssdp协议,ssdp(simpleseverdiscoveryprotocol,简单服务发现协议)是构成upnp(通用即插即用)技术的核心协议之一。此协议为网络客户提供一种无需任何配置的管理和维护网络设备服务的机制。协议采用基于通知和发现路由的多播发现方式实现。协议客户端在保留的多播地址:239.255.255.250:1900提供发现服务,同时每个设备服务也在此地址上监听服务发现请求。如果服务监听到的发现请求与此服务相匹配,此服务会使用单播方式响应。ssdp协议使用udp1900端口对外提供服务。攻击者设置ssdp请求报文中的m-search字段为“ssdp:all”,表示获取所有设备和服务的信息,从而达到流量放大的效果。snmp(simplenetworkmanagementprotocol,简单网络管理协议)放大攻击利用了snmp协议,snmp能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。snmp协议使用udp的161端口对外提供服务。v2版本的snmp协议引入了snmpbulkget功能支持用单个请求报文获取大量管理数据。攻击者向开启了snmp服务的网络设备发送getbulkrequest请求,snmp服务器接收到请求后会回复大量管理数据,从而达到流量放大的效果。tftp(trivialfiletransferprotocol,简单文件传输协议)放大攻击利用了tftp协议,tftp是一个类似于ftp的但仅支持文件上传和下载功能的传输协议。tftp协议使用69端口提供服务。tftp反射放大攻击利用了协议上的缺陷,关键在于tftp的重传机制,当服务端在没有收到攻击目标的ack包时,就会以固定的时间间隔重传一定的次数给攻击目标,达到放大的目的。memcached放大攻击利用了memcached协议,memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库负载。在memcached反射放大攻击中,攻击者首先通过set命令在memcached中设置一个具有极大值的键,然后使用get命令通过键获取值来进行放大。在memcached反射攻击中,反射请求可以只有二十个字节数据,但返回1m大小的数据,最终达到数万倍的放大效果。目前,现有技术中的统计方法检测drdos攻击对计算资源的占用极大并且检测效率较低,因此,亟需一种基于机器学习和特征选择的多分类drdos攻击检测方法。技术实现要素:本发明的实施例提供了一种基于机器学习和特征选择的drdos攻击检测方法,以实现有效地识别出网络中的多种类型的drdos攻击。为了实现上述目的,本发明采取了如下技术方案。一种基于机器学习和特征选择的drdos攻击检测方法,包括:通过网络数据采集分析工具定期收集网络入口的数据包头信息;根据数据包头信息中的五元组将收集的数据包划分为不同的网络流,提取网络流的流特征,基于各个网络流的流特征建立流特征数据集;使用攻击原理分析、特征重要性排名和特征分布对所述流特征数据集中的网络流特征进行特征筛选,得到关键特征;利用所述流特征数据集和所述关键特征对xgboost模型进行调参训练,得到检测性能指标最好的训练好的xgboost模型;利用所述训练好的xgboost模型对待检测网络的入口流量数据进行在线检测,输出待检测网络的drdos攻击检测分类结果。优选地,所述的通过网络数据采集分析工具tcpdump定期收集网络入口的数据包头信息,包括:设定网络入口的流量阈值,所述流量阈值高于正常网络入口流量的过去一定时间段内的历史最大值,如果网络入口的流量大于所述流量阈值,则判断可能发生了drdos攻击,通过网络数据采集分析工具tcpdump定期收集网络入口的数据包头信息。该数据包头信息包括数据包原始信息文件pcap。优选地,所述的根据数据包头信息中的五元组将收集的数据包划分为不同的网络流,提取网络流的流特征,基于各个网络流的流特征建立流特征数据集,包括:根据数据包头信息中的五元组将数据包划分为不同的网络流,所述五元组为源ip、源端口、目的ip、目的端口和协议,使用网络流量特征提取工具cicflowmeter对各个网络流进行特征提取,提取每个网络流的表1所示的前83个流特征,将各个网络流的流特征转换为逗号分隔值csv文本文件,基于各个网络流的流特征建立流特征数据集;表1优选地,所述的使用攻击原理分析、特征重要性排名和特征分布对所述流特征数据集中的网络流特征进行特征筛选,得到关键特征,包括:使用网络抓包工具wireshark对drdos攻击数据包进行攻击原理分析,同时使用数据分析工具得到正常流量特征和drdos攻击流量特征的数据分布,结合使用wireshark进行行为分析,得到drdos攻击的相关特征;对所述流特征数据集中的所有流特征使用xgboost训练进行特征重要性排名,得到对于drdos攻击进行检测的重要特征列表;根据所述drdos攻击相关特征和所述重要特征列表对所述流特征数据集进行特征筛选,得到关键特征。优选地,所述的关键特征包括表2所示的14个关键特征;表2优选地,所述的利用所述流特征数据集和所述关键特征对xgboost模型进行训练,得到训练好的xgboost模型,包括;针对每种不同的drdos攻击从所述流特征数据集中选取对应的流特征,将这些流特征进行合并整理,将合并整理后的流特征的历史数据作为训练样本,使用所述14个关键特征对所述训练样本进行筛选得到训练所用的数据集,利用所述数据集训练xgboost模型,使用xgboost算法调整xgboost模型的参数,对比不同参数下xgboost模型的检测性能指标,选择具有最高检测性能指标的xgboost模型作为训练好的xgboost模型。优选地,所述的利用训练好的xgboost模型对待检测网络的入口流量数据进行在线检测,输出待检测网络的drdos攻击检测分类结果,包括:在待检测网络的入口流量进行流量速率检测,当检测出的流量速率超过设定的流量阈值时,开始在线检测过程。使用网络数据采集分析工具tcpdump进行流量捕获,生成数据包原始信息,将数据包划分为不同的网络流,使用网络流量特征提取工具cicflowmeter进行网络流特征提取,将网络流特征信息输入到训练好的xgboost模型,xgboost模型使用所述关键特征对输入的网络流特征信息进行检测,对每条网络流信息输出正常或者具体的drdos攻击分类标签,得到所述待检测网络的drdos攻击检测分类结果。由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过使用集成学习算法xgboost,对检测的效率和能力进行了提高,可以识别出网络中的多种类型的drdos攻击,降低网络中的恶意流量,利用xgboost来学习drdos攻击的行为,可以提高检测效率和准确率。可以准确地检测以上所提及的多种类的drdos攻击。本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种基于机器学习和特征选择的drdos攻击检测方法的处理流程示意图;图2为本发明实施例提供的一种特征工程筛选特征示意图;图3为本发明实施例提供的一种xgboost的原理模型示意图;图4为本发明实施例提供的一种在线检测流程示意图;图5为本发明实施例提供的一种xgboost模型的二分类混淆矩阵示意图;图6为本发明实施例提供的一种xgboost模型的多分类混淆矩阵示意图。具体实施方式下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本
技术领域
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本
技术领域
技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。在本发明实施例中,通过对drdos攻击原理的分析和在cicflowmeter所提取的特征中进行相应的对应特征查找,同时通过对正常流量和drdos攻击流量的特征数据的分布和xgboost的特征重要性排名来进行特征选择。本发明实施例从drdos攻击具体原理出发,建立数据集,经过流量分析和特征工程,对具体drdos攻击选择合适的特征进行检测,本发明实施例提供的一种基于机器学习和特征选择的多种类drdos攻击检测方法的处理流程如图1所示,包括如下的处理步骤:步骤s1:设定网络入口的流量阈值,判断drdos攻击的可能发生,如果网络入口的流量大于流量阈值,则表示可能发生了drdos攻击。阈值的设定根据网络入口流量确定,所设定的阈值要略高于正常网络入口流量的过去一定时间段内的历史最大值,流量超过流量阈值时则表示可能发生drdos攻击,可以开始进行drdos攻击检测。步骤s2:通过网络数据采集分析工具tcpdump定期收集网络入口的数据包头信息。该数据包头信息可以为数据包原始信息文件pcap。步骤s3:根据数据包头信息中的五元组将数据包划分为不同的网络流,提取网络流的流特征,基于各个网络流的流特征建立流特征数据集。上述五元组为源ip、源端口、目的ip、目的端口和协议。网络流通常被描述为共享相同信息的数据包序列<源ip,源端口,目的ip,目的端口,协议>。从形式上讲,由n个数据包组成的网络流可以被描述为一个序列。每个数据包都是多维向量。例如,数据包头中有源ip地址,目的ip地址等信息。获取数据包头以后,根据数据包头中包含的五元组<源ip,源端口,目的ip,目的端口,协议>把数据包头分成不同的网络流。使用网络流量特征提取工具cicflowmeter对网络流进行特征提取,将网络流的流特征转换为逗号分隔值csv文本文件。基于各个网络流的流特征建立流特征数据集。本发明实施例模拟攻击并收集6种drdos攻击流量,包括ntp、memcached、tftp、ssdp、snmp和chargen攻击。drdos攻击者可以使用多种攻击手段和方法,但大多数攻击流量具有特定的行为特征,因此,可以使用流特征进行检测。本发明实施例提取每个网络流的前83个流特征,如表1中序号1到83所示,其中序号84的label(标签)特征需要手动添加。表1对流特征数据集进行一系列特征工程,包括攻击原理特征分析、特征分布和特征重要性排名。图2为本发明实施例提供的一种特征工程筛选特征示意图,如图2所示,为了提高检测效率同时提高检测能力,使用攻击原理分析、特征重要性排名和特征分布方式对网络流的各个特征进行特征筛选,尽可能减少所用特征数。为了研究drdos攻击的特殊行为,使用网络抓包工具wireshark对drdos攻击数据包进行分析,帮助特征筛选。主要分析drdos攻击的udp数据包的包长度相关的特点以及数据包之间的时间间隔的特点,通过使用数据分析得到正常流量特征和drdos攻击流量特征的数据分布,选择能够明显分辨正常流量和drdos攻击流量的特征。并且结合使用wireshark进行行为分析,得到drdos攻击特征。对上述流特征数据集中的所有流特征使用xgboost训练进行特征重要性排名,得到对于drdos攻击进行检测的重要特征列表。根据上述drdos攻击特征和xgboost训练得到的重要特征列表对上述流特征数据集进行特征筛选,得到关键特征。通过使用筛选后的关键特征减少了数据量,因此降低了检测所用的时间和所消耗的内存等系统资源。上述14个关键特征的内容如表2所示。表2将筛选后的关键特征和未筛选出的流特征分别使用xgboost进行训练测试,对比检测率、精度等各项性能指标,挑选检测性能最好的模型用于在线检测。从以上所挑选的特征可以看出多与数据包的大小相关,这些特征与drdos攻击的特点相关联,因为drdos攻击的特点在于利用服务器进行了发射放大。drdos攻击选择基于udp的协议进行放大,因为tcp协议很难进行ip欺骗。这些基于udp的协议的服务器发出的响应从两个方面进行放大,一个是响应的数据包数量,一个是响应中单个数据包的大小。这些响应数据包的大小往往固定,比如tftp的响应数据包为516字节,memcached的响应包大小为1400字节等。所以drdos攻击最终表现出了和数据包大小相关的特性。步骤s4:为了适应真实环境,不对特征进行归一化等数据预处理,仅使用特征原始值。针对每种不同的drdos攻击从上述流特征数据集中选取对应的流特征,将这些流特征进行合并整理。将合并整理后的流特征的历史数据作为训练样本,通过使用所挑选的14个特征对训练样本进行筛选得到训练所用的数据集,使用现有的xgboost算法进行经过多次调整参数来训练xgboost模型,上述参数包括xgboost算法的n_estimators等参数,对比不同参数下模型的检测性能指标如准确率、精度等,选择其中具有最高检测性能指标的模型作为最终训练好的xgboost模型进行在线检测。步骤s5:利用训练好的xgboost模型对预处理后的数据进行在线检测,根据检测结果识别网络中的drdos攻击。因为网络中的正常流量和攻击流量的特点不同。因此,drdos攻击检测可以看作是检测当前网络是否正常的一个分类问题。图3为本发明实施例提供的一种xgboost的原理模型示意图。图3为集成学习中一种算法,名为boosting。boosting的基本思想是通过某种方式使得每一轮基学习器在训练过程中更加关注上一轮学习错误的样本,算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2,如此重复进行,直到弱学习器数达到事先指定的数目n,最终将这n个弱学习器通过集合策略进行整合,得到最终的强学习器。xgboost为一种基于boosting集成学习原理的方案,xgboost属于梯度提升树(gbdt)模型这个范畴,gbdt的基本想法是让新的基模型(gbdt以cart分类回归树为基模型)去拟合前面模型的偏差,从而不断将加法模型的偏差降低。xgboost采用二叉树,开始的时候,全部样本都在一个叶子节点上。然后叶子节点不断通过二分裂,逐渐生成一棵树。xgboost使用levelwise的生成策略,即每次对同一层级的全部叶子节点尝试进行分裂。xgboost采用特征并行的方法进行计算选择要分裂的特征,即用多个线程,尝试把各个特征都作为分裂的特征,找到各个特征的最优分割点,计算根据它们分裂后产生的增益,选择增益最大的那个特征作为分裂的特征。xgboost在每次迭代之后,为叶子结点分配学习速率,降低每棵树的权重,减少每棵树的影响,为后面提供更好的学习空间。xgboost考虑了训练数据为稀疏值的情况,可以为缺失值或者指定的值指定分支的默认方向,大大提升算法的效率。xgboost目标函数定义为:其中目标函数由两部分构成,第一部分用来衡量预测分数和真实分数的差距,另一部分则是正则化项。正则化项同样包含两部分,t表示叶子结点的个数,w表示叶子节点的分数。γ可以控制叶子结点的个数,λ可以控制叶子节点的分数不会过大,防止过拟合。二分类时将输出预测值限制为0到1之间的值,得到返回给定流为恶意drdos攻击的概率p∈[0,1],当p>0.5时,输出1,表示网络流被识别为drdos攻击流,否则输出为0表示为正常流。多分类时将输出一个概率最大的类别作为多分类的预测结果。通过对训练数据的分析,可以观察到xgboost选择了与数据包长度相关的特征,这是由于drdos攻击所利用的协议为udp协议,这些udp协议的响应分割后的数据包长度往往固定。模型可能已经学习了这个特殊的特性,并简单地做出相应的决定。图4为本发明实施例提供的一种在线检测的流程示意图,首先在待检测网络的入口流量进行流量速率检测,当超过流量阈值时,发出阈值警告,开始在线检测过程。使用网络数据采集分析工具tcpdump进行流量捕获,生成数据包原始信息pcap文件。将数据包划分为不同的网络流,接着使用网络流量特征提取工具cicflowmeter进行网络流特征提取,生成csv文本文件。将csv文本文件中的网络流特征信息输入到之前离线训练好的xgboost模型,此处模型仅使用之前经过特征工程筛选后的14个关键特征进行检测。xgboost模型会对每条流信息输出正常或者具体的drdos攻击分类标签,作为待检测网络的drdos攻击检测结果。真正例(tp):实际上是正例的数据点被标记为正例,假正例(fp):实际上是反例的数据点被标记为正例,真反例(tn):实际上是反例的数据点被标记为反例,假反例(fn):实际上是正例的数据点被标记为反例。分类指标的计算方法为:准确率精度召回率表3为给出了不同特征训练xgboost模型的结果。为了降低过拟合,将丢弃数据集提取的83个特征中的6个特征,分别为flowid、源ip、源端口号、目的ip、目的端口号、时间戳。分别使用77个特征和经过特征工程筛选后的14个特征进行训练。表3不同特征下xgboost的性能图5中所示的混淆矩阵图为使用了xgboost模型进行二分类实验的结果,体现出其二分类的良好性能。实验过程中建立了4种不同n_estimators参数大小的xgboost模型。其中,f1分数表示精确度和召回率的调和平均值,能够更准确地评估模型性能,可以看出,n_estimators越大,训练所需时间越多,但是准确率等指标也随之上升,当n_estimators大于40时,准确率等指标到达最高,不会再因n_estimators的增大而提高。综合考虑,xgboost模型采用n_estimators为40的模型最佳。表4不同n_estimators的xgboost模型n_estimators准确率/%精度/%召回率/%f1得分/%时间/%1099.975399.975399.995699.98550.602099.992699.995699.995699.99561.103099.995099.997199.997199.99711.544099.99751.099.997199.99852.19表5多分类的精度、召回率、f1得分如图6所示的混淆矩阵图,为使用xgboost模型进行了多分类实验的结果,精度、召回率、f1得分表现优异。具体的,在线检测的检测率的具体计算公式如下:检测率:检测出的恶意ip地址数目/恶意ip地址总数目。恶意流量降低率:(检测前的攻击流量大小-检测后的攻击流量大小)/检测前的攻击流量大小。综上所述,本发明实施例通过检测网络入口流量的大小,在网络流量超过设定阈值时,使用tcpdump和cicflowmeter对网络入口流量的数据包头信息进行收集;根据五元组对数据包头信息进行数据预处理分成不同的网络流,并提取一系列的流特征,并通过一系列特征工程进行特征筛选;通过历史数据作为训练样本对xgboost模型进行训练得到训练好的xgboost模型,利用已训练的模型对实时提取并预处理后的特征数据进行在线检测,根据检测结果识别网络中的drdos攻击及其类型。本发明实施例可以识别出网络中的多种类型的drdos攻击,降低网络中的恶意流量,利用xgboost来学习drdos攻击的行为,可以提高检测效率和准确率。本发明实施例方法可对6种drdos攻击进行检测,包括ntp、memcached、tftp、ssdp、snmp和chargen攻击,同时可以扩展到其它类型的drdos攻击检测,提高检测效率,降低网络中的恶意流量。通过使用集成学习算法xgboost,对检测的效率和能力进行了提高,可以准确地检测以上所提及的多种类的drdos攻击。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页1 2 3 
技术特征:

1.一种基于机器学习和特征选择的drdos攻击检测方法,其特征在于,包括:

通过网络数据采集分析工具定期收集网络入口的数据包头信息;

根据数据包头信息中的五元组将收集的数据包划分为不同的网络流,提取网络流的流特征,基于各个网络流的流特征建立流特征数据集;

使用攻击原理分析、特征重要性排名和特征分布对所述流特征数据集中的网络流特征进行特征筛选,得到关键特征;

利用所述流特征数据集和所述关键特征对xgboost模型进行调参训练,得到检测性能指标最好的训练好的xgboost模型;

利用所述训练好的xgboost模型对待检测网络的入口流量数据进行在线检测,输出待检测网络的drdos攻击检测分类结果。

2.根据权利要求1所述的方法,其特征在于,所述的通过网络数据采集分析工具tcpdump定期收集网络入口的数据包头信息,包括:

设定网络入口的流量阈值,所述流量阈值高于正常网络入口流量的过去一定时间段内的历史最大值,如果网络入口的流量大于所述流量阈值,则判断可能发生了drdos攻击,通过网络数据采集分析工具tcpdump定期收集网络入口的数据包头信息。该数据包头信息包括数据包原始信息文件pcap。

3.根据权利要求2所述的方法,其特征在于,所述的根据数据包头信息中的五元组将收集的数据包划分为不同的网络流,提取网络流的流特征,基于各个网络流的流特征建立流特征数据集,包括:

根据数据包头信息中的五元组将数据包划分为不同的网络流,所述五元组为源ip、源端口、目的ip、目的端口和协议,使用网络流量特征提取工具cicflowmeter对各个网络流进行特征提取,提取每个网络流的表1所示的前83个流特征,将各个网络流的流特征转换为逗号分隔值csv文本文件,基于各个网络流的流特征建立流特征数据集;

表1

4.根据权利要求2所述的方法,其特征在于,所述的使用攻击原理分析、特征重要性排名和特征分布对所述流特征数据集中的网络流特征进行特征筛选,得到关键特征,包括:

使用网络抓包工具wireshark对drdos攻击数据包进行攻击原理分析,同时使用数据分析工具得到正常流量特征和drdos攻击流量特征的数据分布,结合使用wireshark进行行为分析,得到drdos攻击的相关特征;

对所述流特征数据集中的所有流特征使用xgboost训练进行特征重要性排名,得到对于drdos攻击进行检测的重要特征列表;

根据所述drdos攻击相关特征和所述重要特征列表对所述流特征数据集进行特征筛选,得到关键特征。

5.根据权利要求4所述的方法,其特征在于,所述的关键特征包括表2所示的14个关键特征;

表2

6.根据权利要求5所述的方法,其特征在于,所述的利用所述流特征数据集和所述关键特征对xgboost模型进行训练,得到训练好的xgboost模型,包括;

针对每种不同的drdos攻击从所述流特征数据集中选取对应的流特征,将这些流特征进行合并整理,将合并整理后的流特征的历史数据作为训练样本,使用所述14个关键特征对所述训练样本进行筛选得到训练所用的数据集,利用所述数据集训练xgboost模型,使用xgboost算法调整xgboost模型的参数,对比不同参数下xgboost模型的检测性能指标,选择具有最高检测性能指标的xgboost模型作为训练好的xgboost模型。

7.根据权利要求6所述的方法,其特征在于,所述的利用训练好的xgboost模型对待检测网络的入口流量数据进行在线检测,输出待检测网络的drdos攻击检测分类结果,包括;

在待检测网络的入口流量进行流量速率检测,当检测出的流量速率超过设定的流量阈值时,开始在线检测过程,使用网络数据采集分析工具tcpdump进行流量捕获,生成数据包原始信息,将数据包划分为不同的网络流,使用网络流量特征提取工具cicflowmeter进行网络流特征提取,将网络流特征信息输入到训练好的xgboost模型,xgboost模型使用所述关键特征对输入的网络流特征信息进行检测,对每条网络流信息输出正常或者具体的drdos攻击分类标签,得到所述待检测网络的drdos攻击检测分类结果。

技术总结
本发明提供了一种基于机器学习和特征选择的DRDoS攻击检测方法。该方法包括:通过网络数据采集分析工具定期收集网络入口的数据包头信息;根据数据包头信息中的五元组将收集的数据包划分为不同的网络流,提取各个网络流的流特征建立数据集;使用攻击原理分析、特征重要性排名和特征分布对所述流特征数据集中的网络流特征进行特征筛选,得到关键特征;利用所述流特征数据集和所述关键特征对XGBoost模型进行调参训练,得到检测性能指标最好的XGBoost模型;利用训练好的XGBoost模型对待检测网络的入口流量数据进行在线检测,输出流量的检测分类结果。本发明利用XGBoost来学习DRDoS攻击的行为,可以识别出网络中的多种类型的DRDoS攻击,降低网络中的恶意流量。

技术研发人员:周华春;杨天奇;王玮琳;李丽娟;李颖之;沈琦
受保护的技术使用者:北京交通大学
技术研发日:2021.05.17
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-2230.html

最新回复(0)