渣渣兔 发表于 2024-6-11 13:16:00

《软件界说安全》之二:SDN/NFV情况中的安全问题

第2章 SDN/NFV情况中的安全问题

1.架构安全

SDN强调了控制平面的集中化,从架构上颠覆了原有的网络管理,所以SDN的架构安全就是首先要解决的问题。比方,SDN实现中网络控制器相干的安全问题。
1.1 SDN架构的安全综述

从网络安全的角度,SDN带来了网络架构的革新,也引入了新的安全威胁和挑衅。从架构层面来看,新引入的SDN控制器由于逻辑集中的特点,自然易成为攻击的对象;开放的API接口也使应用层的安全威胁将扩散到控制层,进一步威胁到底子办法层承载的用户业务;SDN控制层和底子办法层之间新引入的协议,如OpenFlow协议及其实现,需要颠末长期的安全评测;在底子办法层,SDN交换机在控制器的控制下完成流转发,SDN数据流也大概面临由南向协议、控制层相干的安全问题导致的威胁。
1.2 集中控制平面:SDN引入的新问题

控制器承载着网络情况中的所有控制功能,其安全性直接关系着网络服务的可用性、可靠性和数据安全性。攻击者一旦成功实施了对控制器的攻击,将造成网络服务的大面积瘫痪,影响控制器覆盖的整个网络范围。同时,控制器具有全局视野,它从各交换机网络了全局拓扑,甚至全局流信息。
脆弱的SDN控制器的详细安全风险如下。

[*]可通过流的重定向使流绕过安全策略所要求的安全机制,从而使安全机制失效。
[*]如DNS查询被破坏,使业务流无法建立;只通过SDN控制器就可改变流转发路径,将大量的数据流发往被攻击节点;
[*]中间人攻击,非安全的控制通道轻易受到中间人攻击。
[*]流的完整性被破坏,如插入恶意代码。
因此,控制平面的安满是SDN安全首先要解决的问题。下面从针对控制器的重要威胁入手,分析它们的威胁方式、影响及相应的解决对策。
攻击者利用控制器安全漏洞或南向协议(如OpenFlow)实施拒绝服务攻击
当数据包到达SDN交换机时,交换机对包的处置惩罚流程如下图所示。当包不匹配所有流表中的所有流表项时,交换机将包通过与控制器间的安全信道转发给控制器处置惩罚;当匹配了任一条流表项时,则检测流表项中的actions字段,根据该字段中指定的操作动作,对此包进行相应处置惩罚。这个处置惩罚流程,使得通过数据平面对控制平面的控制器进行攻击成为大概。
   至少有如下两种攻击方式。

[*]攻击方式一:攻击者通过攻击交换机,让其将所有包转发给控制器处置惩罚,从而使控制器受到拒绝服务攻击,如下图:
   SDN交换机的OpenFlow协议的流表中,每个表项包括3个域:头域、计数器和操作。当操作域值为CONTROLLER时,交换机需将数据包封装后通过范例为OFPT_PACKET_IN的消息转发给控制器。
根据这一工作机制,攻击者可通过修改交换机流表中各表项的actions字段,使交换机将所有数据包都转发给控制器,从而导致控制器需处置惩罚大量的PACKET_IN消息。详细的攻击方法可以是攻击交换机,直接修改流表项;也可以是攻击控制器(或伪造控制器身份)向交换机下发设置指令,修改actions字段。

