APP下载

SDN拓扑攻击及其防御

2021-01-05陆以勤毛中书程喆覃健诚金冬子潘伟锵

关键词:信息熵攻击者交换机

陆以勤 毛中书 程喆† 覃健诚 金冬子 潘伟锵

(1.华南理工大学 电子与信息学院,广东 广州 510640;2.华南理工大学 计算机科学与工程学院,广东 广州 510640;3.华南理工大学 信息网络工程研究中心,广东 广州 510640)

网络的复杂性与僵化性使得传统网络运营和维护管理变得越来越困难,而新型网络应用场景如5G、工业物联网、边缘计算等对于网络管理的灵活性和安全性提出了新的要求。软件定义网络(SDN)始于2006年斯坦福大学的Clean State研究课题[1]。SDN初步为网络提供开放性和注入了灵活性,其细粒度管控、数控分离、可编程性等特点迅速引起了学界与业界的广泛关注,诸多领域的研究者们积极利用SDN解决传统体系架构僵化和可拓展性有限等问题,如无线传感器网络[2]、物联网[3]、光网络[4]等。SDN被认为是计算机网络的一场革命,为新型互联网体系结构研究提供了新的实验途径,极大地推动了下一代互联网的发展[5]。

然而,SDN在带来网络灵活性与扩展性的同时也给网络带来新的安全问题,其扁平化网络结构增加了网络攻击面。攻击者分别针对SDN的应用平面、控制平面与数据平面发起安全攻击[6- 13],给传统网络安全模型带来极大挑战,其中篡改控制器中拓扑信息的拓扑攻击尤其危险[14]。攻击者利用控制器中的主机跟踪与链路发现等服务漏洞发起拓扑攻击[15]:攻击者伪装成网络中的目标主机(如服务器)以非法获取用户流量;攻击者伪造虚假链路以创建黑洞路由,发起中间人攻击(MiTM)或发起拒绝服务攻击(DoS)。市场上主流的开源SDN控制器,如Floodlight、OpenDayLight(ODL)、ONOS、Beacon、POX等都存在此类漏洞,严重影响了SDN网络的安全以及未来发展。

拓扑攻击中针对主机节点发起的攻击分别为位置劫持[15]和端口探测[16],而针对链路的攻击则包括伪造LLDP帧[15]、LLDP中继攻击[15]以及端口休眠[16]。经典防御模型如TopoGuard[15]、SecTopo[17]在一定程度上可防御针对主机或链路拓扑攻击,但对于数据端口防御能力不足,无法抵御攻击者对端口进行探测或者欺骗。TopoGuard+[16]和TrustTopo[18]能在此基础上部分防御端口休眠攻击,但无法随着网络状态变化进行动态防御。SecureBinder[19]和SPV[20]能部分防御主机攻击或者链路攻击,但防御手段单一。SecureBinder利用网络标识符绑定机制阻止攻击者伪装成目标主机,无法阻止攻击者伪造链路;SPV可以防御链路攻击,但无法防御借助带外信道发起的链路攻击,而且缺乏主机防御机制。SPHINX[21]提供流图验证,但其安全性依赖于定制策略。文献[22]中提出增加LLDP负载,但该方案的防御前提是攻击者无法修改主机配置。文献[23- 25]中提出新的拓扑发现安全协议替代已普遍使用的OFDP,但这些新安全协议的普适性尚有待证明。综上所述,如何在SDN网络中,复杂动态的网络环境里,全面保护主机节点与链路安全是亟待解决的问题。

