面向SDN拓扑发现的LDoS攻击防御技术研究
软件定义网络(SDN)中的低速率拒绝服务(LDoS)攻击威胁通过控制器下发的LLDP帧机制发起,攻击者利用控制器周期性发送LLDP帧的特点,对交换机链路进行连续丢包攻击。文章提出了一种防御机制TopoGuard,通过连续突发检测识别攻击并主动链路防御,具体包括:(1)控制器将LLDP帧周期性改为随机性;(2)增加链路分流减小交换机端口负载;(3)在控制器上部署攻击检测和防御模块。TopoGuard通过检测交换机端口转发速率和触发防御机制,使控制器在链路信息过期前重置计时器,有效防御LDoS攻击。
目录
-
- 1. 引言部分
- 2. SDN拓扑发现机制
- 3. SDN拓扑发现面临LDoS攻击威胁
- 4. TopoGuard实现攻击检测与防御
-
- (1) 继续性异常检测机制
- (2) 主动链路防护策略
- 1. 引言部分
1. 引言
在软件定义网络(SDN)环境中,LDoS攻击威胁主要源于控制器通过发送LLDP帧来确认链路连接。当控制器长时间未接收到某条链路发送的LLDP帧报文时,会推断该链路已断开。因此,利用该机制需要周期性发送LLDP帧的特点,攻击者可以在探测LLDP帧周期的基础上,对两个OpenFlow交换机之间链路发起LDoS攻击,造成LLDP帧在该链路中连续丢失,进而使得控制器误以为该链路断开。
2. SDN 拓扑发现原理
控制器会向与其连接的交换机发送携带LLDP帧并标记为广播的packet_out消息。交换机接收到这些packet_out消息后,会将携带LLDP帧的packet_out消息发送至所有端口。当端口从某一端口接收LLDP帧后,会根据本地配置的过滤表项,将该LLDP帧封装进packet_in消息中,并发送给控制器。基于这一机制,控制器能够通过发送机和接收机的ID确定链路<s1, s2>,<s1,s3>的有效性。

ODL控制器会定期向所有连接的交换机同时发送带有LLDP帧的packet_out消息,其默认周期设定为5秒。为每次链路的确认操作设定一个保持不变的时间,若在该时间范围内未再次确认,则认为链路处于断开状态,预设的保持不变时间为15秒。

3. SDN拓扑发现面临的LDoS攻击威胁
两个主要阶段是探测和发起攻击。探测阶段主要负责探测控制器下发LLDP帧周期T。
两个主要阶段是探测和发起攻击。探测阶段主要负责探测控制器下发LLDP帧周期T。
该虚拟机器通过实时监控来自SDN交换机转发的LLDP帧,完成LLDP帧的周期计算任务。

ti表示主机第 i 次接收到LLDP帧,a 表示间隔抖 动之和的阈值。
此外,攻击者需确定交换机在转发LLDP帧的时机点ti,以便使攻击脉冲正好导致LLDP帧在交换机转发过程中发生丢包。考虑到网络时延,主机接收LLDP帧的时刻稍后于交换机完成LLDP帧的转发。

假设交换机S1与主机h1之间的时延为τ。那么,通过发送一个ICMP echo请求至另一个主机,可以捕获其响应数据包的接收时间d(h1,h2),随后将此时间值除以4即可计算出时延τ。因此,交换机发送LLDP帧的时间点为:

此外,攻击者通常会利用iperf等工具对关键网络参数进行扫描和调查,以通过...手段...实现最小化攻击包的发送速率。
总结:攻击者得到的参数
| 名称 | 符号 |
|---|---|
| 控制器下发LLDP周期 | T |
| 交换机转发LLDP时刻 | t’ |
| 网络瓶颈带宽 | B |
| 交换机队列大小 | C |
下一次转发LLDP帧的时刻:

在转发前一段时间内,需要使交换机的内存达到饱和状态,假设攻击流量的规模为l,那么攻击流的大小等于其容量。

在第一阶段中,以Rattack/N速率发送攻击流量,此时交换机的队列在此时被完全占用。随后进入第二阶段,以B/N速率发送的攻击流量,确保LLDP帧被交换机丢弃。

4. TopoGuard实现攻击检测及防御
文中提到可以使用的防御手段
(1)控制 器将下发LLDP帧的周期性改为随机性;
(2)网络管理者采用增加链路分流的方式减小交换机每个端口的负载;
(3)在控制器上部署LDoS攻击检测和防御模块,对控制器拓扑发现机制进行保护
本文提出了一种基于连续突发检测和主动链路识别的防御机制TopoGuard。
(1) 连续突发检测
通过控制器下发LLDP帧时刻附近交换机各个端口的转发速率检测,识别LDoS攻击行为。在交换机端口的转发速率数据基础上,设定一个转发速率阈值THRE。当检测到单次转发速率超过该阈值时,即记录为突发流量;若连续M次检测结果均高于该阈值,则触发LDoS攻击警报机制,并将相关攻击信息发送至防御模块。在连续link_expire时间段内未收到LLDP帧时,控制器认为链路已断开,因此建议将M的取值范围设定为:

(2) 主动链路防御
在LLDP帧即将被下一次控制器下发之前,防御模块对受到攻击的交换机封装packet_out消息,使其在交换机接收后转发给受到攻击的端口,从而在链路信息过期前重置计时器。
1
1
