在云计算中,基础设施有两个层面,分别是基本基础设施和虚拟基础设施,管理平面把两者连接起来。
· 基本基础设施:它是汇集在一起用来构建云的基础资源。这层是用于构建云资源池的原始的、物理的和逻辑的计算资源、网络资源和存储资源。同时它还包括用于创建网络资源池的网络硬件和软件。
· 虚拟基础设施:由云用户管理的虚拟/抽象的基础设施。这层是从资源池中使用的计算资源、网络资源和存储资产。例如,由云用户定义和管理的虚拟网络。
虚拟化的目的就是要提高资源的使用效率、提供更灵活的使用方式和统一的管理配置方式。虚拟化技术根据不同的标准有多种分类方法。
按照实现功能,可将虚拟化技术划分为CPU虚拟化、网络虚拟化、存储虚拟化、服务器虚拟化和应用虚拟化等;按照虚拟化技术资源调用模式,虚拟化技术可划分为全虚拟化、半虚拟化和硬件辅助虚拟化等几类。
根据虚拟化监视器(Virtual Machine Monitor,VMM)所处层面的不同,可将虚拟化分为I型和II型两种,如图3-1所示。Ⅰ型虚拟化结构也称为裸金属虚拟化,VMM直接运行在硬件设备上;Ⅱ型是一种主机托管型或基于操作系统的虚拟化,VMM运行在操作系统上,然后在VMM上安装和运行虚拟机。I型虚拟化软件平台有VMware ESX、VMware ESXi以及Xen等;II型虚拟化软件平台有VMware Workstations、VirtualBox等。
云平台和基础设施安全包括保护基础设施、保护虚拟化网络、保护计算工作负载、保护虚拟化存储、保护管理平面等方面。
·图3-1 I型(左)和II型(右)虚拟化结构
云基础设施的保护主要从安全架构设计、加固基础设施服务、加固主机、保护网络安全和加固管理平面等展开。
架构安全需要考虑的因素包括虚拟机的隔离和安全、数据的集中化带来的安全隐患、虚拟机混合所带来的虚拟机间管理关系和策略、需要处理的法律法规和审计等问题。CSA发布的《云计算安全技术要求 第2部分:IaaS安全技术要求》中对云计算平台应符合的基础要求做了如下规定。
1)应支持绘制与当前运行情况相符的网络拓扑结构图,支持对网络拓扑进行实时更新和集中监控的能力。
2)应支持划分为不同的网络区域,并且不同区域之间实现逻辑隔离的能力。
3)应支持云计算平台管理网络与业务网络逻辑隔离的能力。
4)应支持云计算平台业务网络和管理网络与租户私有网络逻辑隔离的能力。
5)应支持云计算平台业务网络和管理网络与租户业务承载网络逻辑隔离的能力。
6)应支持租户业务承载网络与租户私有网络逻辑隔离的能力。
7)应支持网络设备(包括虚拟化网络设备)和安全设备业务处理能力弹性扩展的能力。
8)应支持高可用性部署,在一个区域出现故障(包括自然灾害和系统故障)时,自动将业务转离受影响区域的能力。
云计算平台应符合的增强要求如下。
1)应支持指定带宽分配优先级别的能力。
2)应支持虚拟化网络边界的访问控制。
3)应支持区域边界的双向访问控制,控制从内往外和从外往内流量的能力。
传统的网络隔离技术是物理隔离,通常通过专用硬件来确保两个网络在物理连接上是断开的,或实现受控制信息交换。
云服务提供商出于操作和安全的原因,将云的网络进行物理隔离。不同的网络被隔离,而相互之间没有功能或业务重叠。通常至少有三个不同的网络因为不具备流量重叠功能而被隔离到专用硬件上,它们分别是将所有组件绑定在一起的管理网络,用于将卷连接到计算节点的存储网络,用于实例之间网络通信以及将互联网或内部网络流量路由到实例的服务网络。
虚拟网络的安全保护可以从以下几个方面着手:使用SDN为多个虚拟网络和多个云账户/分段使用SDN功能,以增强网络隔离;独立的账户和虚拟网络与传统的数据中心相比,极大地限制了危害范围;基于每个工作负载而不是基于每个网络来应用云防火墙,并配置默认拒绝功能;尽可能使用云防火墙策略(比如安全组)限制同一虚拟子网中工作负载之间的通信。
1.IaaS网络虚拟化安全要求
CSA发布的《云计算安全技术要求 第2部分:IaaS安全技术要求》中规定云计算平台虚拟化网络安全应符合的基础要求如下。
1)应支持不同租户的虚拟化网络之间安全隔离的能力。
2)应支持租户的虚拟化网络与云计算平台的业务和管理网络之间安全隔离的能力,包括如下要求:云计算平台管理员无法通过云计算平台的业务和管理网络访问租户私有网络;租户无法通过私有网络访问云计算平台的业务和管理网络;租户无法通过私有网络访问宿主机。
3)应支持虚拟私有云VPC的能力,包括如下要求:租户完全控制VPC虚拟网络,包括能够选择自有IP地址范围、创建子网,以及配置路由表和网关;租户可以在自己定义的VPC虚拟网络中启动云服务的资源,如虚拟机实例;对VPC的操作,如创建或删除VPC,变更路由、安全组和ACL策略等,需要验证租户凭证。
4)应支持VPC之间连接的能力,包括同一个租户不同PC之间和不同租户VPC之间的连接能力。
5)应支持安全组,提供虚拟化网络安全隔离和控制的能力,包括如下要求:可以过滤虚拟机实例出入口的流量,控制的规则可以由租户自定义,支持根据IP协议、服务端口及IP地址进行限制的能力。
6)应支持网络访问控制列表ACL,提供虚拟化网络安全隔离和控制的能力,要求基于IP协议、服务端口、源IP地址、目的IP地址允许或拒绝流量。
7)应支持虚拟私有网关,提供VPC与其他网络建立VPN私有连接的能力。
8)应支持互联网网关,提供NAT功能,支持VPC与互联网连接的能力。
9)应支持租户虚拟化网络关闭混杂模式的能力。
10)应支持防止虚拟机使用虚假的IP或MAC地址对外发起攻击的能力。
11)应支持防止虚拟机VLAN或VxLAN跳跃攻击的能力。
12)应支持不同租户的虚拟机之间以及虚拟机与宿主机之间网络流量监控的能力。
13)应支持租户对其所拥有的不同虚拟机之间网络流量进行监控的能力。
2.虚拟局域网VLAN的局限性
VLAN是通过二层交换建立起来的隔离划分广播域的局域网,它是专为单租户环境中的网络分段设计的,而不是为隔离租户设计的。
VLAN因为对多租户缺乏重要的隔离能力,并不适用于大规模虚拟化或安全性。同时它仅仅解决了二层网络广播域分割的问题,面对ARP欺骗、DHCP欺骗、STP协议攻击、VLAN跨越攻击、组播暴力攻击等是无效的。VLAN如果用在云环境中,在规模上具有性能和地址空间的限制(例如,VLAN存在数目上限为4094的局限性)。
3.VxLAN技术
(1)VxLAN技术概述
VxLAN技术是一种大二层的虚拟技术,主要的技术原理是引入了一个UDP外层隧道作为数据的链路层,而原有的数据报文内容作为隧道净荷,可实现跨越三层网络的二层网络。它将已有的三层物理网络作为Underlay网络,在其上构建出虚拟的二层网络(即Overlay网络),Overlay网络通过封装技术,利用Underlay网络提供的三层转发路径,实现租户二层报文跨越三层网络在不同站点间传递。
在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的VxLAN。属于相同VxLAN的虚拟机处于同一个逻辑二层网络,彼此之间互通。属于不同VxLAN的虚拟机之间二层隔离,对云租户来说,Underlay网络是透明的,同一云租户的不同站点就像工作在一个局域网中。
(2)VxLAN的网关
VxLAN的网关有两种,即二层网关和三层网关。二层网关用于解决相同VNI中虚拟机的互访,三层网关解决的是不同VNI以及VxLAN和非VxLAN之间的互访。
如果某企业在不同数据中心(地理上分离)都有虚拟机,且位于同一网段,现需要实现不同数据中心相同网段的虚拟机互通,则可以将交换机设备作为VxLAN二层网关,交换机设备间建立VxLAN隧道,通过VxLAN二层网关实现同一网段的终端用户互通。
如果某企业在不同的数据中心有虚拟机,且位于不同网段,需要实现该企业不同网段虚拟机之间互通的话,则可以将设备作为VxLAN三层网关,其他交换机作为VxLAN的二层网关,交换机设备之间建立VxLAN隧道,通过VxLAN三层网关实现不同网段的终端用户互通。
4.SDN技术
(1)SDN技术简介
SDN是一种网络虚拟化技术。网络虚拟化技术是通过对终端、网络设备、传输链路、网络协议以及服务器等的虚拟化,来实现各虚拟设备之间的连接、通信、文件传输、服务提供与访问以及网络管理等功能的技术。
为了增强传统网络灵活配置和可编程的能力,软件定义网络(Software Defined Network,SDN)技术应运而生。相较于传统网络,SDN通过把网络的控制层和转发层分离,用集中控制器替代原来的路由协议自协商方式,极大提升了网络的管控效率和灵活性。
SDN的核心思想包括解耦、抽象和可编程。解耦是对数据平面与控制平面的解耦;抽象是对网络功能的抽象;可编程是对网络的可编程。通过解耦,控制平面负责上层的控制决策,数据平面负责数据流的交换转发,双方遵循一定的开放接口进行通信。解耦是实现网络逻辑集中控制的前提。
SDN技术主要是将传统网络设备的数据平面和控制平面分离,使用户能够通过标准化的接口对各种网络转发设备进行统一管理和配置。这种架构具有可编程、可定义的特性,为网络资源的设计、管理和使用提供了更多的可能性。
SDN采用控制与转发分离、软件可编程的网络体系架构,其架构由应用平面、控制平面和基础设施层组成,不同层之间通过接口进行通信,如图3-2所示。
·图3-2 SDN架构
(2)SDN带来的安全收益
SDN使得隔离更容易,因为不受物理硬件的限制,能构建出尽可能多的隔离网络。另外,SDN是隔离不同安全上下文的应用程序和服务的好方法。SDN防火墙可以基于比硬件防火墙更灵活的标准应用于资产,因为它们不受物理拓扑的限制。同时它结合云平台的业务流程层,与使用传统硬件或基于主机的方法相比,这可以实现非常动态和精细化的组合和策略,同时管理开销更少。基于SDN技术的云上防火墙(安全组)可以具备以下功能。
1)每台弹性云服务器(Elastic Cloud Server,ECS)实例至少属于一个安全组,可以同时加入多个安全组。
2)一个安全组可以管理多台ECS实例。
3)同一安全组内的ECS实例之间默认内网互通。
4)在没有设置允许访问的安全组规则的情况下,不同安全组内的ECS实例默认内网不通,但是可以通过安全组规则授权两个安全组之间互访。
5)安全组支持有状态应用。一个有状态的会话连接中,会话的时间可以设定。安全组会默认放行同一会话中的通信。例如,在会话期内,如果连接的数据包在入方向是允许的,则在出方向也是允许的。
(3)SDN面临的安全威胁
SDN技术的集中化控制、网络可编程等特性带来了很大的便利性,但这样集中可控制的网络结构本身也会存在安全隐患。随着网络规模的扩大,单一的控制器成为网络性能的瓶颈;保持分布式网络节点状态的一致性,也是SDN网络的一个重要挑战;响应延迟可能导致数据平面的可用性出现问题。
负责管理OpenFlow协议的开放网络联盟(ONF)曾指出两个潜在的SDN安全问题:一个是集中化控制存在“潜在的单点攻击和故障源”风险,另外攻击者也可部署假冒的控制器,伪装成主控制器,劫持对OpenFlow交换机的控制;另一个是控制器与数据转发设备之间的南向接口很容易“受到攻击而降低网络的可用性、性能和完整性”。
一方面,SDN集中化控制的网络结构使SDN控制器成为攻击者的主要目标,因为它既是一个集中的网络干扰点,也是一个潜在的单点故障源。攻击者可能会轻松攻破它,修改代码库,改变流量控制,从而在一些位置过滤或藏匿恶意数据,并任意操控数据。另一方面,控制器与转发设备之间的南向接口也很容易成为攻击者的目标。由于缺乏健全的身份认证机制,攻击者可以控制甚至伪造虚拟转发设备,从而通过伪造、篡改数据包等方式导致转发平面的性能下降、可用性和完整性遭到破坏;攻击者也可以利用南向协议的缺陷,发送数据包修改数据转发层面的转发流表,导致数据流被窃听、修改,甚至造成虚拟网络故障;攻击者甚至还能够通过伪造大量的请求流表数据包等方法威胁控制平面的安全。
采用了SDN技术的虚拟化网络可能还存在以下几个方面的安全问题。
1)物理安全设备存在监控死角。在虚拟化环境中,虚拟机与外界进行数据交换的数据流有两类,即跨物理主机的虚拟机数据流和同一物理主机内部虚拟机之间的数据流。前者一般通过隧道或VLAN等方式进行传输,可以使用IDS/IPS等安全设备在传输通道上进行过滤检测,但后者只在物理主机中通过虚拟交换机进行交换,传统的安全设备无法对其进行监控。攻击者可以在内部虚拟网络中发动任何攻击,而不会被安全设备所察觉。
2)虚拟网络的数据流难以理解。虽然安全设备无法获得物理主机内部虚拟机之间的数据包,但可以获取跨物理主机之间交互的数据流。尽管如此,传统的安全设备还是不能理解这些数据流,也就无法应用正确的安全策略。此外,很多虚拟机之间的数据包是经过虚拟网络隧道传输的,所以传统的网络安全设施可能无法解析这些封装后的数据流。
3)安全策略难以迁移。虚拟化解决方案的优点是弹性和快速。例如,当虚拟机从一台物理主机无缝快速地迁移到另一台物理主机时,或当增加或删除虚拟机时,网络虚拟化管理工具可快速调整网络拓扑,在旧物理网络中删除虚拟机的网络资源(地址、路由策略等),并在新的物理网络中分配虚拟机的网络资源。相应地,安全解决方案也应将原网络设备和安全设备的安全控制(访问控制ACL和服务质量QoS技术)跟随迁移,然而现有安全产品缺乏对安全策略迁移的支持,导致安全边界不能适应虚拟网络的变化。
5.NFV安全
网络功能虚拟化(Network Function Virtualization,NFV)通过使用通用性硬件以及虚拟化技术,来承载很多网络设备的软件功能模拟。它可以通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务需求进行自动部署、弹性伸缩、故障隔离和自愈等。
NFV技术是由运营商联盟提出,目标是取代通信网络中私有、专用和封闭的网元,实现统一通用硬件平台+业务逻辑软件的开放架构。为了加速部署新的网络服务,运营商倾向于使用标准的IT虚拟化技术实现网络功能模块,如DNS、NAT、Firewall等。欧洲通信标准协会(European Telecommunications Standards Institute,ETSI)的一个工作组(ETSI ISG NFV)负责研究电信网络的虚拟化架构,如NFV MANO。ETSI使用三个关键标准提出它们的建议。
· 解耦合:硬件和软件的分离。
· 灵活性:自动化和可扩展的网络功能部署。
· 动态操作:通过对网络状态的粒度控制和监控来控制网络功能的运行参数。
基于上述三个关键标准,建立了ETSI NFV标准架构,如图3-3所示。其中包括NFVI(NFV Infrastructure)、VNF和MANO(Management and Orchestration)三个主要模块,三者是标准架构中顶级的概念实体。
·图3-3 ETSI NFV标准架构
NFVI是一种通用的虚拟化层,包含了虚拟化层(Hypervisor或者容器管理系统,如Docker、vSwitch)以及物理资源(如COTS服务器、交换机、存储设备)等。NFVI的所有虚拟资源应该是在一个统一共享的资源池中,不应该受制或者特殊对待某些运行其上的VNF。NFVI可以跨越若干个物理位置进行部署,此时,为这些物理站点提供数据连接的网络也成为NFVI的一部分。为了兼容现有的网络架构,NFVI的网络接入点要能够跟其他物理网络互联互通。
虚拟网络功能(Virtual Network Function,VNF)可提供某种网络服务,它可利用NFVI提供的基础设施部署在虚拟机、容器或者裸金属物理机中。相对于VNF,传统的基于硬件的网元可以称为物理网络功能(Physical Network Function,PNF)。VNF和PNF能够单独或者混合组网,形成所谓的服务链(Service Chain),提供特定场景下所需的端到端(E2E)网络服务。
管理和编排(Management and Orchestration,MANO)提供了NFV的整体管理和编排,向上接入OSS/BSS(Operational and Billing Support System),由NFVO(NFV Orchestrator)、VNFM(VNF Manager)以及虚拟化基础设施管理器(Virtualized Infrastructure Manager,VIM)三者共同组成。“Orchestrate”代表编排,只有各个VNF、PNF及其他各类资源在合理编排下,在正确的时间做正确的事情,整个系统才能发挥应有的作用。
· VIM:VIM主要是NFV基础资源管理,即管理计算、存储和网络资源,其实就是管理服务器。NFVI被VIM管理,VIM控制着VNF的虚拟资源分配,如虚拟计算、虚拟存储和虚拟网络。OpenStack和VMWare都可以作为VIM,前者是开源的,后者是商业的。
· VNFM:管理VNF的生命周期(如上线、下线),进行状态监控、镜像加载,在服务器上创建、删除VNF等。VNFM基于VNFD(VNF描述)来管理VNF。
· NFVO:主要是业务编排,用以管理网络服务(Network Service,NS)的生命周期,协调其生命周期的管理,并协调VNF生命周期的管理(需要得到VNF管理器VNFM的支持)、协调NFVI各类资源的管理(需要得到虚拟化基础设施管理器VIM的支持),以此确保所需各类资源与连接的优化配置,如加载新的网络服务、VNF转发表、VNF包。NFVO基于NSD(网络服务描述)运行,NSD中包含服务链、NFV等,相当于在已经创建好的VNF上下发业务配置。
NFV架构中每一层都可能会引入新的安全风险。对于硬件资源层,由于缺少了传统物理边界,存在安全能力短板效应(即平台整体安全能力受限于单个虚拟机的安全能力)、数据跨域泄露、密钥和网络配置等关键信息可能缺少足够的防护措施等问题。
6.VPC技术
虚拟私有云(Virtual Private Cloud,VPC)是一系列计算服务器、存储、跨越多个数据中心的网络等资源的可靠组合,帮助租户在云中构建出一个隔离、可自主定义的区域。在该区域中可以部署虚拟机,并根据业务需求定义虚拟网络环境,包括定义网络拓扑、创建子网、定义ACL等。
VPC的优势主要体现在以下几个方面。
· 安全性:每个VPC都有一个独立的隧道号,一个隧道号对应着一个虚拟化网络。专有网络之间通过隧道进行隔离。
· 隔离:不同VPC之间内部网络完全隔离。使用隧道封装技术对报文进行封装,实现了不同专有网络间的二层网络隔离;专有网络内的ECS使用安全组防火墙进行三层网络访问控制。
· 可控:可以通过安全组规则、访问控制白名单等方式灵活控制访问VPC内云资源的出入流量。
· 易用性:通过专有网络控制台快速创建、管理专有网络。专有网络创建后,系统会自动为其创建一个路由器和路由表。
· 可扩展性:可在一个VPC内创建不同的子网,部署不同的业务。还可以将一个VPC和本地数据中心或其他VPC相连,扩展网络架构。
7.云上网络流量的监视
SDN可编程接口包括北向接口、南向接口和东、西向接口。北向接口是应用层与SDN控制器进行通信的API接口,主要完成控制层与应用层的通信,可支持REST(Representational State Transfer)API、RESTCONF等协议;南向接口是控制层与基础设施层之间的接口,可支持OpenFlow、OF-Config、NETCONF、OVSDB、XMPP、PCEP、I2RS、OPFlex等协议。
在云平台上,北向流量是指云计算平台与上层虚拟机、API之间的流量;南向流量是指云计算平台与网络等底层设施之间的流量;而东、西向流量是指云平台上平行虚拟机之间的流量。云计算中流量分析的目的主要包括安全监控、行为分析和流量规划。云平台中由于不能接入物理设备(云服务提供商外),所以需要用虚拟设备替换它们。接入虚拟设备用于网络监控时需要关注以下几点。
1)虚拟设备拦截所有的流量,因此成为瓶颈。
2)虚拟设备可能占用大量资源,并增加成本以满足网络性能要求。
3)虚拟设备应该支持自动缩放以匹配它们所保护资源的弹性。
4)虚拟设备能感知到云中的操作,以及实例在不同地理区域和可用区域之间的移动。
1.计算工作负载的定义
负载作为一个处理单元,可以位于虚拟机、容器或者其他的抽象中。负载始终运行在处理器上并占用内存。负载包括多种多样的处理任务,如运行在虚拟机标准操作系统上的传统应用或基于GPU、FPGA的特殊任务。云上工作负载的种类有虚拟机、容器、基于云平台的负载和无服务器计算等。
容器与虚拟机的关键区别在于,虚拟机监控程序抽象化了整个设备,而容器仅抽象化了操作系统及必要的应用和服务。基于平台的负载是一个更加复杂的类别,其运行在除虚拟机和容器之外的共享平台上,如运行在共享数据库平台上的逻辑。无服务器计算是对特定PaaS功能的广泛使用,以至于所有或部分应用程序堆栈都在云服务提供商的环境中运行,而不需要任何客户管理的操作系统,甚至容器。使用者只管理服务的设置,而不用管理任何底层的硬件和软件栈。无服务器计算包括如下服务:对象存储、云负载平衡器、云数据库、机器学习、消息队列、通知服务、代码执行环境和API网关等。
云平台对工作负载安全性的影响主要表现在以下几个方面。
· 多租户隔离:所有的处理器和内存几乎都始终要运行多个负载,负载经常来自不同的租户。多个租户很可能共享同一个物理计算节点,不同的物理栈上会有一系列的隔离能力。维持负载的隔离应该是云服务提供商的首要责任之一。
· 负载成本降低:将硬件从通用资源池中取出,将会提高公有云用户的使用成本,和使用私有云一样,内部资源的使用率将会降低。
· 负载实际物理资源的控制:尽管有的平台支持指定负载运行在特定的硬件池或通用位置来提供可用性、合规性和其他需求,但是不管使用哪种部署模型,云租户都很少能够控制负载的物理运行位置。
2.工作负载安全威胁
(1)虚拟机安全
1)虚拟机工作负载安全风险。对于虚拟机,主要存在虚拟机逃逸、虚拟机流量安全监控困难、安全问题随虚拟机镜像文件快速扩散、敏感数据在虚拟机中保护难度加大等问题。
云上虚拟机动态地被创建、被迁移,虚拟机的安全措施必须相应地自动创建、自动迁移。虚拟机没有安全措施或安全措施没有自动创建时,容易导致接入和管理虚拟机的密钥被盗、未及时打补丁的应用(FTP、SSH)等遭受攻击,另外,弱配置以及主机防火墙保护不足的虚拟机易遭受弱密码暴力破解或者无密码的账号被盗等攻击。
虚拟机逃逸指的是突破虚拟机的限制,实现与宿主机操作系统交互的一个过程,它利用虚拟机软件或虚拟机中运行软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主机操作系统的目的。
2)虚拟机安全监控。目前存在两种主流的虚拟机安全监控架构:一种是基于虚拟机自省技术的监控架构,即将监控模块放在Hypervisor中,通过虚拟机自省技术对其他虚拟机进行检测;另一种是基于虚拟化的安全主动监控架构,它通过在被监控的虚拟机中插入一些钩子函数(hook)来截获系统状态的改变,并跳转到单独的安全虚拟机中进行监控管理。
从虚拟机安全监控实现的角度来看,基于虚拟化安全监控的相关研究可以分为两大类,即内部监控和外部监控。内部监控是指在虚拟机中加载内核模块来拦截目标虚拟机的内部事件,而内核模块的安全通过Hypervisor来保护;外部监控是指通过Hypervisor对目标虚拟机中的事件进行拦截,从而在虚拟机外部进行检测。基于虚拟化的安全监控需要与现有的安全工具进行有效融合,应当为安全工具提供标准的调用接口,直接使用安全工具或者经过修改来适应虚拟计算环境。
虚拟主机安全需要关注以下几个方面。
· 自动化安全配置:使用商业工具或Chef、Puppet等工具来管理配置和补丁。
· 基于主机防火墙/IPS防护:基于虚拟化的防火墙或IPS设备来对云上主机进行安全防护,因为它们可以实现策略不受影响情况下的灵活迁移。
· 通信加密:利用VPN、SSH等加密云上虚拟机之间的通信管道或加密内部虚拟机与外部的连接。
3)IaaS计算资源安全要求。CSA发布的《云计算安全技术要求 第2部分:IaaS安全技术要求》中对云计算平台虚拟化计算安全应符合的基础做了如下要求。
· 应支持在虚拟机之间以及虚拟机与宿主机之间CPU安全隔离的能力,包括在某个虚拟机发生异常(包括崩溃)后不影响其他虚拟机和宿主机,虚拟机不能访问其他虚拟机或宿主机的CPU寄存器信息。
· 应支持在虚拟机之间以及虚拟机与宿主机之间内存安全隔离的能力,包括分配给虚拟机的内存空间,其他虚拟机和宿主机不能访问;防止虚拟机占用过多内存资源,超过设定的规格,影响其他虚拟机正常运行;某个虚拟机发生异常(包括崩溃)后不影响其他虚拟机和宿主机;能够禁止虚拟机和其他虚拟机、宿主机之间的拷贝(复制)或粘贴动作,如通过剪贴板的共享和复制。
· 应支持在虚拟机之间以及虚拟机与宿主机之间存储空间安全隔离的能力,包括分配给虚拟机的存储空间,其他虚拟机和宿主机不能访问;防止虚拟机占用过多存储资源,超过设定规格,影响其他虚拟机正常运行;某个虚拟机发生异常(包括崩溃)后不影响其他虚拟机和宿主机。
· 应支持一个虚拟机逻辑卷同时刻只能被一个虚拟机挂载的能力。
· 应支持根据租户所选择的服务级别进行虚拟机存储位置分配的能力。
· 应支持实时的虚拟机监控,对虚拟机的运行状态、资源占用、迁移等信息进行监控和告警的能力。
4)虚拟机工作负载的安全实践。以Azure中IaaS工作负载的安全性最佳实践为例,可以从下述几个方面开展对虚拟机工作负载的安全功能保障。
· 通过身份验证和访问控制保护虚拟机:控制虚拟机访问,减少虚拟机安装和部署的可变性,保护特权访问。
· 使用多个虚拟机提高可用性:Azure确保可用性集中部署的虚拟机能够跨多个物理服务器、计算机架、存储单元和网络交换机运行;如果出现硬件或Azure软件故障,只有一部分虚拟机会受到影响,整体应用程序仍可供客户使用。
· 防范恶意软件:应安装反恶意软件进行保护,以帮助识别和删除病毒、间谍软件和其他恶意软件。反恶意软件包括实时保护、计划扫描、恶意软件修正、签名更新、引擎更新、示例报告和排除事件收集等功能。对于与生产环境分开托管的环境,可以使用反恶意软件扩展来帮助保护虚拟机和云服务。
· 管理虚拟机更新:使虚拟机保持最新,定期重新部署虚拟机以强制刷新操作系统版本。在部署时,确保构建的映像包含最新一轮的Windows更新。
· 管理虚拟机安全状况:网络威胁不断加剧,保护虚拟机需要监视功能,以便快速检测威胁、防止有人未经授权访问资源、触发警报,并减少误报。
同时还可以使用Azure安全中心的以下功能来保护虚拟机:应采用包含建议的配置规则的操作系统安全设置、识别并下载可能缺少的系统安全更新和关键更新、部署终端反恶意软件防护建议措施、验证磁盘加密、评估并修正漏洞和检测威胁等。
· 监视虚拟机性能:如果虚拟机进程消耗的资源多过实际所需的量,可能会造成资源滥用的问题。虚拟机性能问题可能会导致服务中断,从而违反可用性安全原则。可以使用Azure Monitor来洞察资源的运行状况。
· 加密虚拟硬盘文件:建议加密虚拟硬盘(VHD),以帮助保护存储中的静态启动卷和数据卷以及加密密钥和机密。具体操作时可在虚拟机上启用加密,在加密磁盘之前创建快照和/或备份。如果加密期间发生意外故障,备份可提供恢复选项。为确保加密机密不会跨过区域边界,Azure磁盘加密需要将密钥保管库和虚拟机共置于同一区域。
· 限制直接Internet连接:监视和限制虚拟机直接连接Internet。攻击者可能会不断利用猜出的常用密码和已知的未修补漏洞,扫描公有云IP范围中的开放管理端口,然后尝试建立连接,发起攻击。因此要防止暴露网络路由和安全相关信息,标识并修正允许从“任何”源IP地址访问的公开虚拟机,限制敏感的管理端口(如RDP、SSH)。
(2)容器安全
容器是一种轻量级的虚拟化技术,它提供了一种可移植、可重用且自动化的方式来打包和运行应用。容器化的好处在于运维的时候不需要再关心每个服务所使用的技术栈,每个服务都被无差别地封装在容器里,可以被无差别地管理和维护,现在比较流行的工具是Docker和Kubernetes。
安全性必须与容器本身一样可移植,因此,组织机构所采用的技术和工具应该是开放的,并在所有平台和环境中能够发挥作用。许多组织机构都是开发人员在一种环境中进行构建,在另一种环境中进行测试,然后在第三种环境中进行部署。因此,确保评估和执行的一致性是关键所在。持续集成和部署的做法打破了开发和部署周期各个阶段之间的传统壁垒,因此,组织机构需要确保在镜像仓库中创建、存储镜像,以及在容器运行镜像的过程中采用一致的自动化安全方法。
容器面临的风险主要有镜像风险、镜像仓库风险、编排工具风险、容器运行风险、所依赖的主机操作系统安全风险等。
· 镜像风险:主要有镜像漏洞、镜像配置缺陷、嵌入式恶意软件、嵌入式明文密钥、使用不可信镜像等安全风险。
· 镜像仓库风险:主要有与镜像仓库的连接不安全、镜像仓库中的镜像过时、认证和授权限制不足。
· 编排工具风险:管理访问控制不受限制、未经授权的访问、容器间网络流量隔离效果差、混合不同敏感度级别的工作负载、编排工具的可信性不足等。
· 容器运行风险:运行时软件中的漏洞、容器的网络访问不受限制、容器运行时配置不安全、应用漏洞、流氓容器等。
· 主机操作系统风险:攻击面大、共享内核、共享操作系统组件漏洞、篡改主机操作系统文件系统等。
组织机构应遵循以下建议,以确保其容器技术的实施和使用安全。
1)通过使用容器,可以调整组织机构的运营方式和技术流程,支持以全新方式来开发、运行和支持应用。
2)使用容器专用主机操作系统而不是通用操作系统以减少攻击面。
3)只将具有同样目的、敏感性和威胁态势的容器组合放在同一主机操作系统内核中,以提高纵深防御能力。
4)采用容器专用的漏洞管理工具和过程,防止镜像遭到入侵。
5)使用容器感知的运行时防御工具。
4.云对标准工作负载安全控制的要求
云对标准工作负载安全控制的要求,主要有以下几点。
1)能运行在代理不可行的场景。
2)要使用轻量级的代理。传统的代理软件和方式可能对云造成大量性能损耗,而具有较低计算需求的轻量级代理允许负载更好地分布和资源更有效地被使用。
3)运行的代理具备弹性功能。云环境中运行的代理也需要支持动态的云负载和部署模式,如自动伸缩。
4)不能增加攻击面。
5)能够提供文件完整性检测。文件完整性检测是检测正在运行的不可变实例是否遭到未授权更改的一个有效手段。
6)要充分考虑BC/DR(业务连续性/灾难恢复)的影响。由于隔离运行的云负载的抽象化,其通常比运行在物理基础设施上更有弹性,这对于灾难恢复是非常重要的。
5.工作负载镜像的安全收益
不可变的工作负载又称为工作负载镜像,它能够给云的安全性带来显著提升。首先,一些组织完全通过自动化推新的镜像来更新操作系统,并使用替代部署技术将代码更新推入运行中的虚拟机。当系统出现漏洞时,不用对正在运行的系统打补丁,而是可以使用新的正式版来直接替换,这样有助于更快地推出应用程序相应的更新版本。其次,由于实例不能更改,禁用服务和应用白名单程序/进程将更容易实现。另外,大多数的安全性测试可以在镜像创建阶段进行管理,从而减少了对运行中负载进行脆弱性评估的需求。
当然,云的特性也给工作负载镜像提出了新的安全需求,例如,需要一个一致的镜像创建流程和自动化程序来支持部署更新,在部署镜像并将其应用于生产的虚拟机之前禁用登录和限制其服务;如果需要在指定的时间创建几十个甚至数百个镜像,则要解决服务目录管理工作增加的复杂性问题;还要把包括源代码测试和漏洞评估等在内的安全性测试集成到镜像创建和部署过程中。
1.存储虚拟化概述
存储虚拟化技术是计算机虚拟化技术的重要组成部分,它的思想是将资源的逻辑映像与物理存储分开,为系统和管理员提供简化、无缝的资源虚拟视图。
存储网络工业协会(SNIA)对存储虚拟化的定义为:通过对存储(子)系统或存储服务的内部功能进行抽象、隐藏或隔离,使存储或数据的管理与应用、服务器、网络资源的管理分离,从而实现应用和网络的独立管理。存储虚拟化技术具有动态适应能力。它将存储资源统一集中到一个大容量的资源池,无须中断应用即可改变存储系统和实现数据移动,对存储系统能够实现单点统一管理。对于用户来说,虚拟化的存储资源就像一个巨大的“存储池”,看不到具体的磁盘,也不关心自己的数据在具体的哪个存储设备中。
存储虚拟化可在三个层次上实现,分别是基于主机的虚拟化、基于存储设备的虚拟化和基于网络的虚拟化。
1)基于主机的存储虚拟化,它依赖运行于一个或多个主机上的代理或管理软件来实现存储虚拟化的控制和管理。这些代理软件运行在主机上,会占用主机的资源,而且这种方法的可扩展性和迁移性较差。
2)基于存储设备的存储虚拟化依赖于提供相关功能的存储模块,通常只能提供一种不完全的存储虚拟化解决方案,对于多厂商的存储设备兼容性及性能不太好。
3)基于网络的存储虚拟化方法是在网络设备上实现存储虚拟化功能,包括基于互联设备和基于路由器两种方式。
根据存储虚拟化实现的方式,存储虚拟化可划分为带内虚拟化和带外虚拟化。带内虚拟化,是指控制信令和数据通过同一路径进行传输。控制信令用来控制数据的流向和对数据的各种操作行为,带外虚拟化是指控制信令和实际数据的传输路径分离,具有各自的独立通路。
虚拟化实现的效果包括块虚拟化,磁盘虚拟化,磁带、磁带驱动器、磁带库虚拟化,文件系统虚拟化,文件/记录虚拟化。
存储虚拟化中存储设备的接入方式包括直连存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)3种类型,如图3-4所示。
·图3-4 存储设备的典型接入方式
1)DAS方式下,存储设备通过服务器扩展接入服务器,依赖服务器主机操作系统对存储设备进行I/O读写和存储维护管理、数据备份和恢复,需要占用服务器主机资源(CPU、系统I/O等)。DAS存储处理的数据量越大,备份和恢复的时间越长,对服务器硬件的依赖和影响就越大。
2)NAS服务器通常包括存储器部件(如磁盘阵列、CD/DVD驱动器、磁带驱动器或可移动的存储介质)和内嵌的系统软件,可提供跨平台的文件共享功能。NAS通常连接在LAN上,可配置IP等参数,提供网络存储服务。NAS可集中管理和处理网络上的所有数据,减轻了服务器的负担。NAS本身能够支持多种协议(如NFS、CIFS、FTP、HTTP等),而且能够支持各种操作系统。
3)SAN采用光纤通道(FC)技术,通过FC交换机连接到存储阵列和服务器主机,建立专用于数据存储的区域网络。SAN网络独立于数据网络,因此存取速度非常快,通常还采用高端的RAID阵列,更提高了SAN集群的性能。SAN可扩展性强,但是代价比较高。常见的SAN实现方式包括FC-SAN和IP-SAN。
根据存储方式的不同,存储虚拟化可划分为块存储、文件存储和对象存储。
1)块存储。能直接访问存储设备的扇区块,可划分逻辑卷,也可格式化为不同的文件系统(Ext3、Ext4、NTFS、NFS等),然后才可被操作系统识别。常见的DAS、FC-SAN、IP-SAN基本都是块存储。块存储方式的优势是读写速度快,缺点是扩展和共享性比较差。
2)文件存储。文件存储是在文件系统的支持下以文件为访问对象的存储方式,文件按照树状组织,可支持一些文件访问接口。文件存储可以分成本地文件存储和网络文件存储。文件存储的优势是有利于扩展和共享,其缺点是读写速度比块存储方式慢。
3)对象存储。基于文件系统,将文件按水平方式组织,同时分离文件的元数据(表示文件属性的相关数据)与文件数据本身。通常先访问文件的元数据来得到文件的大小、存储位置等信息,然后再访问文件的具体数据。访问文件元数据的路径与文件本身数据的路径可隔离。对象存储方式读写速度较快,文件按水平方式组织,有利于实现共享。对象存储是面向海量非结构化数据的通用数据存储方式,提供稳定、安全、高效、低成本的云端存储服务。对象是OSS(对象存储服务)存储数据的基本单元,也被称为OSS的文件。对象由元数据(元信息)、用户数据和文件名组成,由存储空间内部唯一的键来标识。对象元信息是一组键值对,表示对象的一些属性,如最后修改时间、大小等信息,也可以在元信息中存储一些自定义的信息。
云对象存储的优势主要体现在存储管理的自动化和智能化,存储效率高、可以自动重新分配数据,提高了存储空间的利用率,能够实现规模效应和弹性扩展,降低运营成本,避免资源浪费。
2.云平台虚拟化存储安全要求
CSA发布的《云计算安全技术要求 第2部分:IaaS安全技术要求》中规定云计算平台虚拟化存储安全应符合的基础要求如下。
1)应支持租户设置虚拟化存储数据的访问控制策略的能力。
2)应支持租户本地数据与虚拟化存储之间的安全上传和下载的能力。
3)应支持租户间的虚拟化存储空间安全隔离,其他租户或者云计算平台管理员非授权不能访问的能力。
4)应支持根据租户所选择的服务级别进行存储位置分配的能力。
云计算平台存储与备份管理应符合的基础要求如下。
1)应支持租户系统和数据的备份,并支持租户根据所备份信息进行系统和数据恢复的能力。
2)应支持对云平台的备份系统和备份数据进行周期性测试、识别故障和备份重建的能力。
3)应支持租户查询数据和备份数据存储位置的能力。
云的管理平面是一种连接元结构,通过API接口和网络控制台来管理基础架构、平台及应用的工具和接口。它在北向提供API接口,在南向驱动和调用各种形态的计算网络和存储资源。编排调度可以在管理平面实现,也可以放在云平台统一调度。管理平面的责任分配体现在云服务提供方负责确保管理平面的安全,并把必要的安全工作开放给云消费者,而云消费者负责正确配置他们所使用的管理平面,保护和管理其授权证书。
管理平面的安全主要考虑以下几个因素:了解攻击面、提供补丁修补保障、开展漏洞评估、警惕侧信道攻击和避免混合网络连接所带来的安全风险。
1.云管理平台安全风险
云管理平面最大的风险在于如果获得了管理平面访问权限就可以毫无限制地访问云的数据中心,因此必须采取适当的安全控制措施来限制哪些人可以访问管理平面及可以在上面执行哪些操作。所以在便捷地使用云管理平面进行虚拟机迁移、弹性资源供应、配置(计算、网络、存储)资源的同时,一定要先做好云管理平面的身份验证、访问控制和日志监控等安全保障措施。
云计算支持海量的用户认证与接入,对用户的身份认证和接入管理必须完全自动化,为提高认证接入管理的体验,需要简化用户的认证过程。同时,对于用户登录云平台的敏感信息,应当采用加密方式进行传输,防止发生敏感信息泄露或者登录凭据泄露造成的安全问题。也可采用强认证和多因素认证等方式。
云管理平面(如Hypervisor)对所有虚拟网元都具有非常高的读写权限,一旦被攻陷,黑客即可获得所有虚拟网元的访问权,因此细颗粒度的授权更能让客户安全地管理自己的用户和管理员,提供方和消费者都应该始终只授予用户、应用程序和其他管理平面所需的最少特权。
2.云计算资源管理平台要求
CSA发布的《云计算安全技术要求 第2部分:IaaS安全技术要求》中对云计算平台云计算资源管理应符合的基础要求做了如下规定。
1)应支持对代码进行安全测试并进行缺陷修复的能力。
2)应支持限制虚拟机对物理资源的直接访向,支持对物理资源层的调度和管理均受虚拟机监视器控制的能力。
3)应支持对计算资源管理平台的攻击行为进行监测和告警的能力,检测到攻击行为时,应能够记录攻击的源IP、攻击的类型、攻击的目的、攻击的时间。
4)应支持最小安装的原则,仅安装必要的组件和应用程序的能力。
5)应支持禁用无须使用的硬件的能力。
6)应支持虚拟机和虚拟化平台间内部通信通道受限使用的能力。
7)应支持组件间通信采用安全传输的能力。
8)应支持管理命令采用安全传输的能力。
9)应支持内核补丁更新、加固及防止内核提权的能力。
10)应支持对恶意代码进行检测和处置的能力。
11)应支持监视计算资源管理平台远程管理连接,中断未授权管理连接的能力。
12)应支持对远程执行计算资源管理平台特权管理命令进行限制的能力。
13)应支持资源监控的能力,资源监控的内容包括CPU利用率、带宽使用情况、内存利用率、存储使用情况等。
14)应支持系统过载保护,保障业务公平性和系统资源利用率最大化的能力。
15)应支持禁止计算资源管理平台管理员未授权操作租户资源的能力。
16)应支持计算资源管理平台镜像文件完整性保护的能力。
17)应支持第三方安全产品或服务接入API接口的能力。
3.云计算存储管理平台要求
在CSA发布的《云计算安全技术要求 第2部分:IaaS安全技术要求》中对云存储资源管理平台应符合的基础要求做了如下规定。
1)应支持对代码进行安全测试并进行缺陷修复的能力。
2)应支持对攻击行为进行监测和告警的能力,检测到攻击行为时,能够记录攻击的源IP、攻击的类型、攻击的目的、攻击的时间。
3)应支持组件间通信采用安全传输的能力。
4)应支持管理命令采用安全传输的能力。
5)应支持内核补丁更新、加固及防止内核提权的能力。
6)应支持对恶意代码进行检测和处置的能力。
7)应支持监视存储资源管理平台远程管理连接,发现未授权管理连接时中断连接的能力。
8)应支持对远程执行存储资源管理平台特权管理命令进行限制的能力。
9)应支持资源监控的能力,资源监控的内容包括CPU利用率、带宽使用情况、内存利用率、存储使用情况等。
10)应支持系统过载保护,保障业务公平性和系统资源利用率最大化的能力。
11)应支持禁止平台管理员未授权操作租户资源的能力。
12)应支持数据存储机密性保护的能力。
13)应支持数据存储完整性保护的能力。
14)应支持数据存储可用性保护的能力。
15)应支持数据的异地备份和备份数据一致性的能力。
16)应支持租户访问存储的安全传输的能力。