logo资料库

论文研究-基于SDN的DDoS攻击检测技术的研究 .pdf

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
中国科技论文在线 http://www.paper.edu.cn 基于 SDN 的 DDoS 攻击检测技术的研究 赵智勇,辛 阳** (北京邮电大学网络空间安全学院,北京 100876) 5 10 摘要:软件定义网络(SDN)是一种新型的网络架构,核心优点是转发与控制相分离,并且 用户可以自定义控制器。分布式拒绝服务攻击(DDoS)是目前互联网正面临的主要威胁之 一。由于 SDN 的这种架构会导致其对 DDoS 攻击存在单点失效的危机,因此本文提出一种 基于熵值计算的 DDoS 攻击异常检测算法,该算法能够有效的利用控制器集中控制的特点, 其主要流程是在 SDN 的环境下利用在控制器上接收到的 PACKET-IN 数据包,然后取出数 据包中的目的 IP 字段进行 Renyi 熵的计算,然后通过实验来设定相应的阈值进而判断是否 受到了 DDoS 攻击。最后,利用 POX 控制器和 Mininet 仿真器构建出一个实验仿真平台, 并通过实验验证该检测方法的可行性和检测性能。 关键词:软件定义网络;分布式拒绝服务攻击;Renyi 熵;异常检测 中图分类号:TP399 15 Research on DDoS attack detection technology based on SDN ZHAO Zhiyong, XIN Yang 20 25 30 35 (School of cyberspace security, Beijing University of Posts and Telecommunications ,Beijing 100876) Abstract: Software defined network (SDN) is a new network architecture. The core advantage of it is separation between forwarding and control, and users can customize the controller.At present, distributed denial of service attack (DDoS) is one of the major threats to the Internet.Because the architecture of SDN can cause a single point failure to DDoS attack, this paper proposes a DDoS attack detection method based on entropy algorithm.The algorithm can effectively utilize the characteristics of controller centralized control. The main process is to use the PACKET-IN packet received on the controller under the environment of SDN, then take out the IP field in the packet for the calculation of the Renyi entropy, and then set the corresponding threshold by the experiment to Judge whether or not it has been attacked by DDoS.Finally, an experimental simulation platform is built by using POX controller and Mininet simulator.The feasibility and detection capability of the detection method are verified by experiments. Key words: Software definition network ; Distributed denial of service attack ; Renyi entropy ; anomaly detection 0 引言 传统的网络体系架构对现代互联网的发展做出了不可磨灭的贡献,然而当前云计算、大 数据和物联网的快速发展也对传统的网络体系提出了挑战,因此软件定义网络(Software Defined Network,SDN) [1]应运而生,它是一种新型的网络架构,意在重塑互联网,摒弃传 统的渐进叠加和向前兼容的原则,核心理念是将传统 IP 网络的路由控制和数据转发进行分 作者简介:赵智勇(1994-),男,硕士研究生,主要研究方向:网络安全,云计算 通信联系人:辛 阳(1977-),男,副教授,主要研究方向:网络信息安全、云计算大数据安全和灾备安 全. E-mail: yangxin@safe-code.com - 1 -
中国科技论文在线 http://www.paper.edu.cn 40 离,使控制更加的集中化,通过给用户提供软件可编程的方式来实现对网络流量的灵活控制。 虽然 SDN 可以解决传统网络的遗留问题,但 SDN 的安全性和可靠性研究还处于初级阶段, 尤其是其集中式控制模式所带来的单点失效的风险使它更容易成为攻击的目标。在当前互联 网的攻击类型中,分布式拒绝服务(Distributed Denial of Service,DDoS)攻击危害较大[2],它 通过消耗目标的网络带宽以及系统资源使得目标无法正常的提供服务。随着 SDN 的推广和 快速发展,它同样会和传统的网络体系一样面临 DDoS 攻击的挑战,因此本文着重于研究在 SDN 的架构下对 DDoS 攻击的检测。 45 在 SDN 转发与控制相分离的特性下,当交换机接收到数据包时会先匹配流表项,如果 有对应的流表项就对数据包进行转发,如果没有对应的流表项时,就会将该数据包转发给控 制器进行处理,如果有大量的数据包同时涌向控制器的话就会导致其整个网络瘫痪。因此本 文主要通过对控制器进行自定义编程,提取出控制器接收到的 Packet-in 数据包里的特征信 息,收集流表之后进行熵值计算,来实现对 DDoS 攻击的检测。 50 1 相关技术 1.1 SDN 网络架构 SDN 把传统网络设备紧耦合和网络架构拆分为应用、控制、基础设施三层分离的体系 架构[3]。它的最上层是应用层,包括各种不同的业务和应用,控制层可以实现网络拓扑的收 集、路由的计算、流表的生成及下发等功能,基础设施层中的底层设备仅负责流量的转发以 55 及策略的执行,北向接口的作用是使得业务应用能够便利地调用底层的网络资源和能力,南 向接口定义了开放的 OpenFlow 标准,控制器就是通过南向接口对底层设备进行管理和控制。 图 1 SDN 网络架构 Fig. 1 SDN network architecture 60 1.2 DDoS 攻击以及检测方法 DDoS 攻击是 DoS 攻击的加强版,它比一般的 DoS 攻击更具有破坏性,其攻击的一般 过程如图 2 所示,首先由攻击者去控制一台或多台具有高性能的控制傀儡机,进而会把它当 作跳板机去控制更多的攻击傀儡机,在攻击者控制足够多的攻击傀儡机后,由控制傀儡机发 出指令,通过攻击机群向目标机发送大量数据包,使得目标机的资源被过度消耗而无法提供 - 2 -
中国科技论文在线 http://www.paper.edu.cn 65 正常的服务,常见的攻击类型有 SYN Flood,UDP Flood,HTTP Flood,ICMP flood 等。 图 2 DDoS 攻击的一般过程 Fig. 2 The general process of DDoS attack 针对 DDoS 攻击的检测方法大致有几个方向,基于 Deep Packet Inspection(DPI)的检 测技术,基于流的 DDoS 检测技术,基于机器学习的检测技术,基于熵值的检测技术等。其 中基于 DPI 的思想是通过对网络关键点处的流量和报文进行单包检测,可以根据事先定义 好的策略对流量进行过滤控制[4]。基于流的检测技术是将包头部相同的数据包归为一道流, 可以降低系统开销。机器学习可以利用机器学习算法对模型进行训练,对待测数据进行分类 检测。熵值检测是提取出网络信息流中的特征值计算熵值估计数据包的随机性来进行检测。 1.3 香农熵和 Renyi 熵 70 75 熵是用来衡量随机变量的多样性、不确定性和随机性的指标。随机变量的随机性越高, 熵值越大,反之熵值越小。香农熵的定义如下: −= H n  = 1i p i log p i 本文采用香农熵的一般情况 Renyi 熵来对流量进行度量,文献[5]给出了 Renyi 熵的一般 80 定义如下: H )x( α = 1 α -1 log α ) p i n ( 2 = 1i 其中 ip 是随机变量 ix 的概率,α为 Renyi 熵的阶数,满足 ≥ αα , ≠ 0 1 ,当 1→α 时, )(xαH 收敛于香农熵。 2 前人工作综述 85 目前,针对 SDN 对 DDoS 攻击检测方法的研究还处于起步阶段,主要采用移植改造传 统网络的方法,少数人基于 SDN 的新特性展开了研究工作。SDN 网络架构下数据的转发是 以流为基本单位,目前 SDN 下的 DDoS 攻击检测主要是针对流的攻击检测方法,针对新型 检测方法,国内外高校、学者提出了自己的方法和见解。 - 3 -
90 95 100 105 110 115 120 中国科技论文在线 http://www.paper.edu.cn 龚庆祥[6]等人的《软件定义网络中分布式拒绝服务攻击研究》论述了控制平面以及数据 平面受到 DDoS 攻击的特点,在控制平面上利用 MSlot 算法证明了 DDoS 攻击针对 SDN 控 制平面的可行性,在数据平面上利用“快填充隐蔽流 DDoS 攻击”和针对该类 DDoS 攻击的 检测算法通过模拟实验证明了比以前的算法更加的高效。 龚冉[7]等人的《基于 SDN 的负载均衡和 DDoS 攻击检测技术的研究》介绍了 SDN 网络 架构,Floodlight 控制器、OpenFlow 协议、Open vSwitch、Mininet,他也针对 SDN 的架构 提出了一种基于流量特征的 DDoS 攻击检测技术,将机器学习中的 SVM-KNN 算法通过引 入 Relief 算法的方式进行加权改进,最后通过 SDN 网络仿真环境进行实验,验证了该算法 具有较高的检出率。 李赫[8]等人的《基于 SDN 的 DDoS 流量识别与控制技术研究》对 SDN 的相关技术进行 了介绍,之后介绍了 DDoS 的攻击方式与特点,然后针对 SDN 网络与 DDoS 攻击的特性, 对基于熵值运算的 DDoS 检测算法进行了改进,通过实验证明了其有效性。 杨梦婷[9]等人的《基于 OpenFlow 的 SDN 网络仿真平台设计与 DoS 攻击检测》提出了 针对 SDN 控制器的新型 DoS 攻击,以及提出针对 Host 传统 DoS 攻击的 OpenFlow 检测方 案,主要是通过数据采集、协议解析、规则匹配和攻击主动响应四个步骤详细的描述了检测 方案。 Mousavi S M,Sthilaire M[10]等人的《Early detection of DDoS attacks against SDN controllers》提出了基于目的 IP 的信息熵的方法来进行早期检测,目的是防止控制器瘫痪, 降低控制器负担。 以上学者基于 SDN 对 DDoS 攻击检测的方法主要有两种,一种是基于机器学习的检测 方法,一种是基于熵值计算的检测方法,其中采用熵值的计算方法来检测 DDoS 不需要对检 测系统进行大量的训练,节省了方法部署的时间。同时,熵值计算所产生的计算负载较小, 与机器学习检测方法相比,能够节省系统的计算资源。 3 检测算法的设计 在 SDN 网络中,控制器会在 OpenFlow 交换机中配置一个流表项,当有数据流到达时, OpenFlow 交换机会对数据包的包头进行解析,然后与本地流表项进行匹配,若匹配成功 OpenFlow 交换机会根据匹配成功的流表项中的动作对数据流进行处理,并把对应的流表计 数器加 1。若匹配不成功,交换机就会将数据包封装成 Packet_in 消息发送给控制器,然后 由控制器决定是否下发流表。每个流表包括匹配域,计数器,动作三个域,如下图所示: 图 3 流表项结构 Fig. 3 Flow table structure - 4 -
中国科技论文在线 http://www.paper.edu.cn 在进行对数据流的检测之前,需要对数据流进行一个预处理,由以上 OpenFlow 协议的 特性可知,我们可以对流表项提取出关键属性,比如匹配域和计数器字段。而在匹配域中, 我们可以提取出针对数据包常用的特征,如五元组,然后再把处理之后的数据流传送到等待 队列当中,进入流表收集过程,最后进行算法检测。 具 体 的 流 表 收 集 过 程 是 通 过 SDN 控 制 器 周 期 性 的 向 OpenFlow 交 换 机 发 送 ofp_flow_stats_request 报文,以请求交换机把流表信息上传给控制器,交换机收到请求信息 之后会回传 ofp_flow_stats_reply 报文,携带对应流表信息。 熵是用来衡量随机变量随机性的一个指标,而在通常的网络通信过程中,针对整体的网 络数据流仍然有较大的随机性,当某一主机遭受到 DDoS 攻击时,就会有大量的数据包发往 被攻击主机,这时数据流的熵值就会和正常的数据流的熵值有较大不同。由于通常 DDoS 攻击的发起者都会伪造大量的源 IP 地址来躲避检测和防御,而目的 IP 地址通常是被攻击的 主机,因此大量拥有相同目的 IP 的数据包会降低数据流的随机性,介于这个特性,本文采 用目的 IP 地址作为流量特征,通过在一个窗口内计算一次数据包的熵值,来和阈值进行比 较,来检测 DDoS 攻击是否发生。文献[11]证明了 Renyi 熵比香农熵更能增大两个不同分布之 间的差异,故本文对不同阶数的 Renyi 熵进行熵值计算并和香农熵的计算结果进行比较。 根据 Renyi 熵的定义,把流表项中的某个属性(如目的 IP 地址)记为 X,其特征值记 为 N,则数据包的流表项中属性 X 出现的次数为 in ,X 的表示记为 = X = N 特征值出现的总次数记为  发流中属性 X 的 Renyi 熵计算方式如下: = 1i S in ,根据信息熵中概率计算的方法,则 H )x( α = 1 α -1 log ( 2 α ) p i n = 1i …= ,1,2 N }, , p = ,在 SDN 转 i i,{ni n i S 125 130 135 140 检测流程描述如下: 1)当数据流到达交换机时,交换机会对其匹配流表项,若满足条件则把数据包当中的 目的 IP 字段记为 X,反之由交换机发送 packet-in 数据包由控制器下发流表。 2)对 X 进行判断,若它不在哈希表中,那么把它加入哈希表,并把它出现的次数 in 取 145 值为 1,反之把它出现的次数 in 加 1。 3)判断哈希表中总的数据包的个数 S 是否满足窗口大小,若满足,则利用熵值计算公 式对该窗口内的数据包进行一次熵值 )x(αH 的计算,反之继续等待下一个数据包到达。 4)若上一步计算出的熵值比阈值要低,那么就把异常队列计数器加 1,反之把它清零。 若异常队列计数器到达了阈值检测系统就判断发生 DDOS 攻击。检测算法流程图如下: - 5 -
中国科技论文在线 http://www.paper.edu.cn 150 图 4 检测算法流程图 Fig. 4 Flow chart of detection algorithm 该算法需要通过具体实验对如下几个重要的参数进行确定:窗口大小,Renyi 熵的阶数, 针对不同程度攻击的阈值以及异常队列计数器阈值。 155 4 仿真实验和分析 4.1 仿真实验环境搭建 在该仿真实验环境中使用 POX 作为 SDN 控制器,使用 Mininet 模拟网络环境。 其中 POX 是基于 Python 开发的轻量级的 SDN 控制器,取代了之前的 NOX 控制器,它 基于组件化设计,为软件组件提供定义良好的 API,网络管理者可以有效地利用 API 创建新 的网络管理和控制应用程序。在本次仿真实验中,需要把上文提出的检测模块部署在 POX 控制器中,使其可以记录接收到的数据流的信息,并且能够计算每个窗口中接收到数据包的 熵值,并生成记录文件。 Mininet 是一个轻量级的软件定义网络和测试平台,并且支持 OpenFlow、OpenvSwitch 等各种协议,它具有很好的硬件一致性和高扩展性,能够高度自定义网络结构,在此进程虚 拟化的平台下开发的代码可以很容易的迁移到真实的环境中,经常被用来仿真 SDN 网络, 在此环境下 SDN 交换机使用 OVS(OpenvSwitch),整个仿真环境结构如下图所示: 160 165 - 6 -
中国科技论文在线 http://www.paper.edu.cn 图 5 仿真环境结构 Fig. 5 Simulation environment structure 170 实际的仿真环境配置是在一台笔记本电脑上面运行了两台 VMware 虚拟机,分别配置了 175 180 185 190 POX 控制器和 Mininet 仿真器,具体配置如下所示: 宿主机: 操作系统:Win10 专业版 CPU: Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHZ(8 核) 内存:16G 硬盘:500G POX 控制器虚拟机: 操作系统:Ubuntu14.04 Server CPU: Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHZ(2 核) 内存:6G 硬盘:50G Mininet 虚拟机: 操作系统:Ubuntu14.04 Server CPU: Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHZ(2 核) 内存:6G 4.2 仿真实验环境搭建 搭建该实验环境是通过 Mininet 提供的 Miniedit 来实现的,它提供了一种可视化界面方 便用户自定义拓扑,界面直观,可视性强。使用 Mininet 建立了由 1 个 POX 控制器,3 台交 换机与 18 台主机相连的网络,如图 6 所示,其中 h1 至 h18 的 IP 地址为 10.0.0.1 至 10.0.0.18, 选择 h18 这台主机作为被攻击主机,h1 作为攻击者来发动攻击,h2 和 h3 发送正常流量。具 体发动攻击的方式是 h1 主机上面运行 Scapy 程序,该程序可用来实现数据包的产生、攻击 与数据包的伪造等功能,本文采用 Scapy 中的“random”函数来产生随机的源 IP 地址。在 Scapy 中还可以设置数据包类型以及数据包发送时间间隔,在本文中,正常流量以及攻击流 量统一采用 tcp 的数据包类型,可以设置不同的数据包发送时间间隔来模拟出不同程度的 - 7 -
中国科技论文在线 http://www.paper.edu.cn 195 DDoS 攻击流量,然后对不同程度的攻击强度进行实验对比分析。 200 205 210 图 6 实际仿真环境 Fig. 6 Actual simulation environment 4.3 实验及分析 4.3.1 窗口大小 在进行实验分析之前需要对几个关键参数进行确定,如窗口大小,Renyi 熵的阶数,异 常队列计数器阈值以及针对不同程度的 DDoS 攻击所设置的阈值大小,在通过一定次数的实 验对以上参数确定之后就可以使用本文提出的算法对 DDoS 攻击进行检测判断。 首先是对窗口大小参数的选择,窗口是对数据包收集的样本空间,如果设置太小的话会 影响算法判断攻击的准确度,如果设置太大会给控制器带来更大的计算负载,所以在 DDoS 攻击检测过程中,窗口大小起着至关重要的作用,故首先采用香农熵的计算方式来选择合适 的窗口大小,下表显示了在 25%的攻击流量下对不同窗口大小所进行 20 次测试的统计结果: 表 1 窗口大小对熵值的影响 Tab. 1 The influence of window size on Entropy W AH NH H − N H A NS AS 5 1.36 1.97 0.61 0.31 0.20 10 2.21 2.79 0.58 50 3.23 4.04 0.81 100 3.42 4.09 0.67 500 3.60 4.11 0.51 1000 3.75 4.13 0.38 0.40 0.36 0.42 0.45 0.35 0.38 0.32 0.40 0.28 0.32 在表 1 中,W 代表窗口大小, NH 代表在指定大小的窗口内正常访问流量的平均熵值, AH 代表在指定大小的窗口内包含 25%的攻击流量的平均熵值, AS 和 NS 分别代表在正常访 - 8 -
分享到:
收藏