软件定义网络交换机DDoS攻击检测方法

2023-03-13 15:25刘尚昆
信息记录材料 2023年1期
关键词:决策树交换机流量

刘尚昆

(中央广播电视总台 北京 100859)

0 引言

在信息化、数字化持续发展的大环境下,网络安全已经成为重要的技术前提。分布式拒绝服务(DDoS)是常见的网络攻击方式,其主要危害是导致网络及主机瘫痪。SDN作为重要的网络发展方向,应该提升对DDoS攻击的检测及防范能力,因而借助算法研究相关的检测技术。

1 DDoS攻击检测模型

1.1 检测模型算法设计

研究中利用随机森林算法构建DDoS攻击的检测模型,该算法能够生成多个相互独立的决策树,利用各个决策树处理DDoS攻击数据,生成每一个决策树的预测结果,根据预测的准确率进行投票,从而确定效果最佳的决策树,将其作为DDoS攻击的预测模型。为避免随机森林算法受到决策树随机生成的影响,在算法中增加了选择性集成模块,用来优选决策树模型,其核心作用是选择出准确率最佳的基分类器,提高整个算法模型对不同类别数据的检测识别效果。模型优选阶段需同时考虑多个方面的影响因素,除准确率之外,算法运行阶段的系统开销、算法的时间复杂度也是非常重要的模型评价指标,以算法的时间复杂度为例,其作用为描述算法的运行时长,过长的运行时间不利于实用。

1.2 数据来源及预处理

1.2.1 数据来源

算法模型的训练和检验需要一定规模的DDoS攻击数据集,此次采用KDDCup99网络入侵检测数据集,将数据中的80%用作模型训练,剩余的20%用于模型检测。该数据集中的数据分为DoS攻击、R2L(远程非法访问)、U2R(普通用户对本地超级用户特权的非法访问)、Normal(正常)等类别,并且具有明确的分类标识。数据总规模约为500万条,从中抽取100万条作为实验数据,其中DoS数据占比为69.1%,正常数据占比为22.3%,剩余数据代表其他类型的网络攻击方式。

1.2.2 数据预处理

(1)属性转换

由于单条数据较大,不便于运算。因此,对数据进行预处理,措施为分类设置数字标识。凡是DoS数据均采用数字1进行标记,Normal类数据采用数字0进行标记。由于每一条数据记录的结构相同,对应位置上的信息亦可进行数字化转换[1]。

(2)选取流特征

DDoS攻击检测在本质上是从综合性的网络数据流中筛选出DDoS攻击数据流,网络攻击数据存在差异化的特征,而这些特征点是识别DDoS攻击的关键依据。因此,检测模型中需建立特征选择算法模块,包括特征子集提取和特征子集评价两个环节。研究中将随机森林算法和包装器模型整合在一起,形成DDoS攻击特征选择算法模块。图1展示了包装器模型实现特征选择的过程。在构建特征选择算法时,特征数量对算法模型的分类精度具有较大的影响,经过大量的数据检测,发现特征数量在1~9时,算法分类精度逐步上升,超过9之后,算法分类精度逐步下降。因此,最佳特征数量为9,此时的分类精度为95.6%。对应的特征信息包括service、count、dst_host_count等。每一条DoS训练数据中都包含这些字段信息。在SDN网络的主机上可设置服务器的日志选项,从而获得特征字段信息。

图1 包装器模型特征子集选择过程

1.3 模型训练

1.3.1 模型训练条件

为了保证模型训练过程的稳定性,采用Linux操作系统,以Python语言开发机器学习的算法模型,开源的Anaconda可用于创建实验中的虚拟SDN网络。

1.3.2 参数设置

在随机森林算法中需科学设置决策树,主要指标包括决策树的数量、决策树中特征子集的个数,前者记为n_trees,后者记为m。另外,在优选阶段通过参数λ决定是否保留决策树,该参数也需要人为进行设置。根据此类实验的特点,依据经验将m设定为3,λ的取值为0.7,n_trees从20~160梯度增加。在模型训练阶段将单次样本数量设定为8万条,同时,根据K交叉验证原理选取折数为5,该参数决定了单次训练中最终可形成的检测模型的数量[2]。

1.3.3 训练结果分析

(1)决策树与模型训练时间、测试时间的关系

随机森林中决策树的数量影响着算法的运算量。显然,随着决策树的增加,算法的运算量、运算时间、训练算法模型的总时长以及测试阶段的总时长都会增加,表1记录了决策树的数量与算法模型训练时长和测试时长的关系,实际检测结果与预期一致。

表1 决策树数量与训练时间和测试时间的关系

(2)决策树数量与DDoS攻击的检测精度

