软件定义网络(SDN)将网络从硬件平面转移到了软件平面,受到软件控制器的管理。其好处包括自动化和简化网络管理工作以及提高应用程序性能。但同时,作为一项新的技术,SDN也很容易受到攻击。
首先,根据Casaba Security公司共同创始人Chris Weber表示,将控制集中到SDN控制器中能够模糊了防护的分层硬件的界限,例如防火墙。
其次,根据Gartner分析师Neil MacDonald表示,通过从数据平面解耦控制平面,SDN引入了新的攻击面,例如网络控制器、其协议以及API。
第三,SDN的一个优势在于,软件控制器可以安装在操作系统(例如Windows或者Linux)之上的COTS硬件上,这能够节省部署和其他成 本。但根据Casaba公司合作货币Ramsey Dow表示,反复出现缓冲区溢出等攻击的主机会导致远程代码执行,从而危及这些系统。这使得SDN控制器面临着与操作系统相同的风险。
第四,由于SDN控制器的集中化性质,高级持续性攻击(APT)只需要感染这个控制器就可以有效地获取对整个网络的控制权。
为了解决这些问题,让我们来看看一些有效的安全选项和控制措施。
SDN漏洞
在谈到SDN如何替代用于保护传统网络的防火墙、内部交换机和其他硬件时,Dow说道:“对于SDN,我最大的担忧是,我们从网络设计中移除了历史悠久的物理部分,并将这一切都虚拟化了。”
并且,当SDN替代这些分层硬件时,取而代之的是高度敏感的网络层面,这很容易受到攻击,MacDonald 表示:“SDN创建了一个抽象层,带来了新的攻击面,例如网络控制器、OpenFlow协议,SDN可能部署的XMPP等协议,甚至供应商的API也可能 受到攻击。”
不仅控制平面的北向变得容易受到攻击,而且其“软肋”处更易受攻击。通过在Windows或者linux之上安装SDN控制器,企业让它暴露在各种软件问题面前,这些是日常电脑操作系统反复面对的问题。
微软最新的安全公告公布了五个新的Windows安全漏洞,这些漏洞都能够用于远程代码执行。开发人员最近还在Ubuntu中发现了四个新的漏洞,Ubuntu是流行的Linux发行版。
除了操作系统漏洞、新的攻击面,以及消失的硬件防护线,最可能困扰SDN的可能是最常见的问题—错误配置。Enterprise CyberSecurity Architects公司首席执行官Neil Rerup表示:“大部分攻击利用的是错误配置,而不是漏洞本身。”Rerup通过思科UCS错误配置的实例来说明这个问题:
一家企业部署了思科UCS,除了应用范围不同(它解决服务器而不是网络),这基本与SDN控制器是相同的概念。该企业部署UCS采用了默认设置,UID和密码配置,没有进行必要的控制来保护它。
Rerup表示:“我可以访问这个控制平面,因为默认角色、默认密码并没有改变,访问控制平面是通过用于访问底层设备的正常的网络连接。”
Rerup表示,由于SDN控制器相对较新,大多数安全人员并没有完全了解它们,这往往导致他们没有部署必要的控制措施。安全通常被视为SDN解决方案的一个“附加物”。虽然新技术意味着帮助企业提高生产力和降低成本,但这通常是没有考虑企业的安全态势得出的结论。
攻击者只要通过高级持续攻击获得对SDN控制器的控制权,就可能导致整个网络“沦陷”。作为直接与网络设备通信的应用程序系统,SDN控制器是在所 有组件直接建立通信的软件系统。Dow表示:“就其本质而言,这些控制器触及一切事物。如果你攻击了一个控制器,你就有可能不受限制地访问整个环境。”
SDN安全措施
没有什么能够取代传统硬件层,当然,我们还需要保护SDN通信。根据Weber表示,在控制这些设备的管理员之间以及网络设备之间通常需要更强的核心通信协议,最好使用通过身份验证的加密协议,避免使用弱强度密码。
MacDonald表示:“我们可以通过硬化控制器和协议来减少攻击面。”为了保护新的层面,减少曝光率,我们还可以这样做:使用嵌入式Linux的硬化配置,通过使用有效的身份、身份验证和授权技术来硬化API,以及使用应用程序白名单来防止未经授权的代码执行。
除了硬化操作系统,我们还可以通过采取一些分层的方法来保护Linux或Windows之上的SDN控制器。首先,了解供应商的安全配置最佳做法,并遵循这些做法。
及时修复补丁。Dow表示:“你的操作人员需要比平常更加积极地监控多个数据源的信息。”这些来源包括思科或瞻博网络等供应商以及安全组织(例如CERT和NIST NVD)发布的信息。
“使用全功能的经测试的事故响应计划,”Dow继续说道,“这样,当你检测到什么时,你就可以作出回应。”为所有关键任务硬件签署支持合同。
Weber表示:“你的供应商也应该提供一个强大的身份验证协议。”这意味着双因素身份验证或者更强大的验证。供应商应该包括基于角色的授权机制来分配访问级别、权限和特权。
至于错误配置,我们有很多最佳做法来帮助企业避免错误配置,以及部署适当的安全控制。首先,你需要将SDN漏洞当做任何虚拟解决方案中的漏洞来对待。Rerup说道:“你需要将控制平面作为特权升级平面来对待。”企业还应该使用以下控制来管理控制平面内部发生的情况。
管理带外SDN控制平面,将到SDN控制平面的路径与一般流量路径分离开来。移除所有的默认配置,因为供应商会广泛发布这些配置信息,而攻击者经常会利用这些信息来发动攻击。
记录特权账户的所有活动,并将这些日志转发到SIEM(安全信息和事件管理)安全日志聚合点,以提供集中访问。Rerup说道:“如果你监控特权账户的活动,你就可以迅速地发现问题,以及解决问题。”
在部署SDN时应该考虑潜在的故障情况,Rerup解释说;“如果你这样做的话,那么你还应该考虑SDN被宕机之后会发生什么。”
定期备份SDN配置文件,这样你就可以在故障发生后很快启动SDN以及运行它。最后,对SDN控制平面部署与企业为可以利用SDN的最高安全区相同的安全要求。
有些安全措施已经存在很久了,有些则很新,对SDN安全问题的讨论还将继续进行,我们是否言之过早?等发生问题的时候,你必定会听到这样的声音,“我找告诉过你了。”
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)