文中通过深入研究SDN网络控制器以及相关协议如OpenFlow,总结主流控制器主机发现以及链路发现机制,通过实验验证发现当今主流拓扑攻击防御模型无法满足网络状态变化的要求,尤其关注链路延时不稳定所带来的安全模型失效。基于此,引入信息熵模型验证判定网络链路的延时状态,并提出了一种综合性的防御模型——PolicyTopo。该机制基于网络设备行为对数据平面设备端口进行分类安全定义,实现动态实时防御拓扑攻击,实验结果表明,PolicyTopo可有效防御SDN环境中已有各类拓扑攻击,保护网络主机端口以及链路信息完整性,提高控制器全局视图安全,保护网络路由以及负载均衡等核心功能。同时,该机制与同类机制性能相比有较大提高,具备安全性,同时具有较大可扩展性,可提高网络容错以及鲁棒性。

1 相关理论

1.1 OpenFlow发现协议

OpenFlow发现协议(OFDP)[26]负责定义SDN控制器发现网络交换机之间的链路与定位主机的规则,并由此形成网络全局拓扑视图,根据该协议可分别实现链路发现服务与主机跟踪服务。

1.1.1 链路发现

控制器实现链路发现服务依赖于链路层发现协议(LLDP)。图1描述了SDN控制器中一个单向链路发现案例。在图1(a)与图1(b)中,交换机S1首先通过Features和Port_Up等消息与控制器建立连接,并将相关信息,如Data Path ID(DPID,用于唯一的标识控制器域内的交换机)和端口号、端口状态等,发送给控制器。图1(c)中控制器根据上述信息生成相应的LLDP帧,并将其封装进Packet-Out发送给S1,S1解析Packet-Out得到LLDP帧并将该帧从指定的端口传播给交换机S2。图1(d)中S2接收到LLDP帧后,将该LLDP帧封装进Packet-In并转发给控制器。至此,控制器发现并记录下一条从S1P1至S2P1单向链路。同理可知S2P1至S1P1的链路发现过程。

图1 SDN中单向链路发现过程

1.1.2 主机跟踪

实现主机跟踪服务时,控制器使用主机信息(如IP、MAC、DPID与端口号等)来标识主机。当交换机收到一个新的非LLDP帧的主机流量时,它会将这些数据包封装在Packet-In消息中上交给控制器。控制器收到这些Packet-In消息后会从中解析出相应的主机信息并记录,由此发现主机。

1.2 信息熵

网络中状态变化特别是延时变化极大影响拓扑攻击防御模型,当发现网络发生抖动时,可轻易绕过已有防御模型伪造链路。

信息熵表征信息的复杂程度、无序程度或混乱程度,量化信息的不确定性。对于同一系统,信息越无序混乱,则熵值越大,反之则越小。

(1)

式中,I(xi)为随机变量X的信息,H为信息熵。利用信息熵模型对网络延时进行判定,动态判定延时阈值,将网络延时通过信息熵归一为一个动态变化阈值,极大提高判定准确度,可解决延时变化较大时防御模型失效问题。

2 防御模型

2.1 防御策略

提出了一种安全、轻量级的拓扑防御模型,即PolicyTopo。PolicyTopo旨在对SDN网络中控制器的网络视图提供准确有效的保护,并对所有的拓扑攻击进行有效的检测。针对不同的攻击,该模型采用了多重的防御策略,提高安全机制灵活性和可扩展性。

由于主机跟踪服务对主机移动无法提供实时校验,攻击者可通过主机位置劫持攻击伪装成目标主机。PolicyTopo中记录了主机与其直连的交换机端口,并同时监听主机复用事件(即同一台主机MAC地址出现在不同的已开启的交换机端口上)和端口复用事件(即同一端口在未关闭情况下出现2台主机MAC地址),以分别防御主机位置劫持攻击和端口探测攻击。

在链路攻击中,由于链路发现服务缺乏LLDP帧的完整性校验与来源审核,攻击者可以通过LLDP 伪造攻击或LLDP 中继攻击伪造链路。采用拓展LLDP帧的校验完整性字段的方法来进行防御,即图2中的Verification TLV字段。其次,利用主机默认不转发LLDP帧特性,验证交换机端口直连的设备类型来判定LLDP帧的来源。一旦LLDP帧来自于直连主机的交换机端口,可确定LLDP帧必为攻击者中继转发。

