深入探讨SDN拓扑发现机制:新的攻击及实践对策【SDN拓扑】(下)

实验室设置

我们的硬件SDN网络由三个交换机(即树莓派3B型)通过线性拓扑相互连接,一个控制器(即苹果MacBookPro)和几个连接到以太网电缆的主机(如图未显示)的末端。所有开关间和控制器-开关链路均为100Mb/s。
在这里插入图片描述
在接下来的章节中,我们将分析 Floodlight中最先进的拓扑防御和拓扑核心服务的安全性。为此,我们在一个使用Mininet2.3.0[43]的仿真环境中和在一个硬件SDN网络中进行了实验。我们的硬件SDN网络,如上图所示,包括三个树莓派3型B型[12]作为openflow交换机,一个控制器运行在苹果电脑上和一些主机,可以在其他树莓或使用Linux的固定桌面电脑上实现。为了允许多个启用SDN的交换机与控制器通信,我们使用了一个传统的L2以太网交换机,其唯一的功能是将Openflow数据包从控制器转发到交换机(反之亦然)。我们选择使用开放的vSwitch[13]版本2.5.5LTS作为switch,而我们的控制器是基于Floodlight[30]。选择Floodlight的动机是,大多数现有的拓扑防御都是在其上实现的。该控制器安装在一个64位的Ubuntu14.04VM上,有两核为2,8GHz的英特尔酷睿i7和8GB内存。

拓扑防御系统的安全性分析

在本节中,我们将评估其安全性,并提出 TopoGuard, TopoGuard+, SPV 和 SecureBinder进行新的攻击。

TopoGuard/TopoGuard+

由于TopoGuard+集成了TopoGuard所使用的所有安全机制,因此我们将该联合解决方案称为TopoGuard+。TopoGuard+的主要设计目标之一是排除任何链路伪造攻击,无论其性质如何。尽管TopoGuard+在很大程度上减轻了基于中继的链路伪造攻击,但我们在跟踪链路延迟和LLDP数据包生成的机制中发现了两个新的漏洞。

为了利用机制来跟踪链路的延迟,我们需要过载交换机以增加交换机间链路的延迟。从直观上看,这可能是我们攻击的一个限制,因为启用SDN的硬件交换机可以合并机制来防止恶意主机过载的攻击。然而,我们想强调的是,我们的发现和攻击可以外推到现实世界的SDN网络中,原因有几个。首先,启用SDN的硬件交换机包含简单的cpu,这限制了它们解析和处理数据包[10,46]的能力。其次,启用SDN的硬件交换机有一个较小的流表空间,只能容纳数百到几千条流规则[10,20,26]。例如,像Pica8这样广泛使用的SDN支持的硬件交换机只能支持8192个流条目[1]。同样地,可以更新流表的速率也是有限的。因此,启用SDN的硬件交换机每秒只能处理100-200个[9,14,20,41,47,48]流规则更新。前两个限制来自于启用SDN的硬件交换机使用终端内容可寻址内存(TCAM)实现线速包处理,这成本昂贵且耗电。最后,张等人。演示了主机不需要直接发送数据包到交换机来超载他们的[54]。相反,主机可以触发控制器更有效地向过载交换机发送足够数量的数据包。

跟踪链路延迟的不安全机制

如前所述,TopoGuard+依赖于LLI模块来测量交换机间链路的延迟。
LLI模块

链路延迟检查器(LLI)模块。S1和S2之间的链接, T S 1 − S 2 T_{S1−S2} TS1S2,获得的延迟如下: T S 1 − S 2 T_{S1−S2} TS1S2= T L L D P T_{LLDP} TLLDP T S 1 T_{S1} TS1 T S 2 T_{S2} TS2 T L L D P T_{LLDP} TLLDP是在控制器上发送和接收LLDP数据包之间的时间。 T S 1 T_{S1} TS1 T S 2 T_{S2} TS2分别为S1和S2的控制链路延迟

算法1

