第二届全球未来网络发展峰会

创新·引领·未来

当前位置:嘉宾致词> > 分论坛一

软件定义网络(SDN)数据平面安全:问题、解决方案及未来发展方向

编辑: 共浏览:883次

非常感谢邀请我来到此次大会上,也非常感谢对我的介绍。现在所谈的这样的话题,其实在网络的世界里面谈论的比较少,而且并不是非常热门的一个话题,尤其是对于数据面的安全。所以我今天讲的就是SDN,就是软件定义网络数据面安全的问题,还有解决方案以及未来的发展方向。

    这个就是我今天要大致谈论的一些问题,一个就是为什么我们要使用SDN?同时,我也会大致谈一谈我们现在的SDN数据面最新的发展,以及SDN安全问题的分析;同时我也会谈论一下我们现在的一些解决方案,以及我们去了解一下未来研究的一些方向等等。这个就是大概我想谈论的一个问题。

现在我介绍一下SDN,大家看过之后可能会非常熟悉,一个是现在用的SDN的控制器,这是传统的网络。最终的想法其实就是让我们能够把所有的网络控制集中化管理,同时能够有能力对我们的网络进行编程,这就是使用SDN最终的目的。

最主要的一些结构是有三层,一个是数据面,一个是控制面,一个是应用面。你可以把它设想成有三个不同的层面,同时可以更好地去定义整个网络,然后同时可以更好地去实施我们的网络,这就是我们三层网络结构的作用。同时,我们可以更好地去实施数据的控制以及网络的控制,还有应用的控制。

对这样架构的实施,我们可以用不同的数据面来实现。比如说这个数据面主要就是包括交换机、路由器等等,这些基础设施。这样的数据层面主要就是为了传播,把这个信息通过不同的设备来把这样的信息传递给下一个终端,这就是它的主要的问题。同时,它可以通过我们OpenFlow的控制机进行沟通。它也是一个控制路径,是用了一个协议,这个协议可以跟OpenFlow控制器进行交换。中间交换所实现的媒介就是OpenFlow的协议,用的一个协议包括SL等等。这就是OpenFlow的交换机,在我们整个软件层面,以及硬件的层面来实现交换。这个交换机所在的位置就是软件的层面,同时通过一些不同设备之间的沟通来实现OpenFlow数据的交换。这个是OpenFlow的表器路,有一些状态等等,所以可以根据不同的数据可以把数据传到端口,同时可以压缩和转发不同的信息给控制器,同时把数据包发送给控制器,以及给正常信息处理的通讯界面也传递给这样的处理器。这个就是OpenFlow软件的例子,包括交换机、防火墙、路由的协议。

最近在SDN数据面发生了一些动态和一些技术也非常有趣。比如说很多人会把不同层级或者是多层级OpenFlow的表传到我们的设备当中,比如说在OpenFlow1.0我们就介绍了相关的功能。同时还有一个就是,我们的管径向(音)的定义,可以定义数据包是怎么处理的等等一些相关信息。我们还可以通过不同的方法能够提升匹配的规则,我们的规则更为灵活。除此之外,还有一些状态性的数据面,包括如何在(英文)的形式更好地来确保或者是降低交换机到控制机信号的延迟。这些都是我们现在SDN数据面相关的一些技术。

我们现在再看一看SDN数据安全的分析。我们可以看到,数据安全是基于有一些是SDN的特性来定义的或者是来产生的。比如说我们用SDN的话,我们可以用中心或者是集中化的控制器来管理我们的网络,还有用单点的失败或者是故障也可以确保数据的安全。整个概念其实就是为了更好地去控制我们的网络数据,以及实现数据安全。尤其是从安全的角度来看尤其重要。

第二点,这是开放式的界面。这种开放式的界面可以使SDN实现编程化的功能,可以使不同的应用能够把不同的政策运用到控制面板当中,这就使我们的软件变得更灵活。还有一个就是,我们可以把数据或者是设备管理的协定来转发,这样我们就可以向我们的数据或者是设备实现重新配置,比如说我们现在就有。比如说已经产生了(英文)或者是(英文)技术,这都是我们的一些应用。还有就是第三方的服务,比如说就像OS、SDN的控制器等等,都是可以支持安装以及第三方板块、第三方设备上来进行相关的命令执行的。比如说我刚才讲到的操作系统,这个操作系统就可以由我们SDN控制器来支持,我们可以把相关的软件直接安装到操作系统当中。最后一个就是NFV,这个也是非常重要的一点。我们网络功能的虚拟化,其实也是可以通过SDN来实现的。