图2 拓展后的LLDP帧格式

另一方面,由于攻击者在发起端口休眠攻击时其用于中继LLDP帧的主机行为与交换机完全一样,因此控制器无法区分LLDP帧的来源,此类攻击的防御目前仍没有有效方法。TopoGuard+提出通过LLDP帧的传输延时的高低来区别真实LLDP帧与中继的LLDP帧,然而通过实验发现,当网络环境延时变高时该方案将失效。为了验证TopoGuard+的有效性,使用Mninet建立如图3所示拓扑,其中交换机与控制器、交换机与交换机、主机与交换机之间的连接情况如图3中所示。

图3 验证TopoGuard+实验拓扑

图3中交换机之间的链路平均延时初始为5 ms,主机A、B被攻击者远程测控,控制器为布署有TopoGuard+原型的Floodlight控制器。TopoGuard+实验结果示意图如图4所示。t1时刻之前,TopoGuard+计算的延时阈值较为稳定(即12 ms 上下),此时网络中的主机不存在通信,或只存在少量通信。从t1时刻开始,使用普通用户机进行相互通信(两两互通),最终模拟网络链路的拥塞状态。与此同时,合法LLDP帧的传输延时与阈值开始增加。直到t2时刻,TopoGuard+计算的延时阈值为42 ms(合法LLDP帧传输延时达到25 ms),利用主机A与主机B发动端口休眠攻击,并发现A、B中继的非法LLDP帧传输延时远低于阈值,TopoGuard+无法检测出该非法链路。

图4 TopoGuard+实验结果

为了彻底防御端口休眠攻击,PolicyTopo提出动态验证网络链路延时变化,根据验证结果采用多种防御方法。当网络延时较低时,通过设立LLDP帧传输延时阈值判别LLDP帧,而当网络延时较高时阻止非法链路加入网络。

LLDP帧传输延时的阈值计算式为

(2)

式中,TH为第n个至第m个LLDP帧传输延时的阈值,Tmax为其中的最大传输延时,Tmin为最小传输延时,为了排除网络波动对延时阈值的影响,去掉了最大值与最小值求平均值,并将平均值的2倍设为阈值。

2.2 基于信息熵的模型

TopoGuard+提出利用四分位间距(IQR)计算延时阈值[16],并通过比较链路延时和延时阈值的大小来判断链路是否为合法链路,当链路延时高于延时阈值时,判断链路属于异常链路,否则链路属于合法链路。TopoGuard+在阈值计算时,首先通过高分位(Q3)与低分位(Q1)之差计算IQR,即IQR=Q3-Q1,然后通过Threshold=Q3+3×IQR计算得到延时阈值。然而从图4中可以清晰地看出,随着LLDP帧数量的不断增加,从t2时刻开始,TopoGuard+计算得到的延时阈值快速增长,导致非法链路和合法链路的延时(通过LLDP帧传输延时表示)都低于阈值,从而无法判断链路的合法性,也就无法防御攻击。这是因为网络是一个变化环境,链路的延时并不总是稳定在某个确定的数值上下。基于此,引入信息熵为“延时变化趋势”确立数学模型,通过“延时变化趋势”表征网络中链路延时的动态变化,进而判定网络中链路的延时状态。

信息熵可以描述信息的不确定性,基于此,从具体的链路延时中抽象出延时信息,发现当链路延时增加时,延时信息的不确定性在增加,反之则在减少,而这与延时信息熵值的熵增和熵减统一。PolicyTopo机制采用LLDP帧的传输延时为对象并将其归一为确定数值。

计算m-n+1个LLDP帧的传输延时的信息熵的公式为

(n,m∈N+,n≤m)

(3)

式中,H为信息熵值,Ti为第i个LLDP帧的传输延时,P(Ti)为Ti的概率统计,I(Ti)为Ti的信息,N+为正整数集。n的取值范围为正整数。H值的变化映射出LLDP帧的传输延时的变化趋势,同时也反映出链路延时的变化趋势。

