APP下载

软件定义网络中DDoS攻击研究综述

2019-07-12高晓楠

电子技术与软件工程 2019年9期
关键词:应用层攻击者受害者

文/高晓楠

近年来随着网络需求的不断增长以及流量模式的不断变化,传统网络体系已经不再适用,SDN架构做为一种新的网络体系产生。在SDN中,控制和数据平面是分离的,网络信息和状态在逻辑上是由控制器集中控制的,应用程序可以实现对底层网络基础设施的抽象。SDN体系结构以其集中监控和资源调配、安全策略等基本功能增强了网络的安全性,而这些功能在传统网络体系中并不存在。这些特性为SDN在抵御DDoS攻击提供了新的机会。在当下网络环境中,高可用性至关重要,而拒绝服务(DoS)攻击和分布式服务(DDoS)泛洪攻击是破坏网络可用性的主要方法。DoS攻击或DDoS攻击是企图使其目标用户无法使用网络资源。由于DoS攻击可以被视为一种特殊类型的DDoS攻击,因此在本文的其余部分中,我们只使用术语DDoS攻击来指示DoS和DDoS攻击。虽然SDN的功能(例如,基于软件的流量分析,逻辑上的集中控制,网络的全局视图以及转发规则的动态更新)使得检测和响应DDoS攻击变得容易,但是SDN中数据平面与控制平面的分离也增加了新的攻击机会。 SDN控制层本身可能成为某些攻击的目标,并且SDN平台上可能存在潜在的DDoS漏洞。例如,攻击者可以利用SDN的特性对SDN的控制层,基础设施层平面和应用层发起DDoS攻击。

图1:DDoS攻击流程

1 软件定义网络的特征

1.1 动态流量控制

将网络控制和数据平面解耦,可以方便地设计和执行网络流量控制算法,从而使网络流量控制更加高效。

用此功能,我们可以动态地将恶意网络流与良性网络流分开,而无需像在传统网络上那样安装防火墙。例如,基于IΕΕΕ802.1X标 准(ΕAPOL中 的 ΕAPOL) 扩 展 的FlowNAC[1],实现了基于流的网络访问控制,并用于评估和分类来自用户的传入帧。

1.2 集中控制和网络全局视图

SDN实现了逻辑上的集中控制,这使得使SDN能够及时接收所有网络状态信息,以便监控和提供网络中的任何威胁。CloudWatcher[2]便是利用此功能在基于SDN的云环境上进行安全监控的框架之一。

1.3 可编程网络

SDN通过应用程序编程接口(API)提供控制平面可编程性。有了这个特性,网络管理员可以很容易地为安全应用程序制作一个简单的应用程序或算法。Fresco[3]就是一个在SDN的应用层面编写安全应用的例子,FRΕSCO 部署在开源控制器 NOX 之上,由应用层和安全执行内核两部分组成。同时,它提供了由 Python 脚本语言编写的 API 接口,使得研究人员可以自己编写具有安全监控和威胁检测功能的 Module 安全模块。

1.4 数据平面

SDN中数据平面设备只进行分组转发即可,所有指令由控制层下发。数据平面的扩展有AVANT-GUARD[4],通过引入连接迁移和执行触发器模块,当新的数据包到达 SDN 的交换机时,交换机首先检测流表中是否存在与该数据包匹配的流表项。若流表中包含与该数据包匹配的流表项,则交换机按照相应的流表项转发该数据包。否则,AVANT-GUARD 便启动连接迁移功能,将相关的数据包信息迁移至连接迁移模块。

2 DDoS攻击概述

如上文所述,DDoS通过从多个来源发送大量的虚假数据包,使服务器变得不可用。早期DoS攻击属于点对点攻击,只有一个源攻击者和单个受害者。随着时间的推移,它的攻击方式逐渐演变为通过控制网络中大量分布式的傀儡主机同时向受害者发起攻击。即使现在,DDoS攻击也很容易执行,DDoS攻击流程如图1所示。

2.1 DDoS攻击分类

DDoS大体可以分为两种类型。

2.1.1 网络层和传输层的DDoS攻击