在TopoGuard+中,LLDP包包含一个新的加密时间戳,以便控制器可以测量发送和接收LLDP包之间的总时间(即 T L L D P T_{LLDP} TLLDP)。为了计算交换机间链路(例如 T S 1 − S 2 T_{S1−S2} TS1S2)的延迟,控制器从 T L L D P T_{LLDP} TLLDP减去控制链路(即 T S 1 T_{S1} TS1 T S 2 T_{S2} TS2)的延迟(见上图)。然后,LLI模块将 T S 1 − S 2 T_{S1−S2} TS1S2与使用有效延迟列表的四分位数范围确定的阈值进行比较(参见算法1)。如果 T S 1 − S 2 T_{S1−S2} TS1S2在有效延迟范围内,则将正确处理LLDP数据包,并将 T S 1 − S 2 T_{S1−S2} TS1S2添加到有效延迟列表中。否则,TopoGuard+会发出警报并删除该链接。

下面,我们将给出针对LLI模块的两次攻击,其中对手会影响链接延迟,以删除真链接或创建假链接。

攻击1

我们发现了一种针对TopoGuard+的新攻击,使我们可以删除交换机之间的真正连接。我们的攻击利用了这样一个事实,即如果控制器在几轮LLDP中延迟超过阈值,它们就会删除现有链接。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Floodlight日志控制台。最初,交换机间链路(即S1-S2-S2和S2-S3)的延迟是有效的,因此将它们添加到延迟列表中。随后,LLI检测到一些延迟较高的链接,并停止处理相应的LLDP数据包。经过几次LLDP迭代(大约20秒之后),控制器删除S1-S2和S2-S3之间的链接,然后重新发现这些链接作为新链路。
图5:针对TopoGuard+提出的链路延迟检测器(LLI)模块的攻击。(5a)网络场景。(5b)日志控制台。

在不丧失一般性的情况下,让我们使用图5a所示的网络拓扑来描述所提出的攻击。在正常执行过程中,我们观察到交换机之间的链接延迟约为4ms(见图5b中的第三行)。然而,我们找到了一种使用H1来增加交换机之间链接延迟的方法。

首先,我们对不同的包数和不同的包爆发时间进行了一系列实验,然后测量每种策略如何影响交换机间链路的延迟。基于我们的实验,我们选择了最小数量的数据包,可以充分过载S2,使其链接到其他交换机。具体来说,我们每1秒注入100个数据包的欺骗源MAC地址和H2的目的地MAC地址。这迫使S2不断地向控制器请求新的流规则,从而消耗了大量的资源。图5显示,TopoGuard+由于高延迟(约140ms)而开始报告错误,并在开始删除受影响的链接后不久就开始报告错误。即使TopoGuard+在我们的攻击后重新发现了这些链接,我们也观察到这将导致控制器丢失之前关于它们的所有信息。

攻击2

最近,施里瓦斯塔瓦等人。能够对TopoGuard[39]执行基于中继的链路制造攻击。然而,这并不令人惊讶,因为TopoGuard并不是为了阻止这些袭击。在本文中,我们证明了尽管作者努力防止这些攻击,但TopoGuard+也很脆弱。为了执行我们的攻击,对手需要增加延迟阈值,直到它与他们的带外信道的延迟相当。然而,这并不是一项容易的任务,因为延迟阈值(i)只取决于以前被标记为有效的链接的延迟,并且(ii)是使用四分位数范围来计算的,这有助于找到异常值。

不失一般性,让我们使用图5a所示的网络拓扑来描述我们的攻击。控制H1的对手可以向S2发送大量的数据包,从而导致其资源消耗的突然增加。因此,S2要么非常慢地处理LLDP数据包,要么丢弃它们。使用这种方法,对手不能随意增加延迟阈值,因为穿越S2的LLDP数据包的延迟将超出有效延迟的范围。相反,对手应该选择在较长的时间内小心地超载S2,从而增加S2每次只轻微处理LLDP数据包所需的时间。通过反复这样做,对手可以以逐渐增加延迟阈值的方式延迟LLDP数据包。由于TopeGuard+为网络使用一个延迟阈值,对手可以不顾其在网络中的位置而发动此攻击。

在LLDP数据包中缺乏新鲜度

在TopoGuard+中,控制器向所有LLDP数据包添加一个通过DPID和源交换机的端口号计算的MAC标记。虽然TopoGuard+的作者指出,保护LLDP包的完整性至关重要,但他们的方法缺乏新鲜感。这使得重用MAC标记来创建有效的LLDP数据包成为可能。

攻击

在这里插入图片描述

H2将LLDP包内的S3-端口1的MAC标签发送给H1,这样H1就可以伪造有效的LLDP包,就像它们来自S3端口1一样。

