第3章 用软件定义的理念做安全
1.不进则退,传统安全回到“石器时代”
1.1 企业业务和IT基础设施的变化
随着企业办公环境变得便利,以及对降低成本的天然需求,企业始终追求IT集成设施的性价比、灵活性、稳定性和开放性。而云计算、移动办公等新技术和业务模式的出现,已经使企业的IT基础设施发生了极大的变革,此时传统安全已很难适应新的业务环境。
1.2 传统安全面临的挑战
目前传统安全面临着巨大的挑战,其原因主要有两点:IT系统的变革及安全威胁的挑战。
在云计算场景中,云计算平台使以往传统IT基础设施中的安全设备和安全机制失效,同时云计算平台本身的机制(如虚拟资源的申请和开通)也会改变IT和安全运维的方法和流程。如果这些问题不能解决,则将制约云计算平台的进一步发展。
关于前一个问题,传统安全体系在软件化、虚拟化网络环境中存在的问题如下。
1)虚拟化环境中,现有的物理安全机制可能无法观测到恶意攻击。
下图所示,虚拟机VM1和VM2在同一台物理主机内,那么两者的通信只存在于VM1、虚拟交换机和VM2之间,无法被外部的防火墙监控到,自然就不能做访问控制。
2)虚拟化网络中,数据包难以被现有安全机制所理解。
下图所示,虚拟机VM1和VM2在不同的物理主机内,虽然两者的通信经过外部防火墙,但由于物理主机间通过隧道相连,如果防火墙只是简单地部署在物理交换机一侧,那么它只能看到Host1到Host2的数据包,而不能去掉隧道的头部,解析VM1到VM2的流量的。
在移动办公场景中,传统IT基础设施需要连接另一套无线接入网络,而且这套网络可能部署在任何区域,接入的设备类型五花八门,安全始终是制约移动办公的重要因素。对于外部攻击者,只需伪造SSID就可以搭建恶意无线路由器,窃取用户的敏感信息;对于内部攻击者,如果管理人员不对无线接入网络做合理的网络划分,就可能会入侵办公网之外的敏感区域,造成非授权的访问。
软件化、移动化使得以往固定的环境会随着业务和环境的变更快速变化,具体IT环境的变化体现在以下方面:
- 虚拟化。通过虚拟化技术,计算、存储和网络等基础设施可弹性、快速分配,业务系统应用、用户资产都可通过软件层面进行快速部署,而无须关心复杂的实际网络拓扑和物理分布限制。
- 自动化。网络技术演进加速,随着VXLAN、NVGRE等隧道技术的出现,突破个VLAN个数的限制,使管理员不可能通过人工的方式分配网络、更新网络配置,自动化网络运维几乎成为了必然。
- 软件化。SDN技术的出现,将网络数据包的转发和控制平面分离,使得网络管理集中化、可编程化,从而使整个网络运维非常灵活。
- 互联网化。互联网行业的高效创新能力,驱动业务系统和应用服务快速开发、部署和更新。
既然网络环境变化成为了常态,安全机制部署和安全策略也可能随时发生变化,使安全运维存在诸多挑战:
- 网络环境变化所带来的新的安全威胁。
- 安全机制是否能适应软件化、虚拟化环境。
- 安全策略是否能够及时、正确地跟随环境迁移。
另外,越来越多的攻击者带来了新的更严峻的安全威胁。其原因有很多方面,如黑产规模化、攻击成本降低、在线支付普及等。这些安全威胁的特点主要如下。
1)给安全防护留下的响应时间更短:脆弱性的利用速度、安全威胁传播速度,需要动态的、快速部署的安全能力。
2)攻击更隐蔽,手段更先进:难以用一种通用的方法完成检测和防护,需要更多的定制、组合的安全能力。
3)攻击的持续性:持续的攻击需要持续的、高强度的安全防护,这使安全防护的成本增大,因此需要低成本、高自动化的安全防护能力。
1.3 SDN之前的应对方案
Cisco和一些厂家在SDN出现前推进的自防御网络。对于应对企业边界的逐渐消除、安全威胁不断演进、企业面对更多的安全威胁,Cisco自防御网络的应对策略是构建灵活、可管理、分层的安全防御架构,从理念上来说,它是一种安全自动化方案。这种架构的核心思想如下。
- 与网络设备高度集成,使每一个网元节点都作为安全策略的执行点,成为安全防护体系的一部分。通过这种高度集成,实现了安全对网络和业务的感知,使安全防护可以及时感知和跟进网络的变化,自然也解决了网络边界消除导致的安全设备部署难题。
- 在不同网络设备和服务间实现高度的协作,通过协作使网络可以自适应地应对不断发展和演变的安全威胁。
在实现层面,自防御网络最初是将防火墙、IPS、VPN等安全技术嵌入到网络体系架构中,之后逐渐演进成将安全服务集成在路由器、交换机等网络设备中。从用户的角度来说,也只有整体采用一个厂家的设备才可能实施这种高度集成和协作的安全自动化,因此不具有很好的可扩展性。
因此,有必要将这种安全服务对网络的感知、安全的自动化在开放的架构上去实现,将网络功能进一步分层,并将接口开放出来,从而在架构层面实现安全对网络的感知及安全自动化能力。这正是软件定义安全在之前的解决方案上重要的进步。
2.软件定义:是否是银弹
2.1 SDN带来的机遇
中心化的智能控制系统
网络控制器就能根据上下文场景,计算网络或安全策略,快速、有效地调度网络中的流量。
全局和实时流量视图
SDN控制器具有全局网络实时的流量信息,这些信息在很多防护场景中非常有用。例如,在DDoS检测时,可获取物理网络处的硬件交换机的sFlow或OpenFlow流信息,然后根据数据包流的统计特征进行判断,确认是否存在恶意攻击。
基于全局网络设备提供的流量信息,可构建基于流量的实时和历史知识库,进而运行时对任意访问进行分析,确认其在历史知识库中是否存在相似的模式。如果没有,则可能是攻击者的恶意试探,进而通过NFV技术按需部署虚拟安全设备进行深度包检测。
可编程
安全厂商可以很方便地通过北向接口定义控制模式和控制策略,并将这些控制策略快速地分发到全局网络中的任意角落,形成软件化的控制体系,不给内网攻击者可乘之机。
安全厂商也可以通过网络控制器提供的服务链的接口,很方便地部署深度检测设备,并通过虚拟的链路将其连接起来,形成按需的安全部署。
抽象性
SDN控制器提供了高度抽象的北向接口,安全应用开发者不需要了解复杂的网络底层实现,就能编写出满足安全需求的北向应用。例如,开发者只需要知道对恶意流量做防护,以及防护设备网卡的MAC值,就可以直接向网络控制器发送一条指令,将满足要求的流量牵引到该MAC所在的交换机端口。抽象性简化了网络开发的难度,提高了安全应用的开发效率和质量。
2.2 SDN对网络安全带来的影响
基于OpenFlow的SDN技术为实现高度安全和可管理的环境提供了以下优点:
➊ 基于流的视角是一个理想的安全处理流程,因为它提供了不受传统路由限制的端到端、面向服务的连接模型。
➋ 逻辑上集中控制机制允许在整个网络范围内进行高效的威胁检测。
➌ 粒度策略管理可以基于应用、服务、组织和地理因素,而不是物理配置。
➍ 基于资源的安全策略支持面向不同威胁风险的多种设备的统一管理,包括防火墙和安全设备到访问设备。
➎ 通过可编程的控制机制对安全策略进行动态的灵活调整。
➏ 灵活的路径管理实现了快速处置和隔离入侵,而不会影响其他网络用户。
➐ 通过结合历史和实时的网络状态和性能数据,SDN利用智能决策,在通用的基础设施上实现了灵活简单、可操作的安全机制。
➑ 通过快速牵引、阻断或镜像流量,可以对恶意攻击进行实时响应。
➒ 多个访问控制安全应用可同时下发安全策略,最终在网络设备上体现为对流表进行细粒度的控制。另外,通过流表项一致性比较,也可以判断上层是否出现了冲突的安全策略,进而进行业务层面的排查。
但是,SDN侧重于流的处理,缺少包一级的处理。然而,在进行安全检测时不仅需要对数据流的特性进行分析,还需要对部分数据包的内容进行检测。在SDN网络中可以通过以下两种方法得到数据包级的信息。
❶ 通过PACKET-IN消息控制器可得到由交换机发送的流首包部分头部信息,只要控制器不为这条流下发流表,交换机会将后续的所有包仍按首包发送给控制器。
❷ 由控制器要求交换机复制一条流到某台设备,由此设备完成包级的处理。