(4)

(5)

2.3 非法链路

为区分链路是否真实,机制对交换机端口的安全性进行定义,将端口分为安全端口与可疑端口。当链路包含了某些端口时,该链路一定为真。对于任意未连接过任何设备交换机端口P,当控制器收到来自P的LLDP帧时,该LLDP帧一定为真。因为这不满足端口休眠攻击发起的条件(该攻击需要通过主机转发LLDP帧,但P没有连接过主机)。安全端口显然不仅仅只包含上述这一种情况,还有其他两种情况也称之为安全端口。第一,对于端口P,P在关闭前连接的设备为交换机。第二,对于端口P,P在关闭前连接的设备是主机,并且该主机已从其他安全端口接入。除此之外,对于端口P,P在关闭前连接的设备是主机,并且该主机没有从其他安全端口接入,称P为可疑端口。在端口休眠攻击中,通过该攻击伪造的虚假链路的两个端口一定都是可疑端口。如表1所示,非法链路即两个端口都是可疑端口的链路。当网络中链路延时较高时,PolicyTopo会阻止非法链路的加入,以防御端口休眠攻击。

表1 链路合法性判断

非法链路不代表该链路一定是攻击者伪造的,非法链路接入示意图如图5所示。控制器与交换机S1、S2和S3直连,其中S2分别和S1、S3直连。S1P2和S3P1分别由于主机A和主机C的离开变为可疑端口,此时某用户使用S1P2和S3P1端口搭建新的链路L。若网络延迟较高,尽管链路L是真实的链路,但PolicyTopo依然会阻止L加入网络。这是因为当S1与S3能够正常通信时不应当增加额外的冗余链路,这本身就会造成安全隐患。即使出于真实需求(例如链路聚合)而在S1与S3之间增加冗余链路,也应该“告诉”控制器该链路一定不是通过端口休眠攻击伪造的,即保证该链路的两个端口中最少有一个是安全端口(例如在新增L之前使B接入其他安全端口以使S1P2变为安全端口)。

图5 非法链路接入

3 实验与评价

3.1 实验环境

本文中实验在虚拟与物理环境中均进行了相关验证,虚拟环境与物理环境配置如表2所示。

表2 实验环境配置

在Floodlight- 1.1控制器中布署PolicyTopo后,在物理环境中分别发起主机攻击与链路攻击测试了PolicyTopo有效性。在虚拟环境中比较并分析了PolicyTopo和TopoGuard+的性能。实验结果表明,PolicyTopo有效防御了拓扑攻击并能保持相对较低的性能损耗。

3.2 有效性

3.2.1 主机攻击

主机攻击实验拓扑如图6所示,控制器采用Floodlight,主机A(IP为10.0.0.1,MAC为4a:23:bc:d8:39:95)被攻击者操控,主机B(IP为10.0.0.2,MAC为8a:c5:c0:6a:04:dd)为目标主机,其中攻击者无法直接改变物理拓扑,且攻击者已通过某种方式获得了主机B的IP与MAC(如发送ARP请求报文)。

图6 主机攻击实验拓扑

在主机位置劫持攻击中,攻击者使用Scapy伪造B的流量(任意IPv4数据包),并将伪造的流量通过A直连的交换机S1注入网络。PolicyTopo发现主机复用事件,并阻止主机移动。

在端口探测攻击中,模拟主机B的离线状态(即断开B与S2的连接)。攻击者通过使用探测包(为了简化实验使用ICMP ping)获知B离线,此时A使用Scapy伪造主机B的流量,并将伪造的流量通过A直连的交换机S1注入网络。PolicyTopo发现端口复用事件,并阻止主机移动。

3.2.2 链路攻击