在这里插入图片描述

H1修改其从S1接收到的LLDP数据包。它保留了除机箱ID和DPID之外的所有字段,它们很容易被推导出来,并从H2中学习有效的MAC标签。
链接伪造攻击TopoGuard+,其中对手设法伪造有效的LLDP数据包。

我们使用我们的硬件SDN网络测试了这种攻击的可行性,该网络包括两个主机、三台交换机和一个运行TopoGuard+3的控制器(见图6)。我们的目标是使用两个恶意主机(H1和H2)创建一个从S3到S1的假单向链路,它们可以通过带外信道进行通信。请注意,我们假设H1和H2连接的交换机的端口最初被设置为HOST。

正如在TopoGuard+中提出的端口遗忘攻击一样,我们攻击的第一步是断开并重新连接两个主机的网络接口(例如,通过拔掉电缆)。这将导致控制器将其端口类型重置为ANY。为了使我们的攻击成功,需要在LLDP回合开始之前进行重置,以便CMM模块就不会将这些事件标记为可疑事件。然后,H2等待从控制器接收一个LLDP,其中包含一个对应的DPID和S3端口号的有效MAC,即源交换机。此时,H2通过带外信道将有效的MAC标签发送到H1。由于缺乏新鲜度,MAC标签只需要交换一次。在学习了MAC后,H1可以成功地发送LLDP数据包,就好像它们起源于S3端口1。这触发控制器相信从S3到S1有一个真正的单向链接。我们想强调的是,由于创建这个链接的过程不涉及中继LLDP数据包,因此LLI模块无法检测到我们的攻击。

Stealthy Probing-Based Verification (SPV)

通过对SPV进行彻底的分析,我们发现探测数据包的生成和发送到交换机的方式有两个弱点。这些漏洞主要源于网络流量在实践中并不是完全随机的。因此,任何使用探测数据包的防御方法都可能有与我们在SPV中发现的防御数据包类似的问题。

探测数据包中的混淆度不足

SPV通过发送类似于正常通信量的探测数据包,定期验证所有交换机间链路的合法性。然而,探测包生成是一项非常脆弱的任务,因为理想情况下,它需要(i)主机发送大量网络流量,(ii)混淆不同级别的探测包。

攻击

为了在向对手隐藏探测包的同时验证链接,SPV应该随机发送探测包。但是,由于SPV在验证新发现的链接之前使用新发现的链接,因此发送到这个链接的第一个包中很可能是一个探测包。显然,长期使用未经验证的链接是不可取的。这种观察结果减少了探测过程的随机性,并增加了对手识别探测数据包的机会。为了进一步提高他们的机会,控制大量恶意主机的对手可以在网络中注入足够的数据包来影响探测数据包的生成。这些数据包可以包含网络中唯一的Ethernet_type和 Payload size(有效负载大小字段)。在这两种情况下,每当对手接收到一个很可能是一个探测数据包的数据包时,他们都可以简单地将其转发到带外信道上。正如所发现的链接是在SPV验证它们之前使用的那样,即使对手无法推断出一些探测数据包,它们仍然可以有足够大的时间窗口来执行攻击。

前两个观察结果表明,无论如何创建类似于正常流量,都很难创建类似于正常流量的探测数据包。

使用LineSweep algorithm

SPV的另一个重要缺点是,当初始探测包无法到达目的地时,使用LineSweep algorithm生成新的探测包。LineSweep algorithm采用了初始探测包,并对其进行了轻微的修改,使新的探测包与初始探测包没有完全不同。具体地说,它选择与第一个探测包中使用的地址相邻的新IP和MAC地址,例如,在同一个子网中。

攻击

使用LineSweep algorithm可以公开有用的信息来推断用于验证链接的数据包。在具有多个主机的大型网络中,两台主机连接到具有相邻IP和MAC地址的同一交换机的概率非常低。根据这一推理,对手可以首先放弃他们接收到的流量,包括第一个探测包,并等待第二个探测包被发送。作为随后的探测数据包将具有几乎相同的IP和MAC地址,对手可以使用它们的带外信道来识别和中继这些探测数据包。通过这种方式,对手可以延长控制器使用此链路进行路由的时间窗口,然后将其从网络中删除。

SecureBinder

