《表5 Packet-In泛洪攻击防御机制对比》

《表5 Packet-In泛洪攻击防御机制对比》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《软件定义网络中资源消耗型攻击及防御综述》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录

基于流量迁移防御机制的原理是在SDN控制器和交换机通信过程中增加一个过滤模块,对请求信息进行检测和过滤。过滤模块丢弃或转移非法或虚假的请求报文,仅将合法的请求报文发送至控制器。如图19所示,Avant-Guard[31]在数据面已有的数据包转发和统计信息采集功能的基础之上,新增了连接迁移模块。该模块对TCP连接的三次握手进行验证,具体过程如下:当交换机收到TCP SYN报文时,连接迁移模块代替目的主机向源主机回复TCP ACK报文,当连接迁移模块再次收到了对应TCP会话中的SYN ACK报文,此TCP会话将会被判定为正常的TCP会话,然后该模块便会将属于该会话的后续数据包迁移至SDN控制器。通过添加连接迁移模块,数据平面实现了对TCP数据包的检测和过滤,丢弃了仅仅建立TCP半连接的恶意数据包。Afek等人[72]按照OpenFlow 1.5协议在Open vSwitch和P4交换机上实现了Avant-Guard的迁移思想。但是Avant-Guard本身可能会引发一些新的安全问题,如Avant-Guard作为一个代理需要处理来自主机的所有TCP连接,因此它必须在交换机内存中为每个连接都维护一些状态信息,这无疑增加了交换机内存溢出的风险。此外,Avant-Guard可代理的最大连接数受限于当前可用的TCP端口数量。为解决上述问题,Ambrosin等人[3 4]提出了一个新型的流过滤模块,称为LineSwitch。它使用网络流量的概率代理和黑名单机制来防止攻击流量到达控制平面。然而无论是Avant-Guard,还是LineSwitch,它们仅适用于TCP攻击流。为了弥补支持协议上的不足,Wang等人[32]提出了可以检测和防御多种协议攻击的FloodGuard架构,它在SDN原有的基础设施之外引入了数据面缓存模块,并结合主动流规则分析技术来推断当前网络所需要的流规则。当交换机接收到的数据包与流表规则无法匹配时,该数据包会被重新引导至数据面缓存,然后数据面缓存模块将数据包以较低的速率发送至控制器。SDNShield[76]同样引入了一组额外的设备对进入SDN网络中的流量进行两段式过滤(统计信息和TCP会话检测),避免了恶意流量进入网络。然而FloodGuard和SDNShield机制都需要引入额外设备来暂时存储攻击流量。为了增加防御机制的通用性,Gao等人[33]将基于频率的过滤机制移植到控制器并且设计了FloodDefender攻击防御系统。FloodDefender以SDN应用程序的形式部署在网络中,它无需修改SDN协议和添加基础设施。同样地,PacketChecker[77]作为控制器的轻量级扩展,在控制器核心模块处理请求消息之前,根据数据包首部字段对Packet-In消息进行过滤。通过比较MAC地址、交换机DPID和端口信息,PacketChecker自动识别恶意数据包并通过Flow-Mod消息通知交换机丢弃这些报文,避免了控制器计算资源的消耗。表5总结了上述两种机制中典型防御方案的特点与不足。