针对IaaS虚拟网络的环境,基于软硬件的传统安全服务对虚拟网络环境是透明的,所以传统的诸如虚拟防火墙、漏洞扫描等安全服务要接入云环境下多租户的网络中,也需要考虑新的方法和技术。
1.安全服务的分类
当前主流相对成熟的网络安全服务(诸如防火墙、漏洞扫描、入侵检测系统等)根据工作模式大致分为两种类型。
类型1:安全服务组件本身不发送通信流,只是对接收到的数据流进行处理,以实现系统安全保护。例如,防火墙对经过的数据流进行通信过滤、IDS依据接收到的通信流进行入侵检测判定等。
类型2:安全服务组件本身需要发送通信流,依据所发送的数据包的回复信息,综合判定系统的安全状态并给出安全评估报告。例如,漏洞扫描、端口扫描等安全服务。
2.类型1的安全服务接入
类型1的安全服务本身不产生任何数据流,而只是对流经的数据流进行处理与转发等。此时,安全服务工具除需要具有软件实现的基础外,还应具有某种类型的载体来承载该软件,并通过引流等方式使得指定虚拟机的通信流量可送达至安全服务工具,从而使得安全服务工具能够服务于租户虚拟机。
同时,承载安全服务软件的载体应能够运行于虚拟化网络之上,且能够与现有的软件安全工具很好地兼容、很容易配置安全软件运行时所需的上下文环境。此外,载体本身应具有较好的可管理性和灵活性,能够依据业务需求快速地实例化以实现安全服务供应。
由于虚拟网络已构建于传统基础设施之上,因此使虚拟机流量送至安全服务工具的实现方式应当尽可能地兼容于现有网络基础设备以及网络协议,避免新设备投入过大及协议改造开销。
此类基于轻量级虚拟机构建的网络安全服务,不仅可以通过定制具备不同操作系统的虚拟机模板来满足安全软件工具的上下文环境,还可以充分利用IaaS管理工具已经具有的虚拟机全生命周期管理能力,实现对安全管理工具的有效管理。
网络方面,为使虚拟机通信流可流经网络安全服务虚拟机,同时兼容于现有传统网络设备及网络协议、以较小的复杂度实现,可采用下述方式进行:首先,将安全服务虚拟机配置于租户相同子网,使得两者二层网络可达;之后,通过在虚拟机网络接口处部署支持Open Flow协议的软件交换机,以按需修改特定通信流二层地址的方式使得指定通信流可被重定向至安全服务虚拟机处。此时,业务数据网络信道与安全服务网络信道共同构成了虚拟机的通信网络。
3.类型2的安全服务接人
类型2的安全服务本身需要发送通信流,通过通信反馈信息综合评估系统安全状态,此类安全服务接入方式适合漏洞扫描等工具的接入。同样,除安全服务工具需要有软件实现的基础外,还需考虑安全服务组件所发出的通信以何种方式送达租户网络。虽然此类安全服务也可以采用类型1中的方式,直接将安全服务工具封装于虚拟机中,并将其实例化于租户虚拟机所在的网络,从而解决网络接入的问题,但该方式往往忽略了安全工具本身支持多任务并行处理的能力。以漏洞扫描系统为例,其本身具有可并行扫描多个网络内目标主机的能力,采用类型1安全服务接入方式将使该能力得不到发挥;同时,由于漏洞扫描引擎及漏洞扫描插件一般需要占用较大的存储空间,随着租户数量增多,所实例化的漏洞扫描虚拟机引入的开销也是需要考虑的问题。
因此,针对此类安全服务应用,根据传统安全检测工具及虚拟网络的特点,通过构建独立的安全服务节点,利用SDN动态地构建虚拟网络链路的方式,使得单一的安全服务引擎可以同时实例化出多个独立的安全服务实例来为多个不同目标对象同时提供服务,即以“一虚多”的思想同时提供多个安全服务实例。
其中:
安全服务管理模块:管理和调度安全任务,包括安全任务实例化、任务进度查询、结果查询等。
安全服务代理:接收服务管理模块下发的指令,管理安全任务进程、虚拟网络资源以及将安全任务通信接入租户网络,并保障不同安全任务之间的隔离性。
任务运行空间:为安全服务(安全服务引擎与安全任务进程)提供运行时网络环境。虚拟网络资源组件:将安全任务接入目标虚拟机网络,并保障不同安全任务之间的网络隔离性。