SecureBinder使用旧版本的802.1x身份验证协议的略微不同的版本来阻止主机位置劫持攻击。我们承认,SecureBinder清楚地提高了SDN中实际绑定机制的安全性。然而,我们发现了修改后的802.1x认证协议的两个潜在弱点。

断开好的,连接坏的

SecureBinder是标准遗留的802.1x身份验证协议的扩展,该协议允许主机对网络进行身份验证。在对主机身份验证之前,连接主机的交换机端口只接受“身份验证流量”(即802.11x帧)。在SecureBinder使用的802.1x协议中,主机在每次更改网络中的位置(而不是在每个包中)时只经过一次身份验证。选择扩展遗留的802.1x协议的动机是,每条消息的身份验证将在控制器中产生巨大的开销。然而,我们观察到,这一决定具有重要的安全影响。

我们的假设是,如果对手可以将一个(恶意)主机连接到受害者主机所在的网络位置而不触发端口关闭,他们可以绕过SecureBinder并加入网络,而不需要对身份验证服务器进行身份验证。为了迫使受害者的主机移动到另一个网络位置,对手可以遵循一种类似于端口遗忘攻击[40]中使用的方法。建议攻击的关键是,在身份验证过程中,主机不会使用控制器或交换机建立任何加密会话密钥。因此,主机在完成认证协议后传输的数据包既不经过加密,也不经过身份验证。

根据SecureBinder,即使对手拥有专门的设备和物理访问设备,也不可能在不触发端口向下和端口启动事件的情况下断开连接和连接主机。我们设想了一个场景,其中物理主机可以包含多个虚拟机(VM)和一个虚拟交换机,用于发送到或来自每个VM的数据包。在这种情况下,当连接虚拟机时,虚拟交换机(在物理主机内部)应始终通知相应的物理交换机,以便虚拟机可以使用SecureBinder对控制器进行身份验证。这样做取决于虚拟交换机的设计和编程方式。但是,需要注意的是,由vm生成的所有事件都应该被视为它们来自连接到物理交换机的物理主机

攻击

我们进行了几个实验,以调查是否有可能断开一个(受害者的)主机与其交换机/端口,并足够快地连接一个(恶意的)主机,以便交换机不会注意到这种断开。根据IEEE802.3标准,如果在双绞线之间使用以太网连接交换机和主机,使用一个信令协议,其中这些设备每16个±8ms[16]发送一个链路完整性脉冲。换句话说,如果一个交换机在24ms中没有接收到这样的脉冲,则推断该主机不再连接。如果对手能够远程检测或触发(受害者)主机断开,并立即将(恶意)主机连接到交换机,他们就可以从受害者主机发起的有效的持续通信会话中获益。

我们通过在Mininet主机上运行ifconfig eth0 down && ifconfig eth0 up的命令来测量断开和重新连接网络接口之间的平均时间。该测试仅延迟了8个ms,这表明可以绕过SecureBinder,以在网络中添加一个恶意主机。(回想一下,交换机只能在24ms后检测到主机不再连接)。然而,我们观察到Mininet交换机总是检测端口断开并发送到控制器。与实际的OpenFlow交换机相比,Mininet交换机不会与主机实现任何信令协议,因此它们在通知控制器port-down之前不会检查端口活动。换句话说,Mininet模拟主机从交换机上的断开,而不考虑主机和交换机之间的信令通信协议所引入的延迟。

随后,我们使用Wireshark来测量控制平面上的port-down和port-up之间的平均时间。与之前的测试类似,该实验也导致了8ms的延迟。基于在Mininet中获得的结果,我们使用我们的硬件SDN网络,分别以两个树莓派3作为交换机和主机来测试我们的假设。然而,在这种情况下,以前的命令花费了68ms,而port-down和port-up之间的平均时间平均约为1630ms。

虽然我们的初步结果表明,SecureBinder能够检测到我们的攻击,但我们建议,拓扑防御不应仅仅基于port-down和port-up事件都是真实的(即,当且仅当主机真的(中断)从/连接到交换机)时,才会生成其安全性。作为今后的工作,我们计划进一步研究如何加快断开和重新连接网络接口的过程。

不安全的低级别绑定

SecureBinder提供了主机的MAC地址与其网络位置之间的弱绑定。更具体地说,SecureBinder的主要限制是,它不将身份验证流量绑定到连接主机的交换机/端口。

攻击

