万事开头难,中间也难,最后也难。第一次写博客,内容、排版都不太好,请见谅。文章内容部分来源绿盟的《软件定义下的新型安全架构和实践》、《软件定义安全》以及《软件定义安全:SDN/NFV新型网络的安全揭秘》这本书。
1.SDN/NFV
软件定义网络(SDN),是网络一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。
SDN侧重于将设备层面的控制模块分离出来,简化底层设备,进行集中控制,底层设备仅仅只负责数据的转发。目的在于降低网络管理的复杂度、协议部署的成本以及网络创新
SDN架构具有以下特点:
1.控制平面与数据平面相互分离;
2.智能和状态在逻辑上集中;
3.开放接口;
网络功能虚拟化(NFV),通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务需求进行自动部署、弹性伸缩、故障隔离和自愈等。
SDN关注的是网络流量调度,NFV关注的是网络资源管理。SDN和NFV是可以相互独立存在的,据相关研究表明,二者结合起来的效果更优。
2.SDN/NFV环境中的安全问题
NFV、SDN、开源、网络转型,无疑是这两年电信业的热词。不少运营商正进入兴奋的验证阶段。
然而,传统网络设备虽然是“黑匣子”解决方案,但这样的好处是安全。SDN/NFV虽灵活、敏捷、低成本,但这种基于开源软件和白盒硬件的网络构架,伴随而来的还有敞开的漏洞和不可忽视的安全问题。
一旦网络开放,如果安全问题处理不好,我们固若金汤的通信网络可能就会像这次感染勒索病毒一样,漏洞被攻击,且不断传播、感染。
SDN 虽然带来了很多好处,但在安全方面, 也带来了新的特有的安全威胁。
架构安全:
控制层面的安全威胁:管理集中性使得网络配置、网络服务访问控制、网络安全服务部署等都集中在SDN控制器上。攻击者一旦实现对控制器的控制,将造成网络服务的大面积瘫痪,影响控制器覆盖的整个范围。由于SDN网络的可编程性、开放性,SDN控制器安全防护的重要性远大于传统网络中网管系统的安全。所以围绕控制器的攻防是SDN自身体系安全中最关键的节点。
例如,在OpenFlow交换机流表中不存在的初始流信息将通过集中的控制器进行处理,虽然控制器可能并不是某次分布式拒绝服务攻击的直接目标,但大量的初始流量将使控制器的负载急剧上升;攻击者向控制器发送多个服务请求并且所有请求的返回地址都是伪造的直到控制器因过载而拒绝提供服务。
应用层面的安全威胁:可编程性使控制器向应用层提供大量的可编程接口,这个层面上可能会带来很多安全威胁。例如,向应用层的应用中植入蠕虫木马程序等达到窃取网络信息更改网络配置占用网络资源等目的,从而干扰控制面的正常工作进程影响网络的可靠性和可用性;利用某些接口实现拒绝服务攻击、进行网络窃听等。
数据平面的安全威胁:攻击者通过直接侵入交换机,用虚假信息填满流表,导致交换机产生“流表满”错误,增大流结束超时时间,增加恶性攻击成功的几率。这种攻击方法对交换机的输入缓存也是有效的,当前OpenFlow协议对交换机输入缓存设置了最小数率控制,当包到达速率超过控制门限时,也表现出丢包。
开放性也给SDN带来很多安全隐患:安全和网络的应用插件都具备一定的规则写入权限, 随着应用的复杂化,多个应用之间会出现安全规则冲突,从而造成网络管理混乱、安全规则被绕过、服务中断等现象; 第三方应用或插件可能带有恶意功能、未声明功能、安全漏洞等多种风险。
OpenFlow协议安全
§1.信息泄露:嗅探出控制器与交换机的信息,特别是流表信息。
§2.非法接入与协议传输安全问题
§3.连接建立的安全问题
§4.action动作处理的安全问题
针对 SDN 引入的新安全威胁,相应的防护建议策略包括但不限于以下几个方面:
§1.在控制器层面,在控制器入口处部署流量清洗设备,防止大规模流量攻击造成拒绝服务;使用分布式多控制器方案,当某一台控制器受到攻击或者发生故障,马上自动选择其他控制器代替其功能,使得网络不会因为控制器故障而产生大面积瘫痪; 部署安全代理,由于控制策略都是应用程序实现的,对应用程序进行漏洞检测和安全加固,可以在一定程度上缓解控制器安全问题;制定一系列严密的授权、访问控制、安全管理等规则赋予使用者一定的管理权限。
§2.在应用层层面,制定一系列安全准入规则,对应用提供的服务以及需要控制器提供的接口等进行鉴定,负责任的应用才允许成为SDN中合法的应用;利用可编程接口针对目前存在的安全威胁,利用已有的技术对安全威胁进行监控和排除;应用软件认证机制,例如自信任管理方法确保交换机的 安全。
§3.其他层面的,设计实现安全服务和网络服务之间、安全服务之间等接口的安全标准;慎重开放 API接口,开放之前做好安全分析;设计精巧的算法及优先级政策,以避免安全策略冲突或被绕过。
同样的,NFV也带来了新的特有的安全威胁:
§1.OpenStack的安全隐患:OpenStack是NFV的标准构建模块,它应用于创建开源的云或数据中心平台。它假定OpenStack控制器和计算节点位于同一网络,且距离甚近。可一旦应用到庞大的电信NFV网络中,计算节点在核心网之外,运营商不得不妥协折中,放宽控制器和计算节点间的安全规则,这就带来了安全风险。
所有的OpenStack控制器需运行专用协议,且必须在防火墙配置规则来管理流。在某些情况下,必须在防火墙打开多个pinholes(针孔),OpenStack才能工作。英国BT对企业网虚拟化的测试显示,为了使计算节点工作,其不得不在防火墙为控制器打开500多个pinholes。显然,在这种构架下,安全是一个问题。OpenStack目前表面上看起来还安全,不排除有规模化的因素,一旦电信网络大量采用,规模庞大,难保喜欢搞事的攻击者们不认真研究一番。
§2.软件在攻击面前不堪一击:尽管传统电信设备功能单一,但采用专用ASIC,可实现高性能处理且运行稳定,尤其在网络高峰期能经受考验,坚挺而可靠。NFV现在要把传统电信设备的一些物理功能软件化,并将这些软件运行于通用的CPU之上。问题来了。一些物理功能被软件代替,这些软件在网络负载增加时,相对更加脆弱,尤其在受到DoS和DDoS攻击时,网络负荷狂增,难说不会不堪一击。
§3.控制面开放且可远程操作很危险:NFV将控制面从设备分离,并抽取出来,整个主机都可以通过外部控制器来进行编程,这为那些黑客提供了机会。另外,我们说网络转型要以用户为中心,要实现终端用户的自助服务,这一切需用户通过一个公共的外部网站或平台来实现。当用户自助修改功能时,需求通过外部网络传送到NFV编排器,这就意味着,在外网和运营商内网之间为终端用户打开了一条控制网络的通道。可怕的是,这个“用户”也可能是个不怀好意的黑客,他可以通过漏洞或pinhole发起攻击。
§4.恶意软件可以在虚拟机和主机间快速传播:NFV讲的是虚拟化,计算要虚拟化,存储要虚拟化,网络要虚拟化。它利用虚拟化软件Hypervisor将物理服务器和软件功能分开,运行不同操作系统的各种虚拟机运行于物理服务器上。通俗的讲,传统的电信设备的物理功能变成了通用服务器,这些服务器运行于虚拟化环境。每一个主机上运行一个虚拟化网络,并与整个网络连接。这种运行于虚拟环境下的主机遍布网络,从数据中心到基站,到客户驻地。这样,由于虚拟机是经常被实例化的软件(打开和关闭),一旦受到攻击,病毒就可能从一个虚拟机传播到另一个,或从一个主机上的虚拟机传播到其它主机上,最终蔓延整个网络。为此,每个主机运行的虚拟化网络,都必须被单独监视和保护。以前高高的防护围墙,现在要细化到一个个封闭的格子间。
3.传统安全面临巨大的挑战
传统安全面临巨大的挑战:IT系统变革及安全威胁的挑战。
IT环境变化:虚拟化、自动化、软件化、互联网化。
安全威胁的挑战:
网络环境变化所带来的新的安全威胁
安全机制是否适应软件化、虚拟化环境
安全策略是否能够及时、正确地跟随环境迁移
互联网上的安全事件不减反增
Mirai,乌克兰电力门,Ransomeware,Swift系统$8100w盗窃,OpenSSL,Struct 2,……
4.百家论
(1)自适应安全
不再假设防护能实现万无一失的安全
更强调检测和响应的能力
更重要的是将这四个步骤有机的进行编排,实现针对不同攻击的动态防御
(2)应用编排
Phantom: RSAC 2016创新沙盒Winner,从应用层入手,构建自动化、可编排的安全应用体系,支持多种数据源和主流的SIEM平台;同时,可以让安全管理团队编写脚本Playbook,调用相应的安全服务,实现安全运维自动化
Resilient System:被IBM收购,推出弹性的灾难恢复服务
编排引擎可以软件定义安全为支撑体系,利用北向应用编排机制进行安全资源和策略的灵活调配,实现多种防护手段的协同运作
(3)零信任/微分段
Google BeyondCorp
§彻底打破内外网之别,通过统一的访问控制引擎,管理不同用户对不同资源的访问,而不将用户和资源的位置作为决策依据
Skyport Systems
§基于TPM的虚拟化零信任访问控制体系
CSA SDP
§面向企业关键基础设施的集中访问控制体系
VMWare Micro-Segmentation
§虚拟化环境中的东西向内部网络访问控制
5.软件定义安全
软件定义安全理念:
连接协同:有机结合多种安全机制,实现协同防护、检测和响应;
敏捷处置:在出现异常时进行智能化的判断和决策,自动化地产生安全策略,并通过安全平台快速分发到具有安全能力的防护主体;
随需而变:当安全事件爆出后,攻击者的攻击方法更新很快,那么就要求防护者能紧跟甚至超过攻击者,以快制快,在数据泄露的窗口期内阻止攻击者。
软件定义安全是从软件定义网络引申而来,原理是将物理及虚拟的网络安全设备与其接入模式、部署方式、实现功能进行了解耦,底层抽象为安全资源池里的资源,顶层统一通过软件编程的方式进行智能化、自动化的业务编排和管理,以完成相应的安全功能,从而实现一种灵活的安全防护。
安全机制软件化
接口开放、易扩展
架构功能分离
软件定义安全的特点是:开放生态环境、数据平面和控制平面分离、可编程的安全能力、与网络环境解耦。
软件定义架构:
安全资源层:由各种物理形态或虚拟形态的网络安全设备组成,兼容各厂商的产品。这些安全设备接受统一部署、管理、调度,以实现相应的安全功能。
转发层:即SDN网络中的网络设施层是一类仅需根据控制器指令进行数据包转发,而无需自主的理解和处理各种网络协议的网络交换设备。将网络安全设备接入转发层,通过将流量导入或绕过安全设备,即可实现安全设备的部署和撤销。
控制层:能够根据不同业务的安全策略,从全局的视野对转发层、安全资源进行集中管理并下发调度命令。
管理编排层:由侧重于安全方面的应用组成,将用户配置的或运行中实时产生的安全功能需求转化为具体的安全资源调度策略,并通过控制层予以下发,实现安全防护的智能化、自动化、服务化。
6.软件定义安全应用在云环境的落地困境
实现价值:
§1.纵深防御的安全体系:基于安全域部署相应的防护措施,实现纵深防御,满足云计算平台的安全保障要求。
§2.模块化架构可灵活扩展:根据应用场景和需求的不同,选择和部署相应的安全资源、系统功能模块、安全应用。
§3.横向(东西)流量的防护:通过部署虚拟化的安全资源池和流量引导技术,可以实现牵引东西向流量到安全资源池内做检测和防护。
§4.满足等保合规要求通过构建安全监测、识别、防护、审计和响应的综合安全能力,保障云计算资源和服务的安全,确保符合等级保护的要求。
难点:
§1.安全产品的虚拟化及适配云平台Hypervisor较为困难
§2.安全设备的证书体系在云平台中不能直接适用
§3.安全方案无法控制云平台的内部流量
资源池:打通最后一环
1种逻辑结构=n种物理形态 →资源池化
多种形态的安全设备通过池化形成一个个安全资源池
资源池按需提供安全能力
安全资源池与其他基础设施一起构建SDx