每一个检测数据集可形成5个能够检出DDoS攻击的模型,通过算法判断各个检测模型的识别精度,然后分别求出平均值。决策树数量与算法模型的检测精度存在一定的关联,表2为两者之间的对应关系。从中可知,当100≤n_trees≤160时,算法模型对DDoS攻击的检测精确度略高于96%,此时决策树数量增加对检测精度的影响不再显著,基本不能再提升精度。

表2 决策树数量与DDoS攻击检测精度的对应关系

2 软件定义网络架构下的DDoS攻击检测系统

软件定义网络(SDN)能够降低硬件设备对网络架构的制约,SDN网络的部署和升级如同在硬件设备上安装一个软件应用程序,便捷性显著提高,因而其应用范围不断扩大。SDN网络中DDoS攻击检测系统的设计要点如下:

2.1 数据采集模块

该模块的主要作用是采集SDN网络中的攻击数据。采集方式分为主动、被动两种。在主动采集中,由POX控制器与交换机进行交互,通过报文的形式获得OpenFlow协议下的流表,将流表作为SDN网络中的初始数据集,控制器可主动从交换机上采集此类数据,每隔5 s向交换机发送一次请求[3]。在被动检测中,SDN网络利用table_miss事件匹配流表,未能匹配的数据转发到控制器,从而实现控制器被动获取流表数据。两种数据采集方式各有优势和劣势。主动采集方式存在数据实时性不强的问题,被动方式存在数据获取不全面的问题。在设计数据采集模块时,同时采用主被动方式获取数据源,最大限度改善数据的客观性,提升数据的全面性和实时性。

2.2 DDoS攻击检测模块

当检测系统以被动方式收集流表信息时,系统中设置的流特征检测模块对信息流进行判断,从中选择出符合要求的特征子集,此时再利用交换机对含有特征子集的数据包进行table_miss匹配,将成功匹配的数据包发送至目的地,并将其计入常规流量统计结果中。如果table_miss事件未能匹配流表数据包,则将这部数据包作为DDoS攻击的检测数据,将其发送至DDoS攻击检测模块。

当检测系统以主动方式获取流表信息时,直接将交换机向控制器发送的流表信息作为DDoS攻击的检测数据,由系统的DDoS攻击检测模块开展检测识别[4]。

一旦攻击检测模块发现检测数据中存在DDoS攻击的情况,则将相关数据发送至攻击响应模块,对其进行处理。如果未发现DDoS攻击或者其他攻击类型,则将数据转发至原目的地。

2.3 DDoS攻击响应模块

2.3.1 DDoS攻击响应模块的功能需求分析

(1)保护主机

DDoS攻击有可能导致服务器瘫痪,进而对运营主体产生经济损失或其他危害。因此,DDoS攻击响应模块的主要功能之一为保护服务器主机。

(2)准确区分正常流量和攻击流量

攻击响应模块只能对DDoS攻击流量进行处理,不能干扰正常流量的工作,因而该模块应具备准确的流量区分能力。

(3)制定危害控制策略

响应模块应针对DDoS攻击流量制定有效的控制策略,防止其产生实际性的危害。

2.3.2 工作流程及处理措施

(1)DDoS攻击响应模块的工作流程

系统中事先设定了报警分类,以便区分攻击流量和正常流量。当检测模块将DDoS攻击流量发送至攻击响应模块时,后者首先尝试识别攻击流量的报警类型,然后借助预设的控制策略处理DDoS攻击流量[5]。如果系统未能识别流量的报警类型,则将其视为正常流量。部分攻击流量可能存在异常,不在报警范围之内,此类数据直接丢弃。

(2)DDoS攻击响应模块的处理措施

从DDoS攻击的方式来看,一种为大量发送伪造的数据包,使目标网络及服务器瘫痪,通常将这种情况称为僵尸网络。另一种为借助大量伪造的IP访问目标服务器,从而导致其无法响应正常的网络请求。针对以上两种情况,可采用服务重定向的应对策略。其原理为将攻击SDN网络及服务器的网络请求或者数据包转发至特定的网络地址,从而避免DDoS攻击危害目标SDN网络[6]。

(3)DDoS攻击响应模块的策略选择

网络重定向是一种被动防御机制,只有当软件定义网络及其主机遭受DDoS攻击之后,算法模型才能对其进行检测,实施重定向操作。但这种防御机制存在一定的弊端,有可能将正常用户也重定向到备用IP地址。为了防止攻击响应模块阻塞正常流量,对控制中原IP地址的流表项进行计数,并对比该数值和预设的阈值m,如果m小于计数结果,则认为此时的流量来自DDoS攻击,并实施流量阻塞。这种策略的优点在于形成了缓冲机制,并非一检测到DDoS攻击就进行流量阻塞,而是借助阈值为正常用户提供流量窗口,从而降低误警率。