对手可以拦截从受害者主机发送或接收的身份验证流量,并在不同的网络位置放置它。如果对手将受害者的身份验证流量重放到一个快速访问控制器的交换机上,他们可以说服控制器受害者的主机在他们的位置。(i)如果对手设法在网络中插入一个以太网集线器,或者(ii)当受害者主机和对手在同一物理主机上运行两个虚拟机时,就有可能发生这种攻击。
使用带内SDN网络对SecureBinder的可能攻击场景
图7显示了一个可以安装这种攻击的现实网络场景。这种网络配置被称为带内SDN,在实践中广泛应用于[8,36]。与带外SDN配置不同,所有交换机都可以直接与控制器通信,只有少数交换机以带内SDN配置与控制器交互。

在带内SDN配置中,对手可以拦截发送或者接收H1的(普通)身份验证流量(例如,使用以太网集线器),并使用H2将其重放到S2。如果S1和S2之间的链路比S2和控制器之间的路径要慢,则首先接收对手使用H2发送的认证流量。这使得控制器相信H1已连接到S2。为了提高这种攻击的有效性,对手可以超载S1,以故意增加S1和S2之间的链接的延迟。我们攻击的主要优点是,如果H2成功地说服控制器H1连接到S2,H2不仅接收到H1的所有流量,而且阻止H1接收它的流量。即使由H1发送的真实身份验证流量最终被控制器接收和验证,以前安装的流规则也会导致数据平面上的不一致。

实施攻击

2018年,Nehra等人。结果表明,大多数SDN控制器缺乏保护网络拓扑信息[29]的安全机制。受他们的研究的激励,我们手动检查了Floodlight控制器的源代码,以找到篡改 c o n t r o l l e r 4 controller^4 controller4上的网络拓扑视图的潜在方法。我们的分析结果发现了两种新的攻击,称为反向循环和拓扑冻结。这些攻击不需要控制器或交换机受损,并假定交换机和控制器之间的控制通道使用TLS/SSL进行保护。

尽管这些攻击是特定于Floodlight控制器的,但这些(或类似的)攻击也可能存在于其他主要的SDN控制器中。大多数控制器依赖于标准的OFDP协议,每个协议都有微小的消息字段变化[29]。此外,OFDP协议定义不佳,并且缺乏保护数据包完整性和机密性的安全机制。这就导致了特别的不安全的实现。

反向循环

我们推出了一种新的攻击——我们称之为反向循环——它利用了LDS处理LLDP包中LINK-TYPE字段方式的弱点。在描述我们的攻击之前,让我们首先简要解释一下链接类型字段的目的是什么。假设S1和S2相互连接,而控制器还不知道它们之间是否存在一个链路。最初,控制器向S1发送一个将LINK-TYPE字段设置为“0x01”的LLDP数据包,然后将其发送到S2。一旦控制器推断出从S1到S2的单向链路,它就会立即通过向S2发送一个LLDP包来检查反向链路(即从S2到S1)是否存在。但是,在这种情况下,LINK-TYPE字段被设置为“0x02”(而不是“0x01”)。请注意,控制器会定期对所有交换机重复此过程,以收集有关现有或新的交换机间链路的信息。
在这里插入图片描述

反向循环攻击背后的核心思想是尽可能延长LLDP回合的持续时间,以耗尽控制器资源,从而可能导致崩溃。为了说明反向循环攻击是如何工作的,让我们用图2b所示的网络拓扑结构给出一个例子。从本质上讲,对手的前进方式与从S3到S1的假链接相同。具体来说,对手(即H1)从发送一个恶意制作的LLDP包开始。然后控制器按预期进行,向S1发送LINK-TYPE字段设置为“0x02‘的LLDP包,以验证从S1到S3是否存在反向链接。随后,对手发送将链接类型字段设置为“0x01”的LLDP包。至关重要的是,我们发现重新发送初始的LLDP数据包(将LINKTYPE字段设置为“0x01”)会触发控制器检查反向链接是否无限期地存在。然后,我们发现了一个更强大的攻击变体,它诱导控制器不断计算拓扑实例。这个变体利用了LDS在每次更改链接的延迟时重新计算拓扑实例的事实。(请注意,从Floodlight1.2版开始,LLDP数据包就包含一个用于确定链路延迟的时间戳)。
在这里插入图片描述