[*]攻击方式二:根据OpenFlow协议,当交换机接收到一个数据包时,如果无法在流表中找到相应的转发端口,交换机将通过PACKET_IN消息向控制器转发此包,请求控制器下发相应转发流规则。因此,攻击者可以伪造大量在交换机流表中不存在或无法处置惩罚的数据报文,由交换机提交这些报文给控制器进行处置惩罚,从而占用控制器资源,造成拒绝服务攻击。从终端发起传统的TCP/SYN、UDP、ICMP洪泛攻击就可以完成这种攻击。
PACKET_IN消息消耗的控制器资源包括控制器查找、计算流路径所需的计算资源以及控制器南向接口的带宽资源。
本质上,这类攻击方式是一种OpenFlow洪泛攻击,因此传统的防御思路仍可采用。
防御的第一步是流(或包)信息的网络。SDN是面向流的网络,因此较易实现基于流的检测和防御。通常采用的方法是通过控制器周期性地读取交换机的流表信息。根据OpenFlow协议,控制器可通过OFPST_FLOW或OFPST_AGGREGATE消息向交换机询问一条、多条或全部流表项的流信息。从流表中直接可读取的流信息包括流的头域和计数器,头域包括流的源和目的地址、协议等,计数器可提供整个流表、一条流、一个端口和一个队列的较简单的统计信息。
流统计信息的网络常由控制器定期向交换机查询,异常检测也常由控制器上的应用完成。传统的异常检测方法也被应用于SDN控制器的抗DDoS攻击检测。
重要的防护机制包括两种思路:流量控制提供自动遏制手段。多控制器结构中,可采用L7应用层负载均衡进步控制器在DDoS攻击下的生存性。
非法接入控制器
攻击者可以通过传统的网络监听、蠕虫、注入恶意步伐等方式窃取SDN网络管理员的账号和暗码,伪造合法身份登录控制器并进行非法操作;也可以利用SDN控制器自身的软硬件漏洞,通过恶意应用进行渗出攻击提升操作权限,获取对控制器的非授权操作。
以下步伐有助于应对上述安全威胁。
1)建立安全通道,实行严格的身份认证。强制通过加密信道访问控制器有助于防止窃听控制器管理员的账号和口令。
2)应用软件的安全测试、应用隔离和权限管理。
1.3 开放API:不安全的应用接口

不安全的南/北向接口,大概使得整个网络的安全受到威胁:

[*]网络举动被修改。如果恶意攻击者通过注入等手段,使某应用发送的请求的参数与业务逻辑期望不符,可使该应用的网络举动被篡改,从而下发恶意指令。
[*]网络通讯被非法监听。如果接口是未加密的,攻击者就能监听整个调用过程,从而使敏感信息被窃取。
[*]截获并修改数据包。攻击者可以采用中间人攻击,重放或修改后重发请求,达到伪造请求的目的。
[*]引发DDoS攻击。如果应用接口没有检查机制,轻易被攻击者反复调用,向网络装备下发大量无用的流表,大概影响数据平面效率;大概攻击者将大量流量引到某些性能较弱的节点,造成该节点被拒绝服务。
大概的解决方法如下。

[*]设置API权限。控制层可对差别应用的API调用设置差别的权限,以防一样平常权限的应用步伐调用高级别的接口命令。
[*]策略检查。控制器可对通过API接口下发的应用层策略进行规则检查,检测下发的规则是否有冲突,是否符合安全策略、业务逻辑和举动特征,检测规则下发后是否大概导致网络发生异常。
[*]信任评级。对应用进行信任评级,根据应用层参数及应用的历史举动计算应用的信任度,每个应用对每个控制器的信任级别可以差别,各个控制器可以为差别级别的应用设置一个信任阈值,当应用的匀称信任值大于该值时就实行相应权限的命令,否则不实行。
[*]中间层检查。在控制层和底子办法层间界说一个中间层,用来检查来自控制层的信息,并下发给网络装备。
1.4 数据平面:传统数据流的安全问题

数据平面的重要攻击对象是数据平面的关键节点-SDN交换机,可通过消耗流表资源对SDN交换机实施拒绝服务攻击。详细方式包括直接入侵交换机,用虚假信息填满流表,或通过向控制器发送大量数据包,致使控制器为每个数据包建立一条转发流规则,从而导致流表溢出。
应对这种拒绝服务攻击的方法如下

[*]采用流控、变乱过滤、拥塞丢包和超时调解等方法限制流量。
[*]流聚合。在控制器上将多条具有相同动作的流聚合成一条流,从而通过降低流操作的粒度降低控制器的负载,减小流表溢出的概率。
[*]在交换机和控制器上实施攻击监测。
[*]在控制器上实施严格的访问控制策略。
与传统网络相比,SDN交换机有更多的控制层交互,控制接口的功能更强大。因此,除直接渗出有脆弱性的交换机外,攻击者通过摆设非法应用、入侵控制器都可实现对交换机流表的非法操作,完成以下对用户数据流的攻击。
页: [1]
查看完整版本: 《软件界说安全》之二:SDN/NFV情况中的安全问题