3 基于软件定义网络交换机的DDoS攻击检测实验

DDoS攻击检测模型是一套算法程序,需将其部署在SDN网络下的DDoS攻击检测系统中,从而实现检测功能,据此设计实验如下:

3.1 实验方法

3.1.1 实验环境

实验环境包括开展实验的软硬件工具,硬件方面主要为符合OpenFlow协议的交换机、POX控制器以及服务器等。软件层面主要为网络仿真工具和流量生成工具,前者使用Mininet,后者使用Scapy。实验中采用Python编写算法的程序代码。SDN网络具有虚拟性,Mininet可将控制器、交换机等创建为虚拟的网络元素,因而用作系统仿真。

3.1.2 实验数据及拓扑结构

(1)实验数据采集

实验中通过OpenFlow协议采集主动数据,由POX控制器按照5 s间隔向交换机发送请求,获取流表信息。Scapy能够通过函数随机生成伪造的IP地址,可将其作为发起伪造IP访问的DDoS攻击,实验中利用Scapy生成适用于被动采集方式的数据流量。

(2)拓扑结构设计

实验中将SDN网络系统设计为拓扑结构,系统中涵盖控制器1台、服务器主机15台、交换机4台。一台主交换机与POX控制器相连,另外三台交换机与主交换机相连,每一台次级交换机对应5台服务器。

3.1.3 开展实验

在以上系统构建完成后,将DDoS攻击检测的算法程序部署在虚拟环境下,然后开展实验。采用僵尸网络攻击模式,设置3组数据作为对比,每一组的总数据包均为10 000个,但其中攻击包的数量分别为2 500个、5 000个和7 500个。在交换机1和交换机4中分别选择一台主机发起DDoS攻击,将交换机3上的一台主机作为被攻击的对象,剩余的主机作为对比因素。

3.2 实验结果

3.2.1 攻击识别率结果

3组DDoS攻击的攻击比呈梯度递增,按照顺序,攻击比分别为25%、50%、75%。3组攻击数据对应的识别率分别为95.71%、96.21%、96.58%。可见,攻击检测模型对所有攻击类型的识别率随攻击比而提高,但整体上较为接近。同时,对比3组攻击比对应的误警率,其结果分别为3.24%、2.69%、2.31%,说明在攻击比较高的情况下,检测模型对DDoS攻击的敏感性更强,不易产生误报。

3.2.2 攻击检出率结果

识别率涵盖了DDoS攻击、非法访问等,因而还需进一步分析检测模型及系统对DDoS攻击的检出率。表3统计了3种攻击比在不同数据采集模式下的DDoS攻击检出率。从中可知,在不同的攻击比下,数据混合采集方式的DDoS攻击检出率高于主动采集和被动采集,效果最佳。

表3 DDoS攻击检出率统计表

3.2.3 攻击响应模块的应对效果

攻击响应模块主要通过重定向转移DDoS攻击的流量,重定向之后对DDoS攻击的数据采取删除操作。通过对比被攻击主机的连接数来判断攻击响应模块的应对效果。在25%攻击比下,被攻击服务器的初始连接数为1 966,重定向处理后的连接数为1 521,去除的DDoS攻击连接数占比为22.6%。在50%攻击比下,初始连接数为5 721,重定向后连接数为2 479,去除的DDoS攻击连接数占比为56.6%。在75%攻击比下,初始连接数为7 988,重定向后连接数为2 209,去除的DDoS攻击连接数占比为72.3%。说明在DDoS攻击越严重的情况下,响应模块的应对效果越突出。

4 结语

为了在SDN网络中准确地检测出DDoS攻击,应该先建立完善的检测系统,通过数据采集模块获取网络中的攻击流量,采集方式分为主动式、被动式、混合式。攻击检测模块可借助算法模型检测出DDoS攻击数据,随机森林算法用于构建检测模型。最后再通过攻击响应模块实施重定向,转移攻击流量,避免SDN网络及其主机出现瘫痪。

猜你喜欢
决策树交换机流量
冰墩墩背后的流量密码
张晓明:流量决定胜负!三大流量高地裂变无限可能!
寻找书业新流量
一种针对不均衡数据集的SVM决策树算法
修复损坏的交换机NOS
决策树和随机森林方法在管理决策中的应用
使用链路聚合进行交换机互联
基于决策树的出租车乘客出行目的识别
基于肺癌CT的决策树模型在肺癌诊断中的应用
PoE交换机雷击浪涌防护设计