这个就是通过我们的分析来了解网络安全的一些隐患或者是一些事故点。比如说SDN它可以不同数据的储存,以及数据定义,我们可以分离。这样的话,我们就可以实现集中化的管理。你可以看到,我之前讲到的三层数据面以及包括我们的控制面等等的话,大家可以把这块联想起来。我们可以把不同的范围进行分类,在分类之后我们就可以通过不同的分类来实现不同的功能,然后实现集中化的管理。包括我们如果说实现定制化的管理,包括我们定制化软件也可以通过SDN实现。

我们可以通过不同的实施方式的分类,来将我们不同的SDN应用到不同的应用和不同的功能当中。这个看起来其实有时候是非常简单的操作,比如说我在最近的论文当中谈到了有一些安全的问题,包括对我们网络硬件的攻击或者是袭击,还有包括对协议的攻击、渠道的攻击,都可能造成不同网络安全的隐患。

我最近也写了一个相关的论文,这个论文也涉及到不同网络协议的袭击。因为我们知道,我们也会知道网络的一些协定是很容易受到攻击的,在攻击过程当中尤其是BGP的攻击是非常常见的。我们其实也是一直在试图去用不同的取证,然后也用不同的传输设备能够来减少数据处理的时间,以及数据包处理的时间,然后再去确定或者是认定袭击数据的来源。

在这种情况下,我们要怎么样保证SDN数据面的安全性呢?首先,我们来了解一下为什么这个很关键或者是一个重要的问题。我们知道现在数据安全已经成了一个非常重要的话题,尤其是我们对传输的设备经常会成为我们数据袭击的目标,尤其是在保证数据安全的问题上或者是数据面安全面上,可以更好地去防止网络的攻击,也可以更好地去防止一些黑客利用不法的手段来攻击相关数据,包括CIA,他们也提供了相关数据,我们可以相结合,同时我们的技术也可以支撑相关应用。比如CIA利用(英文)相关路由器来实现相关的数据监控。

除此之外,对于那些非常有手段的黑客来说,我们是要有其他新的方法来去应对的。比如说我们最近有一些报道关于CVE-2014-9295。有黑客进入到路由系统进行攻击,他们试图去扰乱相关的路由程序。所以这些黑客的手段或者是黑客对网络攻击之后,他们的后果就是会影响非常大,尤其是对于我们运输的设备影响是非常大的。

其实相比传统的网络,我们SDN数据面安全性是跟传统网络不一样的。因为它是有一些相关的设备,这些设备它可以对我们的数据产生更严重的影响,包括我们现在的一些解决方案其实也是可以兼容的。比如说由于我们现在的一些传输设备的原因,它的可移动性是更高的。所以我们现在其实是要求我们重新设计OpenFlow协定,这样才能更好地满足相关方案,去解决可溶性、可兼容性。我们在设计架构的时候忘记了安全性,但是我们觉得在设计的时候要考虑到安全性,所以在我们的项目当中一下子在设计架构的时候考虑到了安全。

找到控制平面完整性,这个验证也很难。我们有的时候会有一些对于转发的设备,我们可以有一些欺诈性的信息,做这样欺诈性的信息很容易。所以我们发现的问题就是控制平面的完整性、真实性验证很困难。

最后一个,有状态的SDN转发设备,我们需要对于性能进行升级。同时,我们需要再增加一些安全的合规性,确保真正有状态。我们必须确保转发设备当中的状态是有保障的,这样的状态需要验证,现在缺乏验证,还有有的时候需要升级和需要集中的管理。我们的解决方案是非常复杂的,必须要进行一些设计。有的时候有些解决方案互相有冲突,我们要有扫描的能力,在网络当中进行扫描,有的时候有些情况不一定是正常的。还有,我们要区别他是不是恶意的攻击。还有,我们要能够定位恶意的设备,比如说哪些设备它是故意要发恶意的信息。还有一关于SDN的数据平面,我们要有状态的数据平面,需要有这个引擎。对可能的威胁我们必须要有响应,我们要找到转发的设备。我们要有智能响应的设备,对它做出相应。还有最后一点也是非常重要的,所有的这些解决方案都要能够支持到状态的数据平面。

