从理论上讲,软件定义网络( SDN )技术应该带来更安全的网络。因为,通过虚拟化网络到可编程的堆栈,网络会变得更加灵活,操作应该更加自动化,这应该意味着更少的“胖手指”灾难。
但对于任何互联系统,当我们分配基本操作到软件时,我们同时也引入了新风险。当我们将服务器联网时,我们知道有些服务器将会受到攻击,所以我们尽最大努力来减小这种风险。但当网络本身受到攻击时会发生什么呢?SDN工具包是什么样?全面的有效的SDN安全是什么样的?我们怎样避免SDN漏洞呢?
SDN是Stuxnet梦想的摇篮?
SDN已经成为网络可编程新的简称。无论是基于标准的解决方案还是来自单个供应商的专有技术(即构建自己的OpenDaylight解决方案或者VMware打造的SDN环境),它们都带来同样的困境:你都会被迫相信这个新的比较复杂的软件携带着通往你的王国的钥匙。这个“解决方案”将涉及更广的范围,将会改变权力和容量,程度甚至超过任何高级管理员。它还会控制网络日志的现状。
然而,事情并没有那么糟糕,但企业需要考虑SDN安全带来一些影响,或者更糟的是,零日漏洞利用。Stuxnet如此难以创造的原因之一是它需要克服的各种各样的挑战,它需要应对多个版本的专有工业控制器和使用各种协议及应用程序接口(API)的操作系统。但在SDN环境下,情况就不同了。
SDN带来新的网络安全问题
通过可编程网络,蠕虫不再需要利用现有的网络裂缝;它们可以抓住一个弱控制点,并通过这个控制点创建一个后门,然后将其隐藏起来。与Stuxnet不同,SDN蠕虫不需要管理数以百计的不同的攻击向量。即使在专有厂商部署中,SDN蠕虫也可以通过良好记录的易于导航的API来提供控制。
当我们从CLI、SNMP和其他“旧世界”接口转移时,还面临一个额外的威胁,我们将通过SDN架构连接我们的性能监控和安全政策扫描系统。也就是说,如果攻击者破坏SDN控制层,他们将可以从监控和安全系统隐藏其行踪。随着技术逐渐成熟,并且,我们越来越依赖于自动化,我们也应该期望在管理员配置出现与系统相同的变化,特别是在中小企业方面。毕竟,较小的经验不足的团队不太可能比它们取代的绿屏管理员更能发现安全问题。
如何避免SDN安全噩梦
SDN的未来是光明的,我们不应该妄下结论,认为SDN将会带来通往美国国家安全局的后门。该技术确实会带来一系列新的挑战,但我们可以利用从其他可编程平台获取的丰富经验来解决这些问题,例如服务器。无论你正在与供应商沟通还是试图构建自己的SDN解决方案,当你部署安全的SDN时,请务必考虑以下问题:
多少比率的文档(或营销材料)用于安全?安全像是可有可无的东西,还是作为解决方案架构的一部分?
这个解决方案是否认为不需要对防火墙内提供安全保护?太多产品认为没有面向互联网的系统享受着魔术般的安全保护。
对于联合SDN等复合解决方案,联合网络将如何管理控制器之间分配的信任关系?你将在哪里部署分界点来限制多层分配变化的范围?
该解决方案将如何管理分布式政策?所有受控制的设备都信任来自任意长命令行的变更请求吗?它们是否能意识到继承、模拟或者请求者角色?
你如何信任还是核查?解决方案是否包含至少一点点“石器时代”的技术来监控不在其控制之内的SDN控制器?
与其他任何新技术一样,网络可编程性在初期会遇到一些问题,但如果我们把眼光放远一点,提出问题,将其放在实验室的显微镜下研究,这将是一个好事情。