云计算安全总体框架与关键技术研究

作为一项新生事物,云计算的推广遇到诸多困难,其中遇到的最大挑战是用户对安全问题的担忧。Gartner、IDC 等专业机构的调研也表明,安全问题已成为阻碍云计算推广的最大障碍。鉴于云计算的复杂性,它的安全问题也应该是一个涵盖技术、管理,甚至法律、法规的综合体。

1 云计算安全政策、法规、标准

传统的安全技术已经出现多年,相应的标准、法律、法规也都相对成熟,但现在的云计算安全缺少标准,政策、法规也不健全。再加上云计算自身的特点,数据可以存储在世界上任何一个国家,当出现问题时,国家政策的不同也是云计算安全的一个重大挑战。

标准化是云计算安全发展的重要措施之一,但目前云计算安全研究还处于起步阶段。国际上研究主力包括云安全联盟(CSA)、国际电联(ITU)、IEEE 等组织,国内有中国通信标准化协会(CCSA)、中国云计算技术与产业联盟(CCCTIA)等组织,但这些组织的研究也都处于进行中,尚未形成获得一致认可的安全技术和标准。

2 IaaS层的安全风险与措施

IaaS 层处于云计算平台的最底层,为上层云应用提供安全数据存储、计算等 IT 资源服务,是整个云计算体系安全的基石。IaaS 平台既有传统数据中心的安全特性,更面临自身特有的安全风险。

一方面,IaaS 平台沿袭传统计算中心面临的安全问题,要采取全面、严密的安全措施。例如,在物理层考虑厂房安全;在存储层考虑数据加密、备份、归档、灾难恢复等;在网络层考虑DDoS[注] 攻击、数据传输机密性等;在数据层考虑数据库安全、数据的隐私性与访问控制等;在应用层考虑程序完整性检验、访问控制与漏洞管理等。

另一方面,IaaS 平台大量采用虚拟化技术,包括虚拟服务器、虚拟存储、虚拟网络,甚至虚拟交换机等,虚拟化安全成为其面临的最大安全风险。虚拟化安全综合起来可以归结为以下两个方面:

1)虚拟化软件安全

该软件层直接部署于裸机之上,提供能够创建、运行和销毁虚拟服务器的服务。云服务提供商应建立必要的安全控制措施,限制对于Hypervisor 和其他形式的虚拟化层次的物理和逻辑访问。在laaS 服务中,用户不能接入虚拟化软件层,该层由云服务提供商来操作、管理。

2) 虚拟服务器安全

虚拟服务器或客户端面临着许多主机安全威胁,包括接入和管理主机的密钥被盗、在脆弱的服务标准端口侦听、劫持未采取合适安全措施的账户等。这就需要采取以下措施:

(1)选择具有TPM ( 可信计算平台模块)的虚拟服务器。

(2)安装时为每台虚拟服务器分配一个独立的硬盘分区,以便进行逻辑隔离。

(3)每台虚拟服务器应采用VLAN 和不同IP 网段的方式进行逻辑隔离,需要通信的虚拟服务器间的网络连接采用VPN 进行。

(4)进行有计划的备份,包括完整、增量或差量备份方式。

3 PaaS层的安全风险与措施

PaaS 层处于云计算平台的中间,它既依靠IaaS 平台提供的基础资源,又为上层SaaS 提供应用平台,起到了承上启下的作用。

PaaS 的核心技术是分布式处理,主要解决云计算数据中心[注]大规模服务器群的协同工作。要提供PaaS 云计算服务,首先要在云计算数据中心架设分布式处理平台,包括分布式文件系统、分布式计算、分布式数据库等;其次,要对分布式处理平台进行封装,包括提供开发环境(SDK)、API 接口和代码库等。因此,对PaaS 层来说,面临的安全威胁主要包括:

1)分布式文件和数据库安全

基于云计算数据中心的分布式文件系统和分布式数据库系统构建在大规模的廉价服务器集群上,从而面临诸多挑战。

(1)服务器的失效现象经常出现,需要解决系统的容错问题。

(2)服务器增减频繁,需要解决动态扩展问题。

(3)需要提供海量数据的存储和快速检索、读取能力。

(4)多用户同时访问,需要解决并发控制和存取效率等问题。

为了提升分布式文件系统的可靠性,目前的基本做法是采取冗余存储的方式来解决,每份文件或数据在系统中保存多个备份。冗余存储解决了数据的可靠性问题,但也带来了一致性问题,因为文件或数据存储在多个不同的节点中,对文件或数据进行修改时必须确保对所有副本都进行了修改,这就需要分布式同步机制对并发操作进行控制。这些技术的复杂性都给数据的可靠和安全带来了巨大挑战。

2)用户接口和应用安全

对于PaaS 服务来说,来自客户端的代码可能是恶意的。如果PaaS 层暴露过多接口,可能会给攻击者带来机会,如抢占CPU 时间、内存空间和其他资源,也可能攻击其他用户,甚至会攻击底层平台等。因此,如何检验用户代码的可靠性是PaaS 提供商面临的又一个巨大挑战。