攻击者操纵攻击源向目标网络发送大量的垃圾流量,致使其可用带宽急剧降低,从而导致目标主机无法与外界进行正常通信,常见的攻击方法有UDP Flood和ICMP Flood。UDP Flood攻击使用大量的UDP数据包(随机或同一端口)来攻击受害者,而ICMP Flood使用ICMP的回显请求数据包来干扰到达受害者的合法流量。

2.1.2 应用层的DDoS攻击

即主机资源耗尽型攻击,利用目标主机提供的网络服务或者网络协议中的某种特性发送超出目标主机处理能力的虚假请求,大量占用诸如内存、CPU等系统资源。例如SYN泛洪攻击,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽。

2.2 SDN中的DDoS攻击

(1)在应用层,SDN的北向接口开放性使得恶意代码植入成为了可能。

(2)在控制层,攻击者可以通过发送大量新流,使逻辑集中的控制器带宽资源耗尽,造成单点失效。

(3)在数据层,攻击方式类似于传统网络,通过发送大量数据包阻塞数据传输链路,或者利用协议漏洞造成系统拒绝服务。

3 DDoS防御技术分析

通常来讲阻止受害者服务器与互联网或主服务器的连接是抵御DDOS攻击的唯一方法。然而阻止源是最困难的方式,因为攻击者通过DDoS攻击从大量分布式僵尸主机发起攻击,因此防御是一个具有挑战性的问题。本节,我们将介绍各种现有的DDOS攻击检测和防御方法。

DaMask[5]提出了两个模块:DaMask-D是基于异常的检测模块,DaMask-M是具有策略选择和日志生成功能的防御模块。DAMASK-D检测模块采用概率图模型,解决了数据集移位问题。当DaMask-M收到DaMask-D的警报时,DaMask-M匹配不同攻击的合适对策,并在网络控制器上为新类型的攻击(未记录在日志数据库中)注册一个新的对策策略。T Chin等人提出了类似的方法[6]。针对SYN洪水攻击,使用Monitors和 Correlators协 作 来 防 范。Monitors与DaMask-D具有相同的作用,而Correlators与DaMask-M具有相同的作用。

VAVΕ[7]是 对 Source Address Validation Improvements(SAVI)的改进,用于对抗IP欺骗。VAVΕ采用OpenFlow协议以全局视角解决源地址验证问题,它可以分析网络上的所有流量,并动态更新防止IP欺骗的规则。

CPRecovery[8]提供了SDN控制器的主备份复制方法,可用于从发生故障的主控制器平滑过渡到另一个辅助(备份)控制器(复制阶段),反之亦然(恢复阶段)。这个转换由非活动探测器通过状态更新消息进行标记,状态更新消息在两个控制器上交换。这种方法可以防止SDN在遭受DDoS攻击时造成单点失效。

FlowTrApp[9]提出了一种流量分析框架,通过对流的速率和流持续时间的统计来识别攻击流量。在第一次检测到异常时不会阻止攻击者,当攻击者频繁发送与合法流量模式不匹配的恶意流量时,才会进行阻止。

Belyaev[10]等人引入了新的负载均衡方法,成功增加了DDoS攻击成本。当服务器上发生攻击时,负载均衡算法开始重写路由表,使用Bellman-Ford算法定义到端点服务器的最短路径,以分散攻击流量。

SHDA[11]提出了一种应用层防御机制,可以检测和防御与合法用户具有类似流量模式的慢速HTTP DDOS攻击。SHDA一旦通过检测算法发现有不完整的HTTP请求,便会通过控制器更新流规则。

4 总结与展望

SDN网络架构以其集中的网络监控和资源调配、集中的规则控制等功能增强了网络安全性,将网络发展推向动态、经济、高效的新层面。然而这些新特性也增加了新的攻击机会,之前针对传统网络的安全工作无法适用于SDN中,这其中最为显著的威胁就是DDoS攻击。本文有助于了解如何充分利用SDN的优势来抵御DDoS攻击,以及如何防止SDN本身成为DDoS攻击的受害者,这对SDN避免遭受DDoS攻击至关重要。

猜你喜欢

应用层攻击者受害者
基于微分博弈的追逃问题最优策略设计
“目睹家暴也是受害者”,彰显未成年人保护精细化
正面迎接批判
新一代双向互动电力线通信技术的应用层协议研究
有限次重复博弈下的网络攻击行为研究
受害者敏感性与报复、宽恕的关系:沉思的中介作用
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
关注恐怖主义受害者