因为企业希望采用软件定义网络(SDN),人们最关心的问题是安全问题。企业想知道SDN产品将如何确保他们的应用程序、数据和基础设施不会受到攻击。随着SDN,需要新的策略,以确保控制飞机交通。本文将回顾SDN系统的攻击向量,并分享保护支持SDN的虚拟网络基础设施的方法。然后,本文将讨论目前正在考虑的保护SDN部署的方法。
1. SDN攻击媒介
软件定义网络(SDN)是网络分开控制平面从转发平面支持虚拟化的方法。SDN是网络虚拟化的新典范。最SDN架构模型有三层:SDN能力的网络设备的下层,SDN控制器的中间层(一个或多个),和包括该请求的应用程序和服务或配置SDN更高的层。尽管许多SDN系统是相对较新的SDN还处于尝鲜的境界,我们可以肯定的是,随着技术的成熟和更广泛的应用,它会成为攻击的目标。
我们可以预测对SDN系统的几种攻击向量。更常见的SDN安全问题包括在各种SDN架构层上的攻击。让我们看看这些层中可能发生的预期攻击。下面的图片说明了一个典型的SDN架构和攻击者可能来自哪里。
1 - 1。攻击数据平面层
攻击者可以从目标网络本身内的网络元素。攻击者可以在理论上获得对网络的未授权物理或虚拟的访问或破坏已经连接到SDN,然后尝试进行攻击破坏网络元素的主机。这可能是一个类型的服务(DoS)攻击拒绝的,也可能是一种模糊化的攻击,试图攻击网络元素。
有用于控制器与所述网络元件通信众多南行API和协议。这些SDN南向通信可以使用开流(OF),打开vSwitch的数据库管理协议(OVSDB),路径计算单元通信协议(PCEP),接口的路由系统(I2RS),BGP-LS,OpenStack的中子,开放式管理基础结构(OMI),木偶,厨师,直径,半径,NETCONF,可扩展消息处理现场协议(XMPP),定位器/ ID分离协议(LISP),简单网络管理协议(SNMP),CLI,嵌入式事件管理器(EEM),思科onePK,以应用为中心的基础设施(ACI),Opflex,等等。每个协议都有自己的固定通信网络单元的方法。然而,许多这些协议是非常新的,以最安全的方式实现者可能没有设置它们。
攻击者还可以利用这些协议,并尝试在设备的流表中实例化新的流。攻击者可能希望尝试欺骗新的流,以允许应该通过网络不允许的特定类型的流量。如果攻击者能够创建绕过引导流量通过防火墙的流量导向的流,那么攻击者就具有明显的优势。如果攻击者能够将流量引向他们的方向,他们可能会尝试利用这种能力来嗅探流量并执行一个人在中间(MITM)攻击。
攻击者想窃听流向看流量都在使用什么以及哪些流量被在网络允许的。攻击者会想尝试窃听网络单元和控制器之间的通信南行。这些信息可能是重放攻击或只是为了侦察目的。
许多SDN系统部署在数据中心和数据中心更频繁地使用数据中心互联(DCI)协雷竞技电脑网站议(如网络虚拟化使用通用路由封装(NVGRE),无状态的交通隧道(STT),虚拟扩展局域网(VXLAN),思科覆盖运输虚拟化(OTV), 2层多路径(L2MP) TRILL-based协议(思科FabricPath, Juniper QFabric,锦风投面料),最短路径连接(SPB),等等。这些协议可能缺乏认证和任何形式的加密来保护包内容。由于协议设计的某个方面或供应商或客户实现协议的方式,这些新协议可能存在漏洞。攻击者可能被激发以这样一种方式创建欺骗流量,即通过DCI链接或创建一个DoS攻击DCI连接。
1 - 2。控制器层攻击
很明显的是,SDN控制器是攻击目标。攻击者尝试目标用于多种用途的SDN控制器。攻击者将要通过向网络设备或者欺骗北向API消息或欺骗南行消息实例化新流。如果攻击者能够成功地欺骗从合法控制器流那么攻击者必须允许流量在自己的意志,并可能绕过可能对安全性的依据策略跨SDN流动的能力。
攻击者可能会尝试执行控制器的DOS或使用其他方法来使控制器失效。攻击者可能会试图尝试某种形式的控制器上的资源消耗攻击停滞不前下来,并使其极为缓慢响应Packet_In事件,并使其缓慢发送Packet_Out消息。
SDN控制器通常运行在某种形式的Linux操作系统上。如果SDN控制器运行在通用操作系统上,那么该操作系统的漏洞将成为控制器的漏洞。通常,控制器使用默认密码部署到生产环境中,并且不配置任何安全设置。SDN工程师让它“勉强”工作,然后不想碰它,因为担心破坏它,所以系统在生产环境中以易受攻击的配置结束。
最后,如果攻击者创建了自己的控制器,并让网络元素相信来自“流氓”控制器的流,这将是糟糕的。然后攻击者可以在网络元素的流表中创建条目,这样SDN工程师就无法从生产控制器的角度看到这些流。在这种情况下,攻击者将完全控制网络。
1 - 3。SDN层攻击
攻击北行议定书的安全性也是一个可能的途径。SDN控制器使用许多向北的api。向北的api可以使用Python、Java、C、REST、XML、JSON等。如果攻击者可以利用脆弱的向北的API,那么攻击者就可以通过控制器控制SDN网络。如果控制器对向北的API缺乏任何形式的安全性,那么攻击者可能能够创建他们自己的SDN策略,从而获得对SDN环境的控制。
通常情况下,REST API会使用一个默认密码,这是很容易确定的。如果一个SDN部署没有改变这个默认密码,攻击者可以创建指向控制器管理接口的包,那么攻击者可以查询SDN环境的配置并放入自己的配置。
2.加强SDN系统
随着引进SDN的,需要用于固定控制面业务的新方法。在传统的IP网络的控制平面的安全性排在路由使用MD5用于EIGRP,涉及协议的安全性措施的形式,IS-IS,或OSPFv2中,IPsec认证在OSPFv3的,或者的情况下,本中心MP-BGP / acl /密码。对于传统的IP网络,一些实现者甚至不遵循这些简单的技术。如果他们在部署SDN时同样不考虑安全性,那么他们的组织就会受到攻击。让我们看看如何通过强化上述架构图中所示的三层来保护SDN系统。
2-1。保护数据平面层
典型的SDN系统利用X86处理器和使用TLS(以前的SSL)用于控制平面的安全性。这些长期存在的HTTP会话容易受到各种攻击,这些攻击可能危及数据平面的完整性。这将绕过这些解决方案的多租户,并导致基于云的服务受到损害。组织应该更喜欢使用TLS来认证和加密网络设备代理和控制器之间的通信。使用TLS有助于对控制器和网络设备/SDN代理进行身份验证,避免窃听和欺骗南向通信。
根据正在使用的南协议,有可能是选项,以确保该通信。某些协议可能TLS会话中如前面提到的使用。其他协议可以使用共享秘密密码和/或随机数,以防止重放攻击。喜欢的SNMPv3协议提供比v2c的更高的安全性和SSH远不如远程登录。其它专有协议向南可能有自己的方法来验证网络设备代理和控制器以及它们之间的数据进行加密,从而挫败攻击者的窃听和欺骗。
类似地,根据所使用的数据中心互连(DCI)协议,可能会有雷竞技电脑网站一些可配置选项来验证隧道端点和保护隧道流量。同样,密码/共享秘密也是一种选择。然而,一些DCI协议对于安全性可能没有任何选择。
组织可能认为私有网络具有一定的内在安全性。随着组织他们的虚拟网络和的SDN扩展到云服务和远程数据中心,验证物理路径可能不那么容易。雷竞技电脑网站防止未经授权的访问更容易,当一个组织控制物理访问,但随着网络虚拟化,实际的物理路径变得有点模糊。这是很难保证你看不到的东西。
2-2。固定控制器层
该控制器是一个关键的进攻目标,因此,它必须被硬化。硬化控制器和网络元件的安全状态典型归结为主机OS硬化。所有强化面向公众的Linux服务器的最佳做法也适用在这里。尽管如此,企业将将要严密监测其控制器,用于任何可疑活动。
组织也将希望防止未经授权的访问SDN控制网络。SDN系统应该允许配置安全且经过身份验证的管理员访问控制器。控制器管理员甚至可能需要基于角色的访问控制(RBAC)策略。日志记录和审计跟踪对于检查管理员或攻击者的未经授权的更改很有用。
如果控制器受到DoS攻击,那么使用高可用性(HA)控制器体系结构是有益的。使用冗余控制器的sdn可能会在失去控制器的情况下继续工作。这将提高攻击者试图DoS系统中所有控制器的门槛。此外,这种攻击不会特别隐蔽,也不会进一步达到攻击者保持不被发现的目的。
2-3。固定SDN层
另一种保护措施是使用出带外用于控制流量的网络。在数据中心中构建OOB网络比跨企业广域网更容易,成本更低。雷竞技电脑网站使用面向北向和南向通信的OOB网络可以帮助确保控制器管理协议的安全。
使用TLS或SSH或其他方法保护向北的通信和安全控制器管理将被认为是最佳实践。应用程序和服务向控制器请求服务或数据的通信应该使用身份验证和加密方法进行保护。
所有向北请求SDN资源的应用程序的安全编码实践应该是最佳实践。安全编码实践不仅有利于面向公众的互联网web应用程序的安全,而且也适用于向北的SDN连接。
有一些SDN系统能够根据控制器策略验证网络设备表中的流。这种类型的检查(类似于FlowChecker)在对政策的政策网络设备的流量可以帮助您识别攻击的结果不符。
3.总结
我们只能尝试预测攻击者可能试图用SDNs攻击什么。部署是新的,协议是新的,控制器软件是新的,过去的SDN攻击历史是未知的。基于SDN体系结构,我们可以预测攻击者可能攻击的位置。如果我们设身处地为攻击者着想,我们可能会发现弱点并加以利用。这样我们就能提前强化这种弱点。
组织上的SDN部署项目出发之前,他们应该考虑将如何在早期设计阶段,确保系统安全。不要把安全,直到最后的清理阶段。如果一个组织等待到工作,那么硬化向北和向南控制消息可能会导致影响服务的问题。最喜欢的事情,从一开始就设置它的权利将企业节省许多问题的道路。
斯科特