为了测试反向循环攻击的实用性和严重性,我们进行了一系列实验,其中我们指示H1发送带有轻微修改时间戳的LLDP数据包,以迫使控制器重新计算拓扑实例。我们在Mininet使用深度为4的树形拓扑,包括81个主机和40个交换机。图8说明了在攻击前和攻击期间,控制器内部的Floodlight过程的资源消耗情况。为了衡量CPU性能,我们在Linux外壳上使用了顶部命令。这个测试证明,计算拓扑实例是一项非常苛刻的任务,它会导致控制器崩溃。虽然我们没有评估它,但反向循环也会导致控制器发送更多的LLDP数据包,这可能会对网络带宽产生负面影响。

我们强调,当部署TopoGuard+时,反向循环攻击可以促进使用带外信道创建假链接。由于控制器在接收到有效的LLDP包时总是发送一个LLDP包来检查反向链路,因此我们的攻击可以指示LLI模块是否接受了延迟的LLDP包。回想一下,只有当LLDP数据包的延迟在有效范围内时,控制器才会检查反向链路。

这种攻击可能的根本原因是LLDP数据包缺乏完整性保护,从而保证它们不会被篡改,并且来自发送方交换机。保护LLDP数据包的完整性将在很大程度上减轻此类攻击,但这将需要对Floodlight控制器进行重大更改。此外,我们认为,使用异常检测系统也可以帮助跟踪某个LLDP数据包被发送的次数。

拓扑冻结

我们的第二次攻击,我们称之为拓扑冻结,会影响负责计算拓扑实例的模块。可以启动以“冻结”当前拓扑实例,防止控制器更新部分网络拓扑视图。
拓扑冻结攻击。H4和H5可以成功地创建来自S1Port1的两个假链接。

从本质上讲,我们的攻击基于以下观察:当创建两个来自同一“源”交换机/端口(如S1端口1),但结束于两个不同的网络位置(如S4端口1和S5端口1)时,LDS接受这两个链路并将“多链路”端口视为广播域端口(见图9)。因此,LDS从拓扑图构造中删除了“原点”端口及其链路。然而,我们做了一个关键的观察,即这些链接仍然被控制器用来计算最短路径(使用一个过时的拓扑实例),从而导致系统运行时异常。
当冻结网络拓扑时,Floodlight控制器中的日志文件

为了显示执行攻击的结果,我们在Mininet中使用如图9所示的网络拓扑实现了它。当我们配置了网络,以便根据跳数确定两个主机之间的最短路径时,H3和H6最初通过链路A进行通信。(注意,我们的攻击可以执行,无论用于计算一对主机之间的最短路径的度量如何)。为了执行我们的攻击,我们使用H4和H5在(i)S1端口1和Port1和S4端口1和(ii)S1端口1和S5-Port1之间创建了两个假链接。从此时起,只要S1-Port1包含两个链接,控制器就无法完全更新拓扑实例和转发模块,如图10所示。

随后,我们从网络拓扑中删除了LinkA,并观察到H6不能再从H3接收数据包。这是因为控制器一直使用一个旧的拓扑实例,因此使用Linka(它已不存在)在H3和H6之间携带数据包。有趣的是,即使控制器了解到两个交换机之间存在一个新的合法链接,它也不能更新拓扑实例,因此不能使用链路。因此,对手可以执行这种攻击来冻结网络拓扑结构,并在不被控制器注意到的情况下采取恶意行动。我们想强调的是,这种攻击可以补充和增加现有的SDN攻击的影响。为了使其结果最大化,对手需要仔细选择他们发起攻击的交换机/端口。更新拓扑实例是根据交换机的DPID按顺序完成的,从DPID最低的交换机开始。如果在DPID最低的交换机上创建了多链路端口,则网络的其余部分将不再更新。因此,最好的策略是从DPID最低的交换机上执行攻击。由于Floodlight控制器根据其MAC地址为每个交换机分配DPID,因此找到DPID最低的交换机很简单。

修复这个漏洞并不容易。防止它的最直观的解决方案是在使用链接发送实际流量之前检查链接是否存在(例如,通过发送另一个主机)。

实际对策

