最近关于美国国家安全局在IT基础架构植入后门事件的报道很多,其中软件定义网络(SDN)肯定也会成为间谍窃听的目标。
事实上,在这些技术成为主流之前,整个行业都必须解决一些SDN安全问题,同时要让网络工程师保证SDN基本软件堆的完整性。
就职于一家全球网络公司的网络工程师Nick Buraglio说:“NSA事件让我重新思考了一下这个问题。当转发控制面板与各个设备完全无关,而且控制面板只有一两台Linux设备时,这意味着什么?如果有人攻击了这台设备呢?他们可以随意改变您的流量流。”
ONF已经发现了两个基本的SDN安全问题
SDN社区已经知道这个问题。负责管理OpenFlow协议的开放网络联盟(ONF)在去年10月发表了一篇论文,文中指出了两个潜在的SDN安全问题,也是行业必须封堵的两个攻击途径:
集中控制是一个“潜在的单点攻击和故障源”。
控制器与数据转发设备之间的南向接口(如OpenFlow)很容易“受到攻击而降低网络的可用性、性能和完整性。”
Matthew Palmer是SDNCentral.com的共同创始人和SDN供应商及云服务提供商咨询公司Wiretap Ventures的合伙人,他说:“我们从客户听到的最主要的反馈是:‘我们把安全性视为SDN的首要问题。’”
SDN控制器将成为攻击目标
SDN控制器是黑客一个主要攻击目标,因为它既是一个集中的网络干扰点,也是一个潜在的单点故障源。
Voodoo Security安全咨询师和IANS领导成员Dave Shackleford说:“如果不注意控制器,那么它会成为攻击者的最重要目标,他们可能会轻松攻破它,修改代码库,改变流量控制,从而在一些位置过滤或藏匿数据,任由攻击者操控数据。”
“只需要修改控制器,攻击者就会有许多机会修改网络流量行为的整个运行基础。我们遇到的问题是前所未有的。即使传统网络管理工具也无法这样灵活地动态修改各个节点的网络行为。”
SDN控制器的可编程性是一把双刃剑。工程师可以在控制器的北向接口上安装安全应用程序,从而得到一种在网络中应用安全策略的新方法。这些应用程序可以指示控制器交换机和路由器,然后将它们作为策略执行点。
然而,这种可编程北向接口也是一个潜在的漏洞。这些应用程序可以通过控制器对网络进行重新编程。黑客可以欺骗工程师安装一些受攻击的应用程序。由于对控制器上运行的良性应用程序有足够的了解,所以黑客只需要给网络发送一些精心设置的数据包,就可以控制网络去做一些完全让人出乎意料的事情。
非盈利性研究与创新中心SRI International的项目主管Phil Porras说:“OpenFlow应用程序之间可以相互影响。它们可以插入一些组合规则,产生让人意想不到和不想看到的交叉效应。”
SDN控制器通常还不无法让安全应用程序获得高于其他应用程序的通信优先级。如果控制器不知道如何处理与安全策略冲突的应用请求,那么即使是一个无恶意的应用程序也可能破坏安全策略。
Porras说:“假设OpenFlow安全应用程序认为有一个内部主机的运行方式像是感染了病毒。那么这个安全应用程序就会隔离这个主机,去除它与网络的通信能力。同时,有一个负载均衡应用程序可能会监视这个主机,然后让网络中负载最小的主机接管它的负载。这样负载均衡应用程序就会决定让流量开始转到被隔离的主机上。”#p#
SE-Floodlight:一个面向更智能的安全控制器的模型
Porras说:“我们正在寻找方法约束SDN应用,从而保证一些特定的策略一定会执行。这些OpenFlow应用并不一定是恶意应用。它们可能只是完全不知道有哪些安全策略。”
Porras已经开发出SE-Floodlight,它是基于开源Floodlight OpenFlow控制器修改的版本,专门用于保证安全应用程序的完整性。
Porras说:“SE-Floodlight引入了一个概念,即OpenFlow应用可以运行在分级角色上。这些角色将由数字认证技术指派。”
他指出,通过使用SE-Floodlight,工程师就可以给安全应用程序指定高于其他应用程序的优先级。当有一个负载均衡应用给控制器发送的流量规则与安全应用程序策略发生冲突时,这个控制器就可能拒绝这个规则。此外,它还会给负载均衡应用程序发送反馈,使它知道必须寻找其他方法来转发流量。
Porras说:“我认为,如果我们准备在金融服务网络、医疗网络或政府网络中使用OpenFlow,那么必须用到现在SE-Floodlight所做的工作。我们需要使用一个强力的安全模型,保证添加SDN不会消弱一些组件的安全性。我认为,SDN供应商和标准委员会都应该更认真地审视OpenFlow的安全架构。我接触的许多供应商都很关注这个问题。”
南向接口安全性
ONF还发现控制器与数据转发设备之间的南向通信也容易受到攻击。OpenFlow等南向接口协议有一个基础身份认证技术,它可以防止黑客从控制器向交换机发送欺骗性的流命令。然而,Palmer指出,工程师应该要求SDN供应商验证他们已经在控制器和SDN交换机之间实现了正确的身份验证证书。
但是,黑客可能不会试图劫持南向接口,因为还有更简单方法可以破坏它。黑客可能会针对控制器、交换机或虚拟交换机等发起拒绝服务攻击。
Porras说:“有人可能会让控制面板保持高负载,或者让控制面板与数据面板之间的接口保持高负载,这样可能降低整个网络的运行速度。我们会看到一些对抗模型,其中‘攻击目标’并不会试图让网络彻底崩溃,而是通过发送大量的数据包来让数据面板和控制面板发生过量交互。”
我们应该如何处理SDN安全问题?
工程师没有必要因为安全问题而放弃SDN。每一种环境都有不同程度的风险容忍力。而且,现在大多数SDN部署都处于试用或概念验证阶段。然而,如果注意这些问题,工程师就可以自行采取一些措施来保护SDN软件堆栈。
Buraglio说:“要尽力锁定控制器。不要让任何没有正当理由通过的东西进出控制器。要保持控制器的更新。要给它设置基线。要记录CPU使用率、内存使用率和接口统计信息。要收集所有的数据,然后在设备上设置临界值和警报。”
Shackleford指出,工程师需要在SDN控制器上应用与敏感数据服务器相同级别的安全性,如信用卡号和知识产权等。
他说:“我们必须关注于完整性监控,格外警惕日志报告,对访问实施多重身份验证。我们必须保证所有这些方面都有分层次访问。”
但是,在SDN技术的安全性和完整性得到验证之前,它还不会用于主流生产部署。控制器供应商尤其需要向潜在客户证明这一点。
Palmer说:“这并不是一个安全问题。这是一个合规性问题。除非他们可以向合规性团队证明SDN在安全性方面能够和遗留系统做得一样好,否则他们是不会同意部署的。”
Palmer预计供应商将会在2015年开始证明SDN软件堆栈的安全性。他说:“2014年是SDN的概念验证之年。人们都在试用这项技术。我认为,一些重要的安全功能将会浮出水面。但是,我们仍然需要等待一年或一年半时间,这些安全特性才会真正进入控制器和其他SDN产品中。”