本部分在物理环境中进行。链路攻击实验拓扑如图7所示,主机A(IP为10.0.0.1,MAC为4a:23:bc:d8:39:95)被攻击者远程操控,主机B为正常主机,交换机S1、S2、S3分别与控制器直连,S1与S2直连,S2与S3直连。在测试LLDP伪造攻击时,主机C为普通用户:攻击者通过A监听来自S1P1的LLDP帧,使用Scapy伪造来自S3P1的LLDP帧,最后将伪造的LLDP帧发送给A直连的交换机S1。PolicyTopo发现LLDP伪造攻击,并丢弃该帧。

在测试LLDP中继攻击时,主机C(IP为10.0.0.2,MAC为8a:c5:c0:6a:04:dd)被攻击者远程操控:攻击者通过A接收来自S1P1的LLDP帧并通过无线信道转发至C,之后由C将该LLDP帧发送至其直连的交换机S3。PolicyTopo发现非法转发LLDP帧行为,并丢弃该帧。

图7 链路攻击实验拓扑

在低延时网络环境中(链路平均延时低于25 ms)测试端口休眠攻击时,主机C(IP为10.0.0.2,MAC为8a:c5:c0:6a:04:dd)被攻击者远程操控。在任意时刻,攻击者分别重启主机A与C,再通过A监听来自S1P1的LLDP帧,并通过无线信道中继转发至C,由C将中继的LLDP帧注入网络。PolicyTopo发现具有异常传输延时的LLDP帧,并丢弃该帧。

在高延时网络环境中(链路平均延时高于25 ms)测试端口休眠攻击时,主机C(IP为10.0.0.2,MAC为8a:c5:c0:6a:04:dd)被攻击者远程操控。首先攻击者通过Tracert查看网络链路的延时高低等级,当发现链路延时等级较高时(即链路延时大于25 ms),发起标准的端口休眠攻击。PolicyTopo发现非法链路,并丢弃相应的LLDP帧。

3.3 性能分析

本部分实验在虚拟环境模拟6种网络拓扑,为获取准确的性能对比数据,采用与TopoGuard+相同的实验环境,在Floodlight- 1.1部署PolicyTopo。使用Mininet组网如图8所示,交换机S1,S2,…,Sn分别与控制器直连,相邻交换机互相连接,每台交换机连有1台主机。性能结果如图9所示,x轴为交换机数量(链路数量为n-1),y轴为20 min内TopoGuard+和PolicyTopo平均运行开销,单位为ms。实验结果表明不同拓扑下PolicyTopo的运行开销平均值仅为0.02 ms,且相对稳定。TopoGuard+的运行开销则随着链路数量的增加而增加,当网络中链路数量达到7条时,TopoGuard+在不同拓扑中的平均运行开销达到了0.45 ms,远远超出了PolicyTopo的平均运行开销。

图8 性能测试实验拓扑

图9 20 min内PolicyTopo与TopoGuard+的平均运行开销

4 结语

本文中系统分析了SDN网络架构中的主机发现与链路发现机制漏洞,介绍了一种SDN网络架构下的拓扑攻击防御机制PolicyTopo设计与验证流程。实验发现当网络链路状态变化,如延时增高时,攻击者可伪造链路绕过现有防御模型欺骗控制器,该机制利用改进信息熵模型验证网络链路延时变化,在定义了端口安全性的基础上实时动态维护网络全局视图。物理环境和虚拟环境中测试结果表明:(1)该机制在Floodlight控制器环境下,对于网络链路状态变化能实时反应,根据延时状态变化调整防御参数,有效防御拓扑攻击;(2)与主流拓扑攻击防御机制,如TopoGuard+等相比,平均运行开销减少了约95.6%并趋于稳定收敛。

猜你喜欢

信息熵攻击者交换机
基于贝叶斯博弈的防御资源调配模型研究
基于信息熵可信度的测试点选择方法研究
面向未来网络的白盒交换机体系综述
局域网交换机管理IP的规划与配置方案的探讨
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
正面迎接批判
正面迎接批判
近似边界精度信息熵的属性约简
一种基于信息熵的雷达动态自适应选择跟踪方法