用户基于PaaS 平台开发的软件最终也会部署在该平台上,PaaS 提供商需要保证程序的可靠运行,尤其是保证不同应用之间的相互隔离。这点与在SaaS 模式下遇到的挑战是相同的。另外,从技术上看,目前PaaS 对底层资源的调度和分配采用“尽力而为”的机制,如果一个平台上运行多个应用,就会存在资源分配、优先级配置等问题。要解决这些问题,需要借助IaaS 层的虚拟化机制来实现多个应用的资源调配和SLA 等。

4 SaaS层的安全风险与措施

传统的软件都部署在客户自己或租用的数据中心内,服务于特定的用户,其安全控制相对简单。但在SaaS 模式下,成千上万的用户共享同一软件平台,如何保证这些客户之间的数据、应用安全是一个巨大挑战。目前解决这一难题主要是采用多租户技术,多租户技术使得大量用户共享统一软件资源,每个用户按需使用资源。多租户技术能够对软件服务进行客户化配置,而不会影响其他用户的使用。多租户技术是解决SaaS 模式安全问题的主要措施,但这一技术也存在数据隔离、客户化配置、架构拓展、性能定制等诸多不足和挑战。

1)数据隔离。数据隔离是指多个租户在使用同一个SaaS系统时,不同租户之间的数据是隔离存储的,数据处理不会相互干扰。要实现多租户之间的数据隔离,目前有3 种技术:

(1)为每一个租户提供一个单独的数据库,优点是可以保证不同租户之间的数据充分隔离,缺点是成本和开销都比较大。(2)将多个租户的数据保存在统一的数据库中,但采用不同的模式,这样做在一定程度上减少了数据库的成本和操作难度,但也影响了数据隔离的效果和安全性。(3)将多个租户的数据存储在同一个数据库的同一张数据表中,通过租户的标识字段来区分,这样做成本最低,但安全性和隔离性最差。

2)客户化配置。客户化配置是指SaaS 应用支持不同租户对同一平台进行个性化定制。传统模式下,每一个用户都拥有一个自主的应用实例,可以自由进行定制化开发。但在多租户形势下,成千上万的租户共享一个应用实例,某一个租户对应用的更改通常会对该平台中的所有租户产生影响。因此,如何支持不同用户对同一实例的独立客户化配置是SaaS 模式面对的一个安全挑战。

除上述安全风险外,多租户技术还存在架构拓展、性能定制等安全挑战。为了解决这些难题,有人建议采用虚拟化技术。虚拟化技术已经比较成熟,多租户技术还处于发展阶段,面对大量用户使用统一应用时,如果把每一个用户的应用都做成一个单独的虚拟机,就可能需要成千上万的虚拟机,其管理难度和复杂性都会大大增加,其中还有大量的课题需要研究。

5 通用安全措施

云安全服务属于云基础软件服务层,为各类云应用提供共性信息安全服务,是确保云应用满足用户安全目标的重要手段。其中比较典型的几类云安全服务包括加密与密钥管理、身份识别与访问控制、灾备与业务连续性、数据隔离技术、虚拟化安全技术、云安全测评机制与审计机制等,这些技术对云计算的几种模式都会产生影响。

云计算安全的关键技术

如上所述,虽然云计算各层的安全风险各异,采取的安全技术和措施也不尽相同,但有几大技术却是有共性的,它们是云计算环境下最重要的几大关键技术,值得我们深入研究。

1 虚拟化安全技术

虚拟化是云计算的核心技术之一,虚拟化技术的采用加快了传统应用部署的速度,提高了应用的兼容性和服务的可用性,同时降低了能源消耗。与此同时,虚拟化自身也存在诸多风险和威胁。因此,虚拟化安全成为云计算不得不考虑的重要安全威胁之一。目前使用的虚拟化安全措施包括虚拟机可信平台、虚拟机隔离、虚拟机信息流控制、虚拟机监控、虚拟网络接入控制等。虚拟化安全技术大多已经比较成熟,但仍有部分需要进一步验证和改进。

2 数据安全

云计算环境下的数据安全是客户最为关注的问题。云计算数据生命周期不同阶段的安全挑战包括:

1)数据存放位置。必须保证所有数据(包括所有副本和备份)存储在合同、服务水平协议和法规允许的地理位置。

2)不同客户数据的混合。数据尤其是保密、敏感数据不能在使用、存储或传输过程中,在没有任何补偿控制的情况下与其他客户数据混合。数据的混合将在数据安全和地理位置等方面增加安全挑战。

3)数据备份和恢复重建计划。必须保证数据可用,云数据备份和云恢复计划必须到位和有效,以防止数据丢失、意外数据覆盖和破坏。

4)数据删除或持久性。必须具备一种可信技术保证全面和有效地定位云计算数据、擦除和销毁数据,保证数据已被完全消除或无法恢复。

针对数据安全的解决方案通常是采取数据隔离、数据加密、数据切分、数据屏蔽、数据删除技术[5].但怎样做好数据的隔离和保密仍然是一个很大的问题,这些技术在云计算平台下如何发挥作用,是否像在传统环境下那样有效仍然有待进一步研究。

3 云资源访问控制

在云计算环境中,各个云应用属于不同的安全管理域,每个安全域都管理着本地资源和用户。当用户跨域访问资源时,需在域边界设置认证服务,对访问共享资源的用户进行统一的身份认证管理。

传统模式下的身份认证和访问管理技术已经比较成熟,云计算模式下服务商(IaaS、PaaS、SaaS)所支持的标准并不健全,难以满足企业对监测管理、隐私性和数据保护的需求。