为了抵御拓扑攻击,SDN网络可以简单地使用类似于传统网络的静态网络配置(例如,限制交换机端口中的MAC地址的数量)[2]。然而,这是一种繁琐且容易出错的方法,它并不能考虑到SDN网络的动态特性。重新设计现有的拓扑发现机制将提供更好的安全性和可伸缩性,从而保证[6,33]。然而,由于它难以采用,这不是一个可行的选择。在本节中,我们将提出一些简单而有效的方法来扩展现有的对策,以抵御我们在第5节中发现的攻击。

通过锻造LLDP数据包来链接制造攻击

保护LLDP数据包的完整性对于防止对手发送伪造的LLDP数据包至关重要。如第5节所示,一些旨在解决这个问题的防御系统缺乏新鲜度,允许重放攻击。例如,TopoGuard建议使用一个只有控制器才知道的密码密钥,在源交换机的DPID和端口上计算一个MAC标签。为了提供具有新鲜度的完整性保护,Alharbi等人。提出了一个在每个LLDP轮[3]中更新密码密钥的解决方案。他们的方法的主要限制是,它需要控制器跟踪在每一轮LLDP中使用的键。为了克服前面解决方案的局限性,我们建议使用DPID、端口和一个密钥(每个LLDP)计算MAC标记,而不是在每次LLDP回合中使用不同的时间戳。这可以很容易地实现,因为LLDP数据包已经包含了一个用于计算链接延迟的时间戳字段。我们的修改可以防止对手(i)篡改DPID或端口以进行链路制造攻击,或(ii)更改LLDP数据包内的时间戳字段(例如,执行反向循环攻击)。

使用带外通道的链路制造攻击

我们注意到在LLI模块可以增强中实现的安全机制。一个可能的改进是,LLI模块可以区分从现有链接接收到的LLDP数据包和来自新链接的LLDP数据包。我们建议,LLI模块允许在现有链接的延迟中使用更高的 tolerances,以避免对手旨在删除真正链接的攻击。然而,即使有了这些改进,LLI模块也只能减轻这些攻击。这是因为,正如Skowyra等人所承认的那样,LLI模块无法抵御那些使用复杂硬件来中继数据包的对手。[49]。有效地阻止中继攻击的唯一可能的方法是使用距离边界协议[7]。距离边界是一种安全技术,通过它可以确定双方之间的物理距离的上界,即验证者和验证者。通过将通信信道的物理属性与加密挑战-响应协议相结合,距离边界协议可以检测到使用专门技术的对手通过带外信道中继数据包的硬件。作为未来的工作,我们计划研究如何在SDN网络中应用距离边界协议背后的思想。

主机位置劫持攻击

不幸的是,HTS只依赖于未加密和未经身份验证的OpenFlowpacket_in数据包来确定主机在网络中的位置。由于缺乏强标识符绑定,使得劫持受害者主机的位置成为可能。通过修改版的802.1x身份验证协议,引入保护SDN网络免受主机位置劫持攻击。虽然SecureBinder在很大程度上减轻了主机位置劫持攻击,但它基于传统的802.1x协议,该协议每次主机连接到新交换机时只对主机进行一次身份验证。如果控制器始终能够安全地推断出来自主机的端口断开,那么这就足够了。作为未来的工作,我们计划研究开发一种中间地带解决方案的可能性,即控制器每次向网络发送数据包时(而不是仅仅一次)对主机进行身份验证。一些文章已经表明,由于可伸缩性问题,SDN网络可能不适合在所有数据包中执行安全操作。相反,本文建议只将安全机制应用于(i)随机[5]选择的一组包或(ii)每个流[55]的包。

总结

本文对SDN中拓扑发现机制的安全性进行了深入的评价。我们对最先进的拓扑防御进行了安全分析,包括TopoGuard, TopoGuard+, SPV 和 SecureBinder。我们的分析显示,即使使用 TopoGuard/TopoGuard+,对手仍然可以创建假链接或删除真正的链接。此外,我们还提供了明确的证据,表明SPV和SecureBinder都很容易受到攻击。我们的工作还发现了 Floodlight控制器上的弱点,这使我们能够识别并演示两种新的拓扑攻击,称为反向循环和拓扑冻结。这些攻击可以用于各种目的,从执行DoS攻击到造成误导性行为,作为启动更复杂的攻击之前的第一步。最后,我们详细阐述了进一步改进现有的应对措施以抵御我们发现的新攻击的可能方法。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

粥粥粥少女的拧发条鸟

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值