温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
SDN
机器
学习
联合
防御
DDOS
攻击
方案
研究
冯玮
第 38 卷哈尔滨师范大学自然科学学报Vol 38,No 6 2022第 6 期NATUAL SCIENCE JOUNAL OF HABIN NOMAL UNIVESITYSDN 与机器学习联合防御 DDOS 攻击方案研究*冯玮,吴玉芹,孙浩航(宁德师范学院)【摘要】网络技术的飞跃式发展不断推陈出新,软件定义网络成为当下热门技术为信息时代注入了新鲜动力,而 DDOS 攻击的危害对于传统网络和 SDN 都是不容忽视的 基于 SDN 架构联合机器学习算法共同设计了一种防御 DDOS 攻击的方案,方案通过提取网络流量特征使用机器学习算法对 DDOS 异常流进行识别与分类,进而在 SDN 控制器层面实施拦截与防御动作 实验证明相对于传统的网络部署方式,该方案在攻击过程中更具备防御性,能在相对短的时间内自动执行防御动作,对抑制 DDOS 攻击具有一定的效果【关键词】SDN;机器学习;防御;DDOS【中图分类号】TP393【文献标识码】A【文章编号】1000 5617(2022)06 0054 08收稿日期:2022 08 16*基金项目:福建省科技厅自然基金项目(2020J01431;2020J01430;2019J01843)0引言随着网络技术的不断创新,出现了各类新型的应用如物联网、5G 网络、云计算等 新一代信息技术的广泛应用,一方面促进了网络空间的飞速发展,另一方面网络空间威胁也层出不穷 网络空间安全逐渐成为信息安全研究者的关注点,例如分布式拒绝服务攻击(Distributed Denial ofService,DDOS)1 据绿盟科技联合腾讯安全发布的 2021 年全球 DDOS 威胁 报告指出 2021年 DDOS 攻击次数不断增长,最大瞬时 DDOS 攻击流量达到 2 0 级 Tb 创历史之最,显然 DDOS攻击已成为目前网络空间安全中最具破坏性的攻击之一 在传统网络中主要依靠部署网络安全设备如防护墙、入侵检测或防御系统等方法应对诸如 DDOS 等威胁,这些方法普遍为静态策略依靠预设的规则完成检测与防御,因而缺乏主动性当面对新型、大规模的网络攻击局限性凸显 为了解决上述问题迫切需要推陈出新,使用更具先进性与智能化的防御方案软件 定 义 网 络(Software Defined Networ,SDW)这个概念最初是由斯坦福大学 N McKeown团队于 2009 年提出,后来逐步发展成为一种设计、构建与管理网络的新方法2 与传统网络结构不同,SDN 主要由控制层面与数据层面构成3 控制层是 SDN 体系的核心层,依靠控制层中的 SDN 控制器收集并掌控全网的拓扑与链路状态信息,通过北向接口与应用层的各种应用交互,通过转控分离协议如 OpenFlow 等南向接口与数据层面的转发设备实现数据的互通,并完成基于流表的转发功能 这种方式把网络的数据层面与控制层面去耦合,将更加有利于网络资源的利用、网络流量的灵活管控以及新型协议的部署与应用4,实现了网络的开放性与可编程性第 6 期SDN 与机器学习联合防御 DDOS 攻击方案研究近年来人工智能领域飞速发展特别是其分支机器学习研究也开始爆发,促进了智能化入侵检测技术的不断发展,在网络技术及网络安全领域也有许多的应用5 因此利用新型的 SDN 网络架构,结合先进的机器学习方法用以应对当前错综复杂的安全威胁成为网络空间安全领域新的研究方向,为抵御 DDOS 攻击开拓了全新的思路 因此,该文基于 SDN 架构采用机器学习经典算法设计了一种防御 DDOS 攻击的方案,通过提取网络流量特征信息使用机器学习模型算法实现网络异常流量侦测与识别,进而通过 SDN 控制器层面拦截异常流量实现防御动作1防御 DDOS 攻击方案与实现步骤如图 1 所示,基于 SDN 架构和机器学习方法的 DDOS 防御方案主要由 SDN 架构环境、数据采集与特征提取、机器学习异常检测和防御机制 4 个部分组成,接下来将简单介绍 4 个模块的具体功能图 1防御模型结构图1 1SDN 架构环境防御方案中所搭建的 SDN 架构环境自底向上依次分为转发层、控制层与应用层 如图 2 所示,底层转发层包含网络通用转发设备如 SDN交换机等,与传统网络路由器依靠 IP 分组目的地址进行转发有很大的区别,SDN 的转发规则需要精确定义在 SDN 交换机的流表之中,所有交换机的流表项是通过南向 API 由 SDN 控制器进行计算、管理与安装的 而 SDN 架构的核心部件是控制层主要用软件实现,包括 SDN 控制器(网络操作系统)控制层维护准确的网络状态信息包括远程链路、主机和交换机的信息,同时把这些信息通过北向 API 提供给应用层上的各种网络控制应用程序,使得这些程序能对底层的网络设备进行监视、编程和控制 最高层应用层是由若干网络控制应用程序构成,使得整个 SDN 网络具有可编程性6,同时具有更好的感知与管控能力图 2SDN 架构环境图1 2数据采集与特征提取流量数据的采集与分析主要通过数据采集与特征提取模块完成7 该模块负责每隔一个时间周期向 SDN 交换机发送请求查询整个数据平面的所有流表项 本次实验设置每 5 s 启动一次数据采集动作,首先通过 Linux 的网络数据采集分析工具 TcpDump 进行适当配置参数捕获流量数据,并将数据流以 Pcap 格式保存在指定路径由于原始数据有着不同的数据类型和特征信息,接着通过以太网流量双向流生成器 CICFlowme-ter 对得到的 Pcap 文件中流量特征进行提取,输入包含流量数据特征信息的 Pcap 文件解析生成多维字段,最终以 csv 文件格式输出和保存 从多维的字段信息中选择若干网络流的关键特征字段 鉴于 DDOS 攻击流量的特点这里选取了5 个特征作为攻击检测的参数:(1)数据流持续时间;(2)每秒传输的数据包字节数;(3)每秒传输的数据包数;(4)两个流之间的平均时间;(5)两个流之间标准差 经过特征提取的数据等待输入机器学习异常检测模块1 3机器学习算法异常检测基于机器学习的异常检测模块使用数据挖掘的方式剖析通过数据采集与特征提取模块处55哈尔滨师范大学自然科学学报2022 年 第 38 卷理的网络流量数据,对流量数据进行分类从而实现 DDOS 攻击异常检测,此模块是整个方案的核心部分 检测过程应用机器学习监督学习支持向量机(Support Vector Machine,SVM)算法8 作为分类器完成区分与检测的任务,从而判断数据是异常攻击流量和正常数据流SVM 算法原理主要是根据结构风险最小化原理,构造一个目标函数将不同类别的模式尽可能地区分开来,该文主要讨论在线性可分的情况下,存在一个超平面使得训练样本完全分开,该超平面可描述为公式(1):wx+b=0(1)其中,“”表示点积,w是n维向量,b为偏移量最优超平面是使得每一类数据与超平面距离最近的向量与超平面之间的距离最大的一种平面最优超平面可以通过求解公式(2)的二次优化问题来获得:min(w)=12w2(2)假定训练数据集被定义为(xi,yi);xi N;yi=1;i=1,2,3,n满足约束条件如公式(3)所示:yi(wxi+b)1i=1,2,3,n(3)在特征数目特别大的情况,可以将此二次规划问题转化为其对偶问题如公式(4)(6)所示:maxw(a)=ni=1ai12ni,j=1aiajyiyj(xixj)(4)w*=ni=1aiyixi(5)b=yi wxi(6)满足约束条件如公式(7):ni=1aiyi=o,ai 0,i=1,2,n(7)公式(7)中 a=(a1,an)是拉格朗日乘子,w*是最优超平面的法向量,b 是最优超平面的偏移量,在这类优化问题的求解与分析中,KKT(Karush Kuhn Tucker,卡罗需 库恩 塔克)最优化条件是确定某点为极值点的必要条件 KKT 条件将起到很重要的作用,在公式(7)中,其解必须满足公式(8):ai yi(wx+b)1=0,i=1,2,n(8)从公式(5)可知,那些 ai=0 的样本对分类没有任何作用,只有那些 ai 0 的样本对分类才起作用,这些样本称为支持向量,故最终的分类函数被定义成公式(9)的形式:f(x)=ni=1yiai(xxi)+b(9)最终根据 f(x)的符号来确定 x 的分类与归属,将获取的值与类标签一起添加在训练数据集中Sklearn 是一种当前热门的基于 python 的机器学习框架9,提供了很多友好 API 可以较好的完成机器学习的流程工作:数据处理、分割数据、训练模型、验证模型、使用模型、调优模型 该方案主要利用 Sklearn 完成 SVM 算法模型构建,对模型进行训练前以列表的形式载入 SVC 学习模型,随后载入大量的数据集对SVC学习模型进行训练,训练集为公开数据集 载入数据必须经过特征提取形成 csv 格式的流量集,再处理形成机器学习模型需要的向量形式,同时分配测试数据在总数据集的占比 该方案中测试集占总数据集的10%其中X 向量为数据集中流量的各特征字段,Y 向量为流量分类标签 数据载入实现源码如下:def load_data(self,dataset,count=3500,test_size=0 1,random_state=42):data=Dataset(dataset,count)self train_X,self test_X,self train_Y,self test_Y=train_test_split(data getX(),data getY(),test_size=test_size,random_state=random_state)接着利用 SVM 模型完成异常流量识别,模型执行任务时异常流量的列标签被重命名为“Syn”,通过判断测试数据集中 Lable 字段是否出现“Syn”标志来判定是否出现异常流量 异常流量被系统捕捉后最终将上述判断的结果定义为布尔值,以此对应流量状态的变化 系统设置“NOMAL”、“WANING”、“DANGEOUS”三级状态对于网络中出现的异常情况,见表1 当网65第 6 期SDN 与机器学习联合防御 DDOS 攻击方案研究络中流量正常时,系统状态反馈为“NOMAL”系统侦测到一条异常流量信息时,系统会将反馈“WANING”,在此之后进行计时(一个流量捕获周期)如果再无捕捉到异常流量,系统状态将重新恢复为“NOMAL”状态,如果又一次侦测到异常流量,防御系统则进入“DANGEOUS”状态,在向用户反馈的系统状态的同时自动执行防御动作表 1系统状态表系统状态判定条件动作NOMAL无异常流或恢复正常无WANING1 条异常流等待(计时器启动)DANGEOUS 1 条异常流自动执行防御与拦截1 4攻击防御当防御系统进入“DANGEOUS”状态时将触发防御机制中的流量管理模块 该模块集成了控制器管理员登录、发送命令等方法,同时配置SDN 控制器的 UL、端口号、登录账户与密码,为实现与SDN控制器建立通讯提前做好参数准备模块中传送指令的方法主要包括 HTTP 协议的Put、Get、Post 等方法 防御动作模块将识别出的危险流量中的关键信息包括源 IP 地址、端口号等,通过与 SDN 控制器建立联系,实现了异常流量检测与防御的自动化动作2防御方案实验与结果分析为了验证所提出方案的有效性,设计了实验拓扑如图3 所示,C1 表示 OpenDayLight 控制器,H1 为正常主机访问 Web 服务器,H2 H6 组成僵尸网络对 Web 服务器发起 DDOS 攻击,Sw1 和Sw2 为两台OpenFlow软件交换机Open VSwitch,WS1 则模拟一台 Web 服务器,接着在其中完成对 DDOS 攻击防御方法的仿真实验并对实验结果进行分析图 3实验拓扑图2 1实验环境实验物理主机:配置 Intel 酷睿 i5 CPU 和8GAM 的 PC 一台实验操作系统:桌面应用为主的 Linux 操作系统最新版 Ubuntu20 04SDN 架构环境:在 Mininet2 1 网络仿真