简单看一下我们的方法。我其实已经谈了两个解决方案,SPHINX是2015年提出的,它是一个框架,通过这个框架能够探测到对网络拓扑的攻击和数据平面转发的攻击。第一个就是对于网络运营进行抽象化,特别是在逐渐增加的流量图当中进行抽象化。我们到了流量表,看一下流量的持续性。我们经过相似性的测量,如果转发的设备它是一个良性的,它没有受到损坏,这样的转发包就是在过去几个小时中,转发包应该是恒定的。当转发变得困难,在整个流量分配上开始变得困难了,那可能会出现问题了,可能会出现一些异常情况,可能网络出现一些问题。转发的设备遭到了一些困难,可能会遭到别人的黑客攻击等等。

另外一个,这个其实是叫做控制不可知论的预情控制系统。主要是看一下那些出故障的恶意设备的问题,要把这些出故障的恶意的设备关掉,不希望他们再提供有危险的信息。我们有“三步走”,第一个要理解不同流量的轨迹是什么样的。我们随机拣选出路由器、交换机、监测器,然后看一下是不是有这样的转发。我们进行扫描,扫描一下这样的情况,看一下流量应该怎么走,然后进行扫描来看它是否异常。这种期待的轨迹和实际的轨迹进行对比,看一下是不是有人攻击了,这是应该是这样走的流量,但确实出现了有一些路由的转变。这样的话,我们觉得这里出现了一些可疑的问题了,我们必须要采取行动,要减少这种攻击是非常重要的。特别是对这种出问题的转发设备,我们必须要立刻采取行动。如果你探测到问题了的话,我们必须采取行动,我们并不假设一切都是万事大吉。这里有一个例子,我们给出指导。对于控制的设备,有时候所有进入的流量马上进行阻止,这是控制器做出的功能,这是(英文)的算法。

接下来还有其他的演进设置,在我们网络当中的一些研究。这是我们评估的网络,我们其实有一些人工的拓扑,还有几千个轨迹都进行研究。还有评估,评估也非常重要的。比如说像网络的任务等等,要进行调查,如果出现出故障的设备的话,我们都要进行调查。像这种攻击者其实永远不会穷尽的,我们要应对一些恶意的攻击,他们的行动是什么。他们有的时候可能会是延迟采取拖延战术等等,我们也会有一个组合拳的攻击。这是一个非常好的结果,结果其实并不是太糟糕。非常有意思的就是D的情况,探测成功比是多少,要达到非常高的成功率有时候会出现一些问题,你必须要有一个非常好的数据平面和引擎,结果不是很糟糕。我们发觉这种精准率、精确率是非常高了。我们在整个流量过程当中来尝试越多的话,准确度就会越高。

很多话题都是非常有意思的,确实有些时候还有一些限制,我们还有待于更多的研究,很多的方法我们都已经提出来了,所有的这些都是依赖于这样的假设。可以探测到这些攻击,然后通过数据的方法来探测到,像这种恶意的设备可能会更为恶意。像这种转发的,转发其实仅仅是其中一个,但是背后的恶意攻击威胁更大。大部分会被人察觉,大部分的转发会被察觉。有人说这些转发设备并不是恶意,有很多这样的假设,但是我觉得这样的假设是不成立的。还有对于性能的问题,我们其实并不知道这种虚拟或者是虚拟机的迁移会出现怎样的情况,这方面关于虚拟机迁移的准确率还有待检测。

最后,像网络定义的网络这方面的工作还在进展,还有网站定义的云也在路上,我们要确保我们的数据平面是安全的。要更好地理解安全是有状态转发的设备,还有很多问题要解决。像有状态的转发设备我们还要做更多的研究。

这是我的